X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=infodialog.cpp;h=378c77c2450b0598ba60c0617422bb5a99cd7a9b;hb=b72c0798bfde194a8f87ecd15956bbe99b184db8;hp=c76828fd5b53658abaf7a1de30d4c049a8f159e8;hpb=76446a14739779702a024d207be9fb52da36bd24;p=dorian diff --git a/infodialog.cpp b/infodialog.cpp index c76828f..378c77c 100644 --- a/infodialog.cpp +++ b/infodialog.cpp @@ -1,48 +1,68 @@ #include #include "infodialog.h" -#include "info.h" #include "book.h" #include "library.h" +#include "trace.h" -InfoDialog::InfoDialog(Book *book_, QWidget *parent): - QDialog(parent, Qt::Dialog | Qt::WindowTitleHint | - Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint), - book(book_) +InfoDialog::InfoDialog(Book *b, QWidget *parent, bool showButtons): + Dyalog(parent, showButtons), book(b) { - setWindowTitle(tr("Book Details")); - Info *info = new Info(book); - QDialogButtonBox *buttonBox = new QDialogButtonBox(Qt::Vertical, this); - QPushButton *read = new QPushButton(tr("Read"), this); - QPushButton *remove = new QPushButton(tr("Delete"), this); - connect(read, SIGNAL(clicked()), this, SLOT(onReadBook())); - connect(remove, SIGNAL(clicked()), this, SLOT(onRemoveBook())); - buttonBox->addButton(read, QDialogButtonBox::ActionRole); - buttonBox->addButton(remove, QDialogButtonBox::ActionRole); + TRACE; - QHBoxLayout *horizontalLayout = new QHBoxLayout(this); - horizontalLayout->addWidget(info); - horizontalLayout->addWidget(buttonBox); - setLayout(horizontalLayout); + setWindowTitle(tr("Book details")); + + if (book) { + QLabel *title = new QLabel(book->title, this); + addWidget(title); + if (book->subject != "") { + QLabel *subject = new QLabel(book->subject, this); + addWidget(subject); + } + if (book->creators.size()) { + QLabel *creators = new QLabel(this); + QString c = "By " + book->creators[0]; + for (int i = 1; i < book->creators.size(); i++) { + c += ", " + book->creators[i]; + } + creators->setText(c); + addWidget(creators); + } + QLabel *path = new QLabel("File: " + book->path(), this); + addWidget(path); + if (book->publisher != "") { + QLabel *publisher = + new QLabel("Published by " + book->publisher, this); + addWidget(publisher); + } + if (book->source != "") { + QLabel *source = new QLabel("Source: " + book->source, this); + addWidget(source); + } + if (book->rights != "") { + QLabel *rights = new QLabel(book->rights, this); + addWidget(rights); + } + addStretch(); + } + + addButton(tr("Read"), this, SLOT(onReadBook()), + QDialogButtonBox::ActionRole); + addButton(tr("Delete"), this, SLOT(onRemoveBook()), + QDialogButtonBox::DestructiveRole); } void InfoDialog::onReadBook() { - Library::instance()->setCurrent(Library::instance()->find(book)); - close(); + done(InfoDialog::Read); } void InfoDialog::onRemoveBook() { - QString title = book->title; if (QMessageBox::Yes == - QMessageBox::question(this, "Delete book", "Delete book " + title, - QMessageBox::Yes -#ifndef Q_WS_MAEMO_5 - , QMessageBox::No -#endif - )) { - Library::instance()->remove(Library::instance()->find(book)); - close(); + QMessageBox::question(this, tr("Delete book"), + tr("Delete book \"%1\" from library?").arg(book->shortName()), + QMessageBox::Yes | QMessageBox::No)) { + done(InfoDialog::Delete); } }