some change
[mdictionary] / src / plugins / xdxf / XdxfDictDownloadProgressDialog.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     \file XdxfDictDownloadProgressDialog.cpp
23     \brief Shows downloading progress bar.
24
25     \author Mateusz Półrola <mateusz.polrola@comarch.com>
26 */
27
28 #include "XdxfDictDownloadProgressDialog.h"
29
30 XdxfDictDownloadProgressDialog::XdxfDictDownloadProgressDialog(QWidget*parent):
31     QDialog(parent) {
32 #ifndef Q_WS_MAEMO_5
33     view= new QDeclarativeView();
34     view->setSource(QUrl::fromLocalFile("/usr/share/mdictionary/qml/XdxfDictDownloader.qml"));
35     view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
36     view->setAlignment(Qt::AlignCenter);
37     view->show();
38
39     mainLayout = new QVBoxLayout;
40     mainLayout->addWidget(view);
41     setLayout(mainLayout);
42     view->setWindowTitle(tr("Progres Dialog"));
43
44     QGraphicsObject *rootObject = view->rootObject();
45
46     connect(this, SIGNAL(setValue(QVariant)),
47            rootObject, SLOT(setValue(QVariant)));
48     connect(this, SIGNAL(setTextt(QVariant)),
49            rootObject, SLOT(setText(QVariant)));
50     connect(this, SIGNAL(setMaximumValue(QVariant)),
51            rootObject, SLOT(setMaximumValue(QVariant)));
52
53     connect(rootObject, SIGNAL(cancelDownloading()),
54            this, SIGNAL(cancelDownloading()));
55
56 #else
57     verticalLayout = new QVBoxLayout(this);
58     setLayout(verticalLayout);
59
60     downloadProgressBar = new QProgressBar(this);
61     downloadProgressBar->setMinimum(0);
62     downloadProgressBar->setMaximum(0);
63     downloadProgressBar->setTextVisible(true);
64
65     cancelButton = new QPushButton(tr("Cancel"),this);
66
67     connect(cancelButton, SIGNAL(clicked()),
68             this, SIGNAL(cancelDownloading()));
69
70     #ifndef Q_WS_MAEMO_5
71             downloadLabel = new QLabel(this);
72             verticalLayout->addWidget(downloadLabel, 0, Qt::AlignCenter);
73     #endif
74
75     verticalLayout->addWidget(downloadProgressBar);
76     verticalLayout->addWidget(cancelButton);
77     setModal(true);
78
79     #ifndef Q_WS_MAEMO_5
80         setMinimumWidth(350);
81     #endif
82 #endif
83 }
84
85
86 void XdxfDictDownloadProgressDialog::show() {
87 #ifndef Q_WS_MAEMO_5
88     emit setMaximumValue(0);
89     maximumValue=0;
90 #else
91     downloadProgressBar->setMaximum(0);
92     QDialog::show();
93 #endif
94     QDialog::show();
95 }
96
97
98 void XdxfDictDownloadProgressDialog::setText(QString text) {
99 #ifndef Q_WS_MAEMO_5
100     emit setTextt(text);
101 #else
102     setWindowTitle(text);
103 #endif
104 }
105
106
107 void XdxfDictDownloadProgressDialog::updateProgress(float progress) {
108 #ifndef Q_WS_MAEMO_5
109     if(maximumValue == 0) {
110         emit setMaximumValue(100);
111     }
112     emit setValue((int)(progress*100));
113 #else
114     if(downloadProgressBar->maximum() == 0) {
115         downloadProgressBar->setMaximum(100);
116     }
117     downloadProgressBar->setValue(progress*100);
118 #endif
119 }
120
121
122 void XdxfDictDownloadProgressDialog::reject() {
123     #ifndef Q_WS_MAEMO_5
124         Q_EMIT cancelDownloading();
125     #else
126         return;
127     #endif
128 }