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
33 #include "XdxfDictSelectDialog.h"
35 #include <QNetworkAccessManager>
36 #include <QNetworkReply>
37 #include <DownloadDict.h>
38 #include "XdxfDictDownloadProgressDialog.h"
39 #include "../../include/Notify.h"
40 #include "HttpDownloader.h"
45 XdxfDictDownloader is responsible for getting dict list from XDXF website
46 and other actions necessary to download and add dictionary
48 When user want to add dictionary he may choose "browse" or "download",
49 after selecting "download" XDXFDictDownloader would present him list of
50 dictionaries and when he select one downloading would be started. Next
51 step is to extract archive and move file to ~/.mdictionary
53 class XdxfDictDownloader : public QObject {
56 XdxfDictDownloader(QObject *parent = 0);
58 //! \return name of downloaded file
59 QString downloadedFile();
62 //! downloads dictionaries list from xdxf website
63 void download(QWidget* parent);
66 //! emmited when file download precess is complete
67 void fileDownloaded(QString);
69 //! emitted to inform user about errors and warnings
70 void notify(Notify::NotifyType, QString);
72 //! emmited what is update Download Progress
73 void downloadProgress(float);
76 //! obtained list of dictionaries from website
77 void dictListReceived(QNetworkReply*);
79 //! one of system processes finished
80 void processFinished();
82 //! user cancel downloading
83 void breakDownloading();
85 //! handling a download error
86 void downloadingError(QString);
89 function divide two qint64 and result emmit in
90 signals downloadProgress(float)
92 void updateDownloadProgress(qint64, qint64);
95 //! dict is downloaded and unpacked
96 void downloadComplete();
98 QList<DownloadDict> dicts;
99 QWidget* parentDialog;
100 QString _downloadedFile;
101 XdxfDictDownloadProgressDialog* progressDialog;
102 QStringList commands;
108 QNetworkAccessManager *manager;
109 bool extract(QString file);
113 #endif // XDXFDICTDOWNLOADER_H