Clean and order documentation in source files. Source ready to beta 2 release
[mdictionary] / src / plugins / xdxf / XdxfDictDownloader.h
index ca88865..ebd048d 100644 (file)
     Copyright 2010 Comarch S.A.
 
 *******************************************************************************/
+/*!
+    \file XdxfDictDownloader.h
+    \brief XdxfDictDownloader is responsible for getting dict list from XDXF website
+    and other actions necessary to download and add dictionary
 
-//Created by Mateusz Półrola
+    \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+*/
 
 #ifndef XDXFDICTDOWNLOADER_H
 #define XDXFDICTDOWNLOADER_H
 #include <QNetworkAccessManager>
 #include <QNetworkReply>
 #include <DownloadDict.h>
+#include "XdxfDictDownloadProgressDialog.h"
+#include "../../include/Notify.h"
+#include "HttpDownloader.h"
+#include <string.h>
+#include <errno.h>
 
-class XdxfDictDownloader : public QObject
-{
+/*!
+    XdxfDictDownloader is responsible for getting dict list from XDXF website
+    and other actions necessary to download and add dictionary
+
+    When user want to add dictionary he may choose "browse" or "download",
+    after selecting "download"  XDXFDictDownloader would present him list of
+    dictionaries and when he select one downloading would be started. Next
+    step is to extract archive and move file to ~/.mdictionary
+*/
+class XdxfDictDownloader : public QObject {
     Q_OBJECT
 public:
     XdxfDictDownloader(QObject *parent = 0);
 
+    //! \return name of downloaded file
+    QString downloadedFile();
+
 public Q_SLOTS:
+    //! downloads dictionaries list from xdxf website
     void download(QWidget* parent);
 
+Q_SIGNALS:
+    //! emmited when file download precess is complete
+    void fileDownloaded(QString);
+
+    //! emitted to inform user about errors and warnings
+    void notify(Notify::NotifyType, QString);
+
+    //! emmited what is update Download Progress
+    void downloadProgress(float);
+
 private Q_SLOTS:
+    //! obtained list of dictionaries from website
     void dictListReceived(QNetworkReply*);
 
+    //! one of system processes finished
+    void processFinished();
+
+    //! user cancel downloading
+    void breakDownloading();
+
+    //! handling a download error
+    void downloadingError(QString);
+
+    /*!
+        function divide two qint64 and result emmit in
+        signals downloadProgress(float)
+    */
+    void updateDownloadProgress(qint64, qint64);
+
 private:
-    QList<DownloadDict> dicts;
+    //! dict is downloaded and unpacked
+    void downloadComplete();
 
+    QList<DownloadDict> dicts;
+    QWidget* parentDialog;
+    QString _downloadedFile;
+    XdxfDictDownloadProgressDialog* progressDialog;
+    QStringList commands;
+    int currentCommand;
+    QProcess* process;
+    QString _fileName;
+    bool downloadError;
+    bool aborted;
+    QNetworkAccessManager *manager;
+    bool extract(QString file);
+    HttpDownloader http;
 };
 
 #endif // XDXFDICTDOWNLOADER_H