Added xdxf dict downloader
[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 //Created by Mateusz Półrola
23
24 #include "XdxfDictDownloadProgressDialog.h"
25
26 XdxfDictDownloadProgressDialog::XdxfDictDownloadProgressDialog(QWidget*parent):
27     QDialog(parent) {
28     verticalLayout = new QVBoxLayout(this);
29     setLayout(verticalLayout);
30
31     setWindowTitle(tr("Downloading dictionary, please wait"));
32     downloadProgressBar = new QProgressBar(this);
33     downloadProgressBar->setMinimum(0);
34     downloadProgressBar->setMaximum(100);
35     downloadProgressBar->setTextVisible(true);
36
37     cancelButton = new QPushButton(tr("Cancel"),this);
38
39
40     downloadTimeLabel = new QLabel(this);
41     downloadTimeLabel->hide();
42
43     #ifndef Q_WS_MAEMO_5
44             downloadLabel = new QLabel(this);
45             downloadLabel->setText(tr("Downloading dictionary, please wait"));
46             verticalLayout->addWidget(downloadLabel, 0, Qt::AlignCenter);
47     #endif
48
49
50     verticalLayout->addWidget(downloadTimeLabel);
51     verticalLayout->addWidget(downloadProgressBar);
52     verticalLayout->addWidget(cancelButton);
53
54     connect(cancelButton, SIGNAL(clicked()),
55             this, SIGNAL(cancelDownloading()));
56
57     time.start();
58
59     setModal(true);
60 }
61
62
63 void XdxfDictDownloadProgressDialog::reject() {
64     return;
65 }
66
67 void XdxfDictDownloadProgressDialog::updateDownloadProgress(int progress,
68                                                             int time) {
69     if(!downloadTimeLabel->isVisible())
70         downloadTimeLabel->show();
71
72     int seconds = float((100 - progress)*time) / (5*1000);
73
74     downloadTimeLabel->setText(tr("Estimated time left: ") +
75                           tr("%n second(s)", "", seconds));
76     if(progress >= 100)
77         this->accept();
78 }