1 /*******************************************************************************
3 This file is part of mDictionary.
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.
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.
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/>.
18 Copyright 2010 Comarch S.A.
20 *******************************************************************************/
22 \file XdxfDictDownloader.h
23 \brief XdxfDictDownloader is responsible for getting dict list from XDXF website
24 and other actions necessary to download and add dictionary
26 \author Mateusz Półrola <mateusz.polrola@comarch.pl>
29 #ifndef XDXFDICTDOWNLOADER_H
30 #define XDXFDICTDOWNLOADER_H
34 #include <QNetworkAccessManager>
35 #include <QNetworkReply>
36 #include <DownloadDict.h>
40 #include "XdxfDictSelectDialog.h"
41 #include "XdxfDictDownloadProgressDialog.h"
42 #include "../../include/Notify.h"
43 #include "HttpDownloader.h"
46 XdxfDictDownloader is responsible for getting dict list from XDXF website
47 and other actions necessary to download and add dictionary
49 When user want to add dictionary he may choose "browse" or "download",
50 after selecting "download" XDXFDictDownloader would present him list of
51 dictionaries and when he select one downloading would be started. Next
52 step is to extract archive and move file to ~/.mdictionary
54 class XdxfDictDownloader : public QObject {
57 XdxfDictDownloader(QObject *parent = 0);
59 //! \return name of downloaded file
60 QString downloadedFile();
63 //! downloads dictionaries list from xdxf website
64 void download(QWidget* parent);
67 //! emmited when file download precess is complete
68 void fileDownloaded(QString);
70 //! emitted to inform user about errors and warnings
71 void notify(Notify::NotifyType, QString);
73 //! emmited what is update Download Progress
74 void downloadProgress(float);
75 void downloadProgress2(QVariant);
78 //! obtained list of dictionaries from website
79 void dictListReceived(QNetworkReply*);
81 //! one of system processes finished
82 void processFinished();
84 //! user cancel downloading
85 void breakDownloading();
87 //! handling a download error
88 void downloadingError(QString);
91 function divide two qint64 and result emmit in
92 signals downloadProgress(float)
94 void updateDownloadProgress(qint64, qint64);
97 //! dict is downloaded and unpacked
98 void downloadComplete();
100 QList<DownloadDict> dicts;
101 QWidget* parentDialog;
102 QString _downloadedFile;
103 XdxfDictDownloadProgressDialog* progressDialog;
104 QStringList commands;
110 QNetworkAccessManager *manager;
111 bool extract(QString file);
115 #endif // XDXFDICTDOWNLOADER_H