5bf2ca751783e9261398e214f6bf24664e4d33b2
[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 qDebug()<<"etap 01";
33 #ifndef Q_WS_MAEMO_5
34     view= new QDeclarativeView();
35     view->setSource(QUrl::fromLocalFile("/usr/share/mdictionary/qml/XdxfDictDownloader.qml"));
36     view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
37     view->setAlignment(Qt::AlignCenter);
38     view->show();
39
40     mainLayout = new QVBoxLayout;
41     mainLayout->addWidget(view);
42     setLayout(mainLayout);
43     view->setWindowTitle(tr("Progres Dialog"));
44
45     QGraphicsObject *rootObject = view->rootObject();
46
47     connect(this, SIGNAL(setValue(QVariant)),
48            rootObject, SLOT(setValue(QVariant)));
49     connect(this, SIGNAL(setTextt(QVariant)),
50            rootObject, SLOT(setText(QVariant)));
51     connect(this, SIGNAL(setMaximumValue(QVariant)),
52            rootObject, SLOT(setMaximumValue(QVariant)));
53
54     connect(rootObject, SIGNAL(cancelDownloading()),
55            this, SLOT(reject()));
56
57 #else
58     verticalLayout = new QVBoxLayout(this);
59     setLayout(verticalLayout);
60
61     downloadProgressBar = new QProgressBar(this);
62     downloadProgressBar->setMinimum(0);
63     downloadProgressBar->setMaximum(0);
64     downloadProgressBar->setTextVisible(true);
65
66     cancelButton = new QPushButton(tr("Cancel"),this);
67
68     connect(cancelButton, SIGNAL(clicked()),
69             this, SIGNAL(cancelDownloading()));
70
71     #ifndef Q_WS_MAEMO_5
72             downloadLabel = new QLabel(this);
73             verticalLayout->addWidget(downloadLabel, 0, Qt::AlignCenter);
74     #endif
75
76     verticalLayout->addWidget(downloadProgressBar);
77     verticalLayout->addWidget(cancelButton);
78     setModal(true);
79
80     #ifndef Q_WS_MAEMO_5
81         setMinimumWidth(350);
82     #endif
83 #endif
84 }
85
86
87 void XdxfDictDownloadProgressDialog::show() {
88 qDebug()<<"etap 02";
89 #ifndef Q_WS_MAEMO_5
90     emit setMaximumValue(0);
91     maximumValue=0;
92 #else
93     downloadProgressBar->setMaximum(0);
94     QDialog::show();
95 #endif
96     QDialog::show();
97 }
98
99
100 void XdxfDictDownloadProgressDialog::setText(QString text) {
101 qDebug()<<"etap 03";
102
103 #ifndef Q_WS_MAEMO_5
104     emit setTextt(text);
105 #else
106     setWindowTitle(text);
107 #endif
108 }
109
110
111 void XdxfDictDownloadProgressDialog::updateProgress(float progress) {
112 qDebug()<<"etap 04";
113 #ifndef Q_WS_MAEMO_5
114     if(maximumValue == 0) {
115         emit setMaximumValue(100);
116     }
117     emit setValue((int)(progress*100));
118 #else
119     if(downloadProgressBar->maximum() == 0) {
120         downloadProgressBar->setMaximum(100);
121     }
122     downloadProgressBar->setValue(progress*100);
123 #endif
124 }
125
126
127 void XdxfDictDownloadProgressDialog::reject() {
128 qDebug()<<"etap 05";
129     #ifndef Q_WS_MAEMO_5
130         Q_EMIT cancelDownloading();
131     #else
132         return;
133     #endif
134 }