X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmdictionary%2Fgui%2FMainWindow.cpp;h=e5a0b61c5eff6ea99543ec6187e7e2eefd10ec36;hb=5ff31a8e7a9f8d8a42d29a00882adcad16eedbdc;hp=42bd584dae5e0fbc36dcd67be3d2003fbb691e99;hpb=f3c48923b83c7d4f8ddebc1f03ddf6acd93f64e3;p=mdictionary diff --git a/src/mdictionary/gui/MainWindow.cpp b/src/mdictionary/gui/MainWindow.cpp index 42bd584..e5a0b61 100644 --- a/src/mdictionary/gui/MainWindow.cpp +++ b/src/mdictionary/gui/MainWindow.cpp @@ -19,8 +19,11 @@ *******************************************************************************/ -//! \file MainWindow.cpp -//! \author Mateusz Półrola +/*! \file MainWindow.cpp + \brief Implements interface for GUI + + \author Mateusz Półrola +*/ #include "MainWindow.h" #include @@ -47,11 +50,14 @@ MainWindow::MainWindow(Backbone *backbone, QWidget *parent): setExactSearch(false); + setMinimumSize(750, 400); + showMaximized(); + + searchBarWidget->setFocus(); } MainWindow::~MainWindow() { - } @@ -62,9 +68,6 @@ void MainWindow::initializeUI() { #endif - setWindowIcon(QIcon(":/icons/64x64/mdictionary.png")); - setWindowTitle("mDictionary"); - /*translationWidget is another stacked window, so we don't add it to layout, only create it with this widget as parent it must be created as first object in main window, otherwise sometimes @@ -72,6 +75,12 @@ void MainWindow::initializeUI() { it segfaults*/ translationWidget = new TranslationWidget(this); + + + + setWindowIcon(QIcon(":/icons/64x64/mdictionary.png")); + setWindowTitle("mDictionary"); + mainLayout = new QVBoxLayout(); QWidget* w = new QWidget(); w->setLayout(mainLayout); @@ -80,11 +89,11 @@ void MainWindow::initializeUI() { menuBar = new QMenuBar(); setMenuBar(menuBar); + notifyManager = new NotifyManager(this); + initializeSearchWidgets(); initializeMenu(); - - notifyManager = new NotifyManager(this); } void MainWindow::initializeSearchWidgets() { @@ -106,8 +115,9 @@ void MainWindow::initializeSearchWidgets() { splitter->addWidget(welcomeScreenWidget); splitter->setStretchFactor(1, 150); - mainLayout->addWidget(splitter); - mainLayout->addWidget(searchBarWidget); + mainLayout->addWidget(splitter, 1); + + mainLayout->addWidget(searchBarWidget,0, Qt::AlignBottom); #endif } @@ -124,17 +134,18 @@ void MainWindow::initializeMenu() { menuBar->addAction(menuWidget); - dictManagerWidget->setMenuWidget(menuWidget); + connect(menuWidget, SIGNAL(setApplicationMenu(QWidget*)), + notifyManager, SLOT(setMenu(QWidget*))); #else - dictionariesAction = menuBar->addAction(tr("Dictionaries")); + dictionariesAction = menuBar->addAction(tr("&Dictionaries")); connect(dictionariesAction, SIGNAL(triggered()), dictManagerWidget, SLOT(show())); - settingsAction = menuBar->addAction(tr("Settings")); + settingsAction = menuBar->addAction(tr("&Settings")); connect(settingsAction, SIGNAL(triggered()), settingsWidget, SLOT(show())); - QMenu* m = menuBar->addMenu(tr("Bookmarks")); + QMenu* m = menuBar->addMenu(tr("&Bookmarks")); bookmarksShowAllAction = new QAction(tr("Show all"), m); bookmarksRemoveAllAction = new QAction(tr("Remove all"), m); @@ -142,7 +153,7 @@ void MainWindow::initializeMenu() { m->addAction(bookmarksShowAllAction); m->addAction(bookmarksRemoveAllAction); - aboutAction = menuBar->addAction(tr("About")); + aboutAction = menuBar->addAction(tr("&About")); connect(aboutAction, SIGNAL(triggered()), aboutWidget, SLOT(show())); @@ -156,6 +167,9 @@ void MainWindow::initializeMenuWidgets() { settingsWidget = new SettingsWidget(this); settingsWidget->hide(); + connect(settingsWidget, SIGNAL(notify(Notify::NotifyType,QString)), + this, SLOT(showNotification(Notify::NotifyType,QString))); + bookmarksWidget = new BookmarksWidget(this); bookmarksWidget->hide(); @@ -221,6 +235,8 @@ void MainWindow::wordListReady() { setExactSearch(false); } } + + wordListWidget->setFocus(); } bool MainWindow::checkExactSearch( @@ -244,8 +260,11 @@ void MainWindow::translationsReady() { hideWelcomeScreen(); #endif - Q_EMIT showTranslation(backbone->htmls()); - notifyManager->screenChanged(); + Q_EMIT showTranslation(backbone->xmls()); + wordListWidget->setFocus(); + #ifdef Q_WS_MAEMO_5 + notifyManager->screenChanged(); + #endif } @@ -276,10 +295,16 @@ QHash MainWindow::getDictionaries() { return backbone->getDictionaries(); } - +/**/ void MainWindow::search(QString word) { setExactSearch(false); searchBarWidget->search(word); + #ifdef Q_WS_MAEMO_5 + if(translationWidget->isVisible()) { + translationWidget->hide(); + update(); + } + #endif } void MainWindow::searchExact(QString word) { @@ -347,16 +372,11 @@ void MainWindow::enableMenu() { } void MainWindow::showHistory(QPoint p) { - - HistoryListDialog historyDialog(backbone->history()->list(), searchBarWidget); - + HistoryListDialog historyDialog(backbone->history()->list(), this );// searchBarWidget); #ifndef Q_WS_MAEMO_5 - QPoint newPos = mapFromGlobal(p); - newPos.setY(searchBarWidget->pos().y() - - historyDialog.sizeHint().height()); - newPos.setX(width() - historyDialog.sizeHint().width()); - - historyDialog.move(newPos); + p.setX(p.x() - historyDialog.sizeHint().width() + 5); + p.setY(p.y() - historyDialog.sizeHint().height() - 80); + historyDialog.move(p); #endif if(historyDialog.exec() == QDialog::Accepted) { @@ -374,8 +394,8 @@ Settings* MainWindow::settings() { } -void MainWindow::showNotification(Notify::NotifyType type, QString text, QWidget* parent) { - notifyManager->showNotification(type, text, parent); +void MainWindow::showNotification(Notify::NotifyType type, QString text) { + notifyManager->showNotification(type, text); } void MainWindow::connectBackbone() { @@ -404,7 +424,7 @@ void MainWindow::connectBackbone() { backbone, SLOT(search(QString))); connect(this, SIGNAL(searchTranslations(QList)), - backbone, SLOT(searchHtml(QList))); + backbone, SLOT(searchXml(QList))); connect(this, SIGNAL(stopSearching()), backbone, SLOT(stopSearching())); @@ -425,21 +445,31 @@ void MainWindow::connectBackbone() { connect(backbone, SIGNAL(ready()), this, SIGNAL(setIdle())); - connect(backbone, SIGNAL(htmlReady()), + connect(backbone, SIGNAL(xmlReady()), this, SIGNAL(setIdle())); connect(backbone, SIGNAL(ready()), this, SLOT(wordListReady())); - connect(backbone, SIGNAL(htmlReady()), + connect(backbone, SIGNAL(xmlReady()), this, SLOT(translationsReady())); connect(backbone, SIGNAL(searchCanceled()), this, SIGNAL(setIdle())); - connect(backbone, SIGNAL(notify(Notify::NotifyType,QString, QWidget*)), - this, SLOT(showNotification(Notify::NotifyType,QString, QWidget*))); + connect(backbone, SIGNAL(notify(Notify::NotifyType,QString)), + this, SLOT(showNotification(Notify::NotifyType,QString))); + + connect(backbone, SIGNAL(closeOk()), + this, SLOT(close())); + + + //connect(wordListWidget, SIGNAL(addBookmark(QList)), + // this, SIGNAL(setBusy())); + + //connect(backbone, SIGNAL(bookmarkReady()), + // this, SIGNAL(setIdle())); } void MainWindow::connectSearchBar() { @@ -503,12 +533,14 @@ void MainWindow::connectTranslationWidget() { #ifdef Q_WS_MAEMO_5 connect(translationWidget, SIGNAL(search(QString)), this, SLOT(search(QString))); + + connect(translationWidget, SIGNAL(notify(Notify::NotifyType, QString)), + this, SLOT(showNotification(Notify::NotifyType,QString))); #else connect(translationWidget, SIGNAL(search(QString)), this, SLOT(searchExact(QString))); #endif - } void MainWindow::connectDictManager() { @@ -534,7 +566,7 @@ void MainWindow::connectMenu() { void MainWindow::connectBookmarksWidget() { #ifdef Q_WS_MAEMO_5 - //after removing bookmarks we search for them once again to clear word list + //after removing bookmarks we search for them once again to clear the words list connect(bookmarksWidget, SIGNAL(removeAllBookmarks()), this, SLOT(removeBookmarks())); @@ -564,11 +596,11 @@ void MainWindow::removeBookmarks() { par = this; #endif if(QMessageBox::question(par, tr("Delete all bookmarks"), - tr("Do you want to delete all bookmarks? (This action cannot be revoked)"), + tr("Do you want to delete all bookmarks? (This action cannot be revoked, and will clear current word list)"), QMessageBox::Yes, QMessageBox::Cancel) == QMessageBox::Yes) { backbone->removeAllBookmarks(); - if(searchString.size()) - backbone->search(searchString); - + ((WordListWidget*)wordListWidget)->clear(); } + + }