00001
00002
00003
00004 #ifndef BALL_VIEW_DIALOGS_DOWNLOADELECTRONDENSITY_H
00005 #define BALL_VIEW_DIALOGS_DOWNLOADELECTRONDENSITY_H
00006
00007 #include <BALL/VIEW/UIC/ui_downloadElectronDensity.h>
00008
00009 #ifndef BALL_VIEW_KERNEL_MODULARWIDGET_H
00010 # include <BALL/VIEW/KERNEL/modularWidget.h>
00011 #endif
00012
00013 #ifndef BALL_DATATYPE_HASHSET_H
00014 # include <BALL/DATATYPE/hashSet.h>
00015 #endif
00016
00017 #include <BALL/VIEW/UIC/ui_downloadElectronDensity.h>
00018
00019 #include <QtNetwork/QNetworkReply>
00020
00021 class QProgressBar;
00022 class QNetworkAccessManager;
00023
00024 namespace BALL
00025 {
00026 class TCPTransfer;
00027
00028 namespace VIEW
00029 {
00030
00035 class BALL_VIEW_EXPORT DownloadElectronDensity
00036 : public QDialog,
00037 public Ui_DownloadElectronDensityData,
00038 public ModularWidget
00039 {
00040 Q_OBJECT
00041 public:
00042 BALL_EMBEDDABLE(DownloadElectronDensity, ModularWidget)
00043
00044
00045 DownloadElectronDensity(QWidget* parent = 0, const char* name = "DownloadElectronDensityDialog",
00046 bool modal = FALSE, Qt::WFlags fl = 0 );
00047
00049 ~DownloadElectronDensity();
00050
00052 virtual void initializeWidget(VIEW::MainControl& main_control);
00053
00055 virtual void fetchPreferences(INIFile& inifile);
00056
00058 virtual void writePreferences(INIFile& inifile);
00059
00063 void setEDSPrefix(String s) { eds_prefix_ = s;}
00064
00068 void setEDSSuffix(String s) { eds_suffix_ = s;}
00069
00073 void setEMDBPrefix(String s) { emdb_prefix_ = s;}
00074
00078 void setEMDBSuffix(String s) { emdb_suffix_ = s;}
00079
00081 void checkMenu(MainControl& mc);
00082
00083 public slots:
00084
00086 void slotDownload();
00087
00089 void idChanged();
00090
00092 void serverChanged();
00093
00095 void typeChanged();
00096
00098 void pdbDownloadChecked();
00099
00101 virtual void abort();
00102
00104 void downloadFinished();
00105
00107 void downloadProgress(qint64 received, qint64 total);
00108
00109 protected:
00110
00111
00112 void downloadStarted_();
00113
00114
00115 void downloadEnded_();
00116
00117 bool threadedDownload_(const String& url);
00118 void removeFile_(const String& filename);
00119
00120
00121 bool aborted_;
00122 bool error_;
00123
00124 HashMap<String, QImage> image_cache_;
00125
00126
00127 HashSet<String> unsupported_images_;
00128
00129 QAction* menu_id_;
00130 String eds_prefix_, eds_infix_, eds_suffix_;
00131 String emdb_prefix_, emdb_infix_, emdb_suffix_;
00132
00133
00134 QNetworkReply* current_reply_;
00135
00136
00137 QProgressBar* progress_bar_;
00138 QNetworkAccessManager* network_manager_;
00139 };
00140
00141 }
00142 }
00143 #endif