From 1b137f849036e5926a389552196428306a06958d Mon Sep 17 00:00:00 2001 From: Akos Polster Date: Mon, 26 Jul 2010 22:52:55 +0200 Subject: [PATCH] Improve dialog boxes. --- book.h | 2 +- bookmarkinfodialog.cpp | 9 +++++++-- bookmarksdialog.cpp | 28 ++++++++++++++++++---------- bookmarksdialog.h | 2 +- dialog.cpp | 5 +++++ dialog.h | 3 +++ infodialog.cpp | 2 +- 7 files changed, 36 insertions(+), 15 deletions(-) diff --git a/book.h b/book.h index 048280c..bf8e1c8 100644 --- a/book.h +++ b/book.h @@ -85,7 +85,7 @@ public: /** * Get friendly name. - * @return @see title or path name if title is not available yet. + * @return @see title or path name if title is not available yet. */ QString name() const; diff --git a/bookmarkinfodialog.cpp b/bookmarkinfodialog.cpp index 83b6568..ca21963 100644 --- a/bookmarkinfodialog.cpp +++ b/bookmarkinfodialog.cpp @@ -23,7 +23,7 @@ BookmarkInfoDialog::BookmarkInfoDialog(Book *b, int i, QWidget *parent): connect(read, SIGNAL(clicked()), this, SLOT(onRead())); connect(remove, SIGNAL(clicked()), this, SLOT(onRemove())); addButton(read, QDialogButtonBox::ActionRole); - addButton(remove, QDialogButtonBox::ActionRole); + addButton(remove, QDialogButtonBox::DestructiveRole); } void BookmarkInfoDialog::onRead() @@ -33,5 +33,10 @@ void BookmarkInfoDialog::onRead() void BookmarkInfoDialog::onRemove() { - done(Delete); + if (QMessageBox::Yes == + QMessageBox::question(this, tr("Delete bookmark"), + tr("Delete bookmark?"), + QMessageBox::Yes | QMessageBox::No)) { + done(Delete); + } } diff --git a/bookmarksdialog.cpp b/bookmarksdialog.cpp index c0d1f1d..f7d2400 100644 --- a/bookmarksdialog.cpp +++ b/bookmarksdialog.cpp @@ -31,12 +31,11 @@ BookmarksDialog::BookmarksDialog(Book *book_, QWidget *parent): #ifndef Q_WS_MAEMO_5 QDialogButtonBox *buttonBox = new QDialogButtonBox(Qt::Vertical); - QPushButton *goButton = new QPushButton(tr("Go"), this); + QPushButton *goButton = new QPushButton(tr("Go to"), this); buttonBox->addButton(goButton, QDialogButtonBox::ActionRole); connect(goButton, SIGNAL(clicked()), this, SLOT(onGo())); - QPushButton *closeButton = new QPushButton(tr("Close"), this); - buttonBox->addButton(closeButton, QDialogButtonBox::AcceptRole); + QPushButton *closeButton = buttonBox->addButton(QDialogButtonBox::Close); connect(closeButton, SIGNAL(clicked()), this, SLOT(onClose())); QPushButton *addButton = new QPushButton(tr("Add"), this); @@ -72,7 +71,7 @@ void BookmarksDialog::onItemActivated(QListWidgetItem *item) onGo(); break; case BookmarkInfoDialog::Delete: - onDelete(); + onDelete(true); break; default: ; @@ -90,14 +89,23 @@ void BookmarksDialog::onClose() close(); } -void BookmarksDialog::onDelete() +void BookmarksDialog::onDelete(bool really) { - if (!list->selectedItems().isEmpty()) { - QListWidgetItem *item = list->selectedItems()[0]; - int row = list->row(item); - book->deleteBookmark(row); - delete item; + if (list->selectedItems().isEmpty()) { + return; + } + if (!really) { + if (QMessageBox::Yes != + QMessageBox::question(this, tr("Delete bookmark"), + tr("Delete bookmark?"), + QMessageBox::Yes | QMessageBox::No)) { + return; + } } + QListWidgetItem *item = list->selectedItems()[0]; + int row = list->row(item); + book->deleteBookmark(row); + delete item; } void BookmarksDialog::closeEvent(QCloseEvent *event) diff --git a/bookmarksdialog.h b/bookmarksdialog.h index 6bfab27..3194b9b 100644 --- a/bookmarksdialog.h +++ b/bookmarksdialog.h @@ -25,7 +25,7 @@ public slots: void onAdd(); void onItemActivated(QListWidgetItem *); void onClose(); - void onDelete(); + void onDelete(bool really = false); protected: void closeEvent(QCloseEvent *e); diff --git a/dialog.cpp b/dialog.cpp index e148ea6..f9aa474 100644 --- a/dialog.cpp +++ b/dialog.cpp @@ -47,3 +47,8 @@ void Dialog::addButton(QPushButton *button, QDialogButtonBox::ButtonRole role) { buttonBox->addButton(button, role); } + +QPushButton *Dialog::addButton(QDialogButtonBox::StandardButton button) +{ + return buttonBox->addButton(button); +} diff --git a/dialog.h b/dialog.h index 6f7a160..0edd1c1 100644 --- a/dialog.h +++ b/dialog.h @@ -27,6 +27,9 @@ public: void addButton(QPushButton *button, QDialogButtonBox::ButtonRole role = QDialogButtonBox::AcceptRole); + /** Add standard button to the dialog button box. */ + QPushButton *addButton(QDialogButtonBox::StandardButton button); + protected: QScrollArea *scroller; QWidget *content; diff --git a/infodialog.cpp b/infodialog.cpp index 202d906..03dcbf4 100644 --- a/infodialog.cpp +++ b/infodialog.cpp @@ -47,7 +47,7 @@ InfoDialog::InfoDialog(Book *b, QWidget *parent): Dialog(parent), book(b) connect(read, SIGNAL(clicked()), this, SLOT(onReadBook())); connect(remove, SIGNAL(clicked()), this, SLOT(onRemoveBook())); addButton(read, QDialogButtonBox::ActionRole); - addButton(remove, QDialogButtonBox::ActionRole); + addButton(remove, QDialogButtonBox::DestructiveRole); } void InfoDialog::onReadBook() -- 1.7.9.5