Added direct search of translation, changed searching for translation of words list...
[mdictionary] / trunk / src / base / gui / MainWindow.cpp
1 /*******************************************************************************
2
3     This file is part of mDictionary.
4
5     mDictionary is free software: you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation, either version 3 of the License, or
8     (at your option) any later version.
9
10     mDictionary is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14
15     You should have received a copy of the GNU General Public License
16     along with mDictionary.  If not, see <http://www.gnu.org/licenses/>.
17
18     Copyright 2010 Comarch S.A.
19
20 *******************************************************************************/
21
22 //Created by Mateusz Półrola
23
24 #include "MainWindow.h"
25 #include "ui_MainWindow.h"
26 #include "DictManagerWidget.h"
27
28 MainWindow::MainWindow(Backbone *backbone, QWidget *parent):
29     QMainWindow(parent),
30     ui(new Ui::MainWindow) {
31
32     this->backbone = backbone;
33
34     ui->setupUi(this);
35
36     #ifdef Q_WS_MAEMO_5
37         setAttribute(Qt::WA_Maemo5StackedWindow);
38     #endif
39
40     searchBarWidget = new SearchBarWidget(backbone);
41     wordListWidget = new WordListWidget(backbone);
42     translationWidget = new TranslationWidget(backbone, this);
43
44     menuWidget = new MenuWidget(this);
45     menuWidget->addSubMenu(tr("Dictionaries"),
46                            new DictManagerWidget(backbone, this));
47     menuWidget->addSubMenu(tr("Settings"), new QPushButton("Settings"));
48     menuWidget->addSubMenu(tr("About"), new QPushButton("About"));
49
50     ui->menuBar->addAction(menuWidget);
51
52
53     connect(this, SIGNAL(search(QString)),
54             searchBarWidget, SLOT(search(QString)));
55
56     connect(searchBarWidget, SIGNAL(searchForTranslations(QString)),
57             wordListWidget, SLOT(lockList()));
58
59     connect(searchBarWidget, SIGNAL(stopSearching()),
60             wordListWidget, SLOT(unlockList()));
61
62     connect(wordListWidget, SIGNAL(selectedWord(QString)),
63             translationWidget, SLOT(setWindowTitle(QString)));
64
65     connect(wordListWidget, SIGNAL(clicked(QModelIndex)),
66             searchBarWidget, SLOT(setBusy()));
67
68
69     ui->centralWidget->layout()->addWidget(wordListWidget);
70     ui->centralWidget->layout()->addWidget(searchBarWidget);
71
72
73     connect(this, SIGNAL(quit()),
74             backbone, SLOT(quit()));
75
76     connect(backbone, SIGNAL(closeOk()),
77             this, SLOT(closeOk()));
78
79     closingApplication = false;
80
81     setWindowTitle("mDictionary");
82 }
83
84 MainWindow::~MainWindow() {
85     delete ui;
86 }
87
88
89 void MainWindow::closeEvent(QCloseEvent *event) {
90         emit quit();
91         event->accept();
92 }
93
94 void MainWindow::closeOk() {
95     /*QMessageBox::warning(this, "", "close");
96     closingApplication = true;
97     close();*/
98 }
99
100 void MainWindow::searchExactWord(QString word) {
101     wordListWidget->setExactMatchString(word);
102     emit search(word);
103 }
104
105 void MainWindow::enableMenu(bool enabled) {
106     ui->menuBar->setVisible(enabled);
107 }