Added changes to run search of translation in different thread
[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     menuWidget = new MenuWidget(this);
44
45
46     menuWidget->addSubMenu(tr("Dictionaries"),
47                            new DictManagerWidget(backbone, this));
48     menuWidget->addSubMenu(tr("Settings"), new QPushButton("Settings"));
49     menuWidget->addSubMenu(tr("About"), new QPushButton("About"));
50
51     ui->menuBar->addAction(menuWidget);
52
53     connect(this, SIGNAL(searchWordList(QStringList)),
54             searchBarWidget, SLOT(searchWordList(QStringList)));
55
56     connect(backbone, SIGNAL(htmlReady())),
57             translationWidget, SLOT(show());
58
59     connect(backbone, SIGNAL(htmlReady()),
60             searchBarWidget, SLOT(showIdle()));
61
62     connect(wordListWidget, SIGNAL(clicked(QModelIndex)),
63             searchBarWidget, SLOT(showBusy()));
64
65     ui->centralWidget->layout()->addWidget(wordListWidget);
66     ui->centralWidget->layout()->addWidget(searchBarWidget);
67
68
69     connect(this, SIGNAL(quit()),
70             backbone, SLOT(quit()));
71
72     connect(backbone, SIGNAL(closeOk()),
73             this, SLOT(closeOk()));
74
75     closingApplication = false;
76
77     setWindowTitle("mDictionary");
78 }
79
80 MainWindow::~MainWindow() {
81     delete ui;
82 }
83
84
85 void MainWindow::closeEvent(QCloseEvent *event) {
86         emit quit();
87         event->accept();
88 }
89
90 void MainWindow::closeOk() {
91     /*QMessageBox::warning(this, "", "close");
92     closingApplication = true;
93     close();*/
94 }
95
96 void MainWindow::search(QStringList words) {
97     emit searchWordList(words);
98 }