Merge branch 'master' into backbone
[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     searchBarWidget->setFocus();
45     menuWidget = new MenuWidget(this);
46
47
48     menuWidget->addSubMenu(tr("Dictionaries"),
49                            new DictManagerWidget(backbone, this));
50     menuWidget->addSubMenu(tr("Settings"), new QPushButton("Settings"));
51     menuWidget->addSubMenu(tr("About"), new QPushButton("About"));
52
53     ui->menuBar->addAction(menuWidget);
54
55
56     connect(this, SIGNAL(searchWordList(QStringList)),
57             searchBarWidget, SLOT(searchWordList(QStringList)));
58
59     connect(backbone, SIGNAL(htmlReady()),
60             translationWidget, SLOT(show()));
61
62     connect(backbone, SIGNAL(htmlReady()),
63             searchBarWidget, SLOT(showIdle()));
64
65     connect(wordListWidget, SIGNAL(clicked(QModelIndex)),
66             searchBarWidget, SLOT(showBusy()));
67
68     connect(searchBarWidget, SIGNAL(enableMenu(bool)),
69             this, SLOT(enableMenu(bool)));
70
71
72     ui->centralWidget->layout()->addWidget(wordListWidget);
73     ui->centralWidget->layout()->addWidget(searchBarWidget);
74
75
76     connect(this, SIGNAL(quit()),
77             backbone, SLOT(quit()));
78
79     connect(backbone, SIGNAL(closeOk()),
80             this, SLOT(closeOk()));
81
82     closingApplication = false;
83
84     setWindowTitle("mDictionary");
85 }
86
87 MainWindow::~MainWindow() {
88     delete ui;
89 }
90
91
92 void MainWindow::closeEvent(QCloseEvent *event) {
93         emit quit();
94         event->accept();
95 }
96
97 void MainWindow::closeOk() {
98     /*QMessageBox::warning(this, "", "close");
99     closingApplication = true;
100     close();*/
101 }
102
103 void MainWindow::search(QStringList words) {
104     emit searchWordList(words);
105 }
106
107 void MainWindow::enableMenu(bool enabled) {
108     ui->menuBar->setVisible(enabled);
109     qDebug()<<enabled;
110 }