You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
5.0 KiB
156 lines
5.0 KiB
15 years ago
|
/* This file is part of the KDE project
|
||
|
Copyright (C) 2002 Montel Laurent <lmontel@mandrakesoft.com>
|
||
|
|
||
|
This library is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU Library General Public
|
||
|
License as published by the Free Software Foundation; either
|
||
|
version 2 of the License, or (at your option) any later version.
|
||
|
|
||
|
This library is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
Library General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Library General Public License
|
||
|
along with this library; see the file COPYING.LIB. If not, write to
|
||
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||
|
* Boston, MA 02110-1301, USA.
|
||
|
*/
|
||
|
|
||
|
#include <klocale.h>
|
||
|
#include "KWDocument.h"
|
||
|
#include <qvbox.h>
|
||
|
#include <qlayout.h>
|
||
|
#include <qlineedit.h>
|
||
|
#include <qpushbutton.h>
|
||
|
#include <qlistbox.h>
|
||
|
#include <kmessagebox.h>
|
||
|
#include "KWCommand.h"
|
||
|
#include "KWCreateBookmarkDia.h"
|
||
|
#include "KWCreateBookmarkDiaBase.h"
|
||
|
#include "KWFrame.h"
|
||
|
#include "KWFrameSet.h"
|
||
|
|
||
|
KWCreateBookmarkDia::KWCreateBookmarkDia( const QStringList & _list, QWidget *parent, const char *name )
|
||
|
: KDialogBase( parent, name , true, "", Ok|Cancel, Ok, true )
|
||
|
{
|
||
|
setCaption( i18n("Create New Bookmark") );
|
||
|
listBookMark = _list;
|
||
|
init();
|
||
|
}
|
||
|
|
||
|
KWCreateBookmarkDia::KWCreateBookmarkDia( const QStringList & _list, const QString & _name, QWidget *parent, const char *name )
|
||
|
: KDialogBase( parent, name , true, "", Ok|Cancel, Ok, true )
|
||
|
{
|
||
|
setCaption( i18n("Rename Bookmark") );
|
||
|
listBookMark = _list;
|
||
|
init();
|
||
|
m_bookmarkName->setText(_name);
|
||
|
}
|
||
|
|
||
|
void KWCreateBookmarkDia::init()
|
||
|
{
|
||
|
KWCreateBookmarkDiaBase *dia = new KWCreateBookmarkDiaBase( this );
|
||
|
m_bookmarkName = dia->m_bookmarkName;
|
||
|
enableButtonOK( false );
|
||
|
connect( m_bookmarkName, SIGNAL(textChanged ( const QString & )), this, SLOT(nameChanged( const QString &)));
|
||
|
setMainWidget( dia );
|
||
|
m_bookmarkName->setFocus();
|
||
|
}
|
||
|
|
||
|
void KWCreateBookmarkDia::slotOk()
|
||
|
{
|
||
|
if ( listBookMark.findIndex(m_bookmarkName->text() ) != -1 )
|
||
|
{
|
||
|
KMessageBox::error(this, i18n("That name already exists, please choose another name."));
|
||
|
}
|
||
|
else
|
||
|
KDialogBase::slotOk();
|
||
|
}
|
||
|
|
||
|
QString KWCreateBookmarkDia::bookmarkName()const
|
||
|
{
|
||
|
return m_bookmarkName->text();
|
||
|
}
|
||
|
|
||
|
void KWCreateBookmarkDia::nameChanged( const QString &text)
|
||
|
{
|
||
|
enableButtonOK( !text.isEmpty() );
|
||
|
}
|
||
|
|
||
|
|
||
|
/* **************************** */
|
||
|
KWSelectBookmarkDia::KWSelectBookmarkDia( const QStringList & _list, KWDocument *_doc, QWidget *parent, const char *name )
|
||
|
: KDialogBase( parent, name , true, "", Ok|Cancel, Ok, true )
|
||
|
{
|
||
|
m_doc=_doc;
|
||
|
setCaption( i18n("Select Bookmark") );
|
||
|
QWidget *page = new QWidget( this );
|
||
|
setMainWidget(page);
|
||
|
|
||
|
QGridLayout * grid = new QGridLayout(page, 5, 2, KDialog::marginHint(), KDialog::spacingHint());
|
||
|
m_bookmarkList = new QListBox( page );
|
||
|
grid->addMultiCellWidget(m_bookmarkList, 0, 4, 0, 0);
|
||
|
m_bookmarkList->insertStringList(_list);
|
||
|
|
||
|
connect(m_bookmarkList, SIGNAL( selectionChanged ()), this, SLOT(slotSelectionChanged()));
|
||
|
connect(m_bookmarkList, SIGNAL(doubleClicked ( QListBoxItem * )), this, SLOT(slotOk()));
|
||
|
connect(m_bookmarkList, SIGNAL(returnPressed ( QListBoxItem * )), this, SLOT(slotOk()));
|
||
|
|
||
|
m_pbRename = new QPushButton( i18n("Rename Bookmark"), page );
|
||
|
grid->addWidget( m_pbRename, 0, 1);
|
||
|
connect( m_pbRename, SIGNAL(clicked()), this, SLOT(slotRenameBookmark()));
|
||
|
|
||
|
m_pbDelete = new QPushButton( i18n("Delete Bookmark"), page );
|
||
|
grid->addWidget( m_pbDelete, 1, 1);
|
||
|
|
||
|
connect( m_pbDelete, SIGNAL(clicked()), this, SLOT(slotDeleteBookmark()));
|
||
|
|
||
|
m_bookmarkList->setFocus();
|
||
|
slotSelectionChanged();
|
||
|
}
|
||
|
|
||
|
void KWSelectBookmarkDia::slotRenameBookmark()
|
||
|
{
|
||
|
QString tmp =m_bookmarkList->currentText();
|
||
|
if ( tmp.isEmpty() )
|
||
|
return;
|
||
|
//all bookmark name
|
||
|
QStringList lst =m_doc->listOfBookmarkName(0L);
|
||
|
lst.remove( tmp );
|
||
|
KWCreateBookmarkDia dia( lst, tmp, this, 0 );
|
||
|
if ( dia.exec() ) {
|
||
|
QString newName = dia.bookmarkName();
|
||
|
KWRenameBookmarkCommand *cmd = new KWRenameBookmarkCommand( i18n("Rename Bookmark"), tmp, newName, m_doc);
|
||
|
m_doc->addCommand( cmd );
|
||
|
cmd->execute();
|
||
|
m_bookmarkList->changeItem ( newName, m_bookmarkList->currentItem() );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void KWSelectBookmarkDia::slotDeleteBookmark()
|
||
|
{
|
||
|
QString tmp =m_bookmarkList->currentText();
|
||
|
if ( !tmp.isEmpty())
|
||
|
{
|
||
|
m_doc->deleteBookmark(tmp);
|
||
|
m_bookmarkList->removeItem(m_bookmarkList->currentItem());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
QString KWSelectBookmarkDia::bookmarkSelected()const
|
||
|
{
|
||
|
return m_bookmarkList->currentText();
|
||
|
}
|
||
|
|
||
|
void KWSelectBookmarkDia::slotSelectionChanged()
|
||
|
{
|
||
|
bool state =!m_bookmarkList->currentText().isEmpty();
|
||
|
enableButtonOK( state );
|
||
|
m_pbRename->setEnabled( state);
|
||
|
m_pbDelete->setEnabled( state && m_doc->isReadWrite());
|
||
|
}
|
||
|
|
||
|
#include "KWCreateBookmarkDia.moc"
|