From e2b4937b435d4973f9151b07503ef1fb869b43a4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nguy=E1=BB=85n=20H=E1=BB=93ng=20Qu=C3=A2n?= Date: Tue, 30 Oct 2012 12:30:16 +0700 Subject: [PATCH] Add About Dialog. --- about.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ about.h | 21 +++++++++++++++++++++ icons/mverbiste160.png | Bin 0 -> 24874 bytes mainwindow.cpp | 16 ++++++++++++++++ mainwindow.h | 10 +++++++--- mverbiste.pro | 20 ++++++++++++-------- 6 files changed, 97 insertions(+), 11 deletions(-) create mode 100644 about.cpp create mode 100644 about.h create mode 100644 icons/mverbiste160.png diff --git a/about.cpp b/about.cpp new file mode 100644 index 0000000..f8d45c6 --- /dev/null +++ b/about.cpp @@ -0,0 +1,41 @@ +#include "about.h" + +AboutDialog::AboutDialog(const char *iconFile, const char *title) + : QDialog() +{ + setWindowTitle(title); + QHBoxLayout *mlayout = new QHBoxLayout(); + QLabel *iconshow = new QLabel(); + iconshow->setPixmap(QPixmap(iconFile)); + + rlayout = new QVBoxLayout(); + mlayout->addWidget(iconshow); + mlayout->addLayout(rlayout); + setLayout(mlayout); +} + +void AboutDialog::setIntro(const QString &text) +{ + // Place to the first item of rlayout + if (rlayout->count() == 0) { + // No item yet, add one + rlayout->addWidget(new QLabel(text)); + } + else { + // First item has existed, replace it. + QWidget *child = (QWidget *)rlayout->itemAt(0); + rlayout->removeWidget(child); + rlayout->insertWidget(0, new QLabel(text)); + } +} + +void AboutDialog::addAuthor(const QString &name) +{ + // Place from the second item of rlayout + if (rlayout->count() == 0) { + // No first item, add empty one. + rlayout->addWidget(new QLabel("")); + } + // Add from the second + rlayout->addWidget(new QLabel(name)); +} diff --git a/about.h b/about.h new file mode 100644 index 0000000..c913b31 --- /dev/null +++ b/about.h @@ -0,0 +1,21 @@ +#ifndef ABOUT_H +#define ABOUT_H + +#include +#include +#include + +class AboutDialog: public QDialog +{ + Q_OBJECT +public: + explicit AboutDialog(const char *iconFile, const char *title); + + void setIntro(const QString &text); + void addAuthor(const QString &name); + +private: + QVBoxLayout *rlayout; +}; + +#endif // ABOUT_H diff --git a/icons/mverbiste160.png b/icons/mverbiste160.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb903b1e8036e5519d4a892259078af701c4a55 GIT binary patch literal 24874 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 literal 0 HcmV?d00001 diff --git a/mainwindow.cpp b/mainwindow.cpp index 9ed6d6c..2ae5a60 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -42,12 +42,28 @@ void MainWindow::setupcodedUI() connect(wordinput, SIGNAL(returnPressed()), this, SLOT(startLookup())); connect(btnLookup, SIGNAL(clicked()), this, SLOT(startLookup())); + + /* Icon */ + QIcon *icon = new QIcon(); + icon->addFile(ICONFILE); + setWindowIcon(*icon); + + /* About Dialog */ + aboutDialog = new AboutDialog(ICONFILE, "MVerbiste"); + aboutDialog->setIntro(trUtf8("A French conjugation utility for Maemo and MeeGo")); + aboutDialog->addAuthor(QString::fromUtf8("Nguyễn Hồng Quân \nPierre Sarrazin ")); + + /* Menu */ + QMenu *menu = ui->menuBar->addMenu(tr("Top menu")); + QAction *act_about = menu->addAction(tr("About")); + connect(act_about, SIGNAL(triggered()), aboutDialog, SLOT(show())); } MainWindow::~MainWindow() { delete ui; delete freVerbDic; + delete aboutDialog; } void MainWindow::setOrientation(ScreenOrientation orientation) diff --git a/mainwindow.h b/mainwindow.h index c02a6cb..49aa76f 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -9,6 +9,7 @@ #include #include #include +#include /* Verbiste */ #include @@ -16,6 +17,7 @@ #include #include #include "gui/conjugation.h" +#include "about.h" #ifndef QT_NO_DEBUG #include @@ -65,9 +67,9 @@ public: void showExpanded(); void initverbiste(); QVBoxLayout* makeResultCell(const VVS &tenseIterator, - const std::string &tenseName, - const std::string &inputWord, - FrenchVerbDictionary *verbDict); + const std::string &tenseName, + const std::string &inputWord, + FrenchVerbDictionary *verbDict); public slots: void startLookup(); @@ -81,8 +83,10 @@ private: QPushButton *btnClear; // Clear button QLineEdit *wordinput; // Word input QPushButton *btnLookup; // Lookup button + QMessageBox *msgbox; std::string langCode; FrenchVerbDictionary *freVerbDic; + AboutDialog *aboutDialog; ResultPage* addResultPage(const std::string &labelText); #ifndef QT_NO_DEBUG diff --git a/mverbiste.pro b/mverbiste.pro index 0e6f13e..62e1007 100644 --- a/mverbiste.pro +++ b/mverbiste.pro @@ -2,8 +2,9 @@ # by adapting the examples below. # file1.source = myfile # dir1.source = mydir -DEPLOYMENTFOLDERS = xmldata # file1 dir1 +DEPLOYMENTFOLDERS = xmldata icon # file1 dir1 xmldata.source = data +icon.source = icons symbian:TARGET.UID3 = 0xE214283E @@ -28,13 +29,15 @@ SOURCES += main.cpp mainwindow.cpp \ verbiste/misc-types.cpp \ verbiste/FrenchVerbDictionary.cpp \ verbiste/c-api.cpp \ - gui/conjugation.cpp + gui/conjugation.cpp \ + about.cpp HEADERS += mainwindow.h \ verbiste/Trie.h \ verbiste/misc-types.h \ verbiste/FrenchVerbDictionary.h \ verbiste/c-api.h \ - gui/conjugation.h + gui/conjugation.h \ + about.h FORMS += mainwindow.ui # Please do not modify the following two lines. Required for deployment. @@ -59,22 +62,23 @@ OTHER_FILES += \ verbiste/Makefile.in \ verbiste/Makefile.am \ gui/Makefile.in \ - gui/Makefile.am + gui/Makefile.am \ + icons/mverbiste.svg \ + icons/mverbiste160.png # To build verbiste unix: CONFIG += link_pkgconfig unix: PKGCONFIG += libxml-2.0 +# For verbiste DEFINES += ICONV_CONST= -simulator { - DEFINES += LIBDATADIR=\\\"$$PWD/data\\\" -} - simulator { # Build to run on simulator. DEFINES += LIBDATADIR=\\\"$$PWD/data\\\" + DEFINES +=ICONFILE=\\\"$$PWD/icons/mverbiste160.png\\\" } else { # installPrefix must be explicitly exported from deployment.pri first DEFINES += LIBDATADIR=\\\"$${installPrefix}/data\\\" + DEFINES +=ICONFILE=\\\"$${installPrefix}/icons/mverbiste160.png\\\" } -- 1.7.9.5