mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-04 05:50:31 -05:00 
			
		
		
		
	
		
			
	
	
		
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								#ifndef SAMPLE_DOWNLOADER_DIRECTORY_HPP__
							 | 
						||
| 
								 | 
							
								#define SAMPLE_DOWNLOADER_DIRECTORY_HPP__
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <QObject>
							 | 
						||
| 
								 | 
							
								#include <QString>
							 | 
						||
| 
								 | 
							
								#include <QTreeWidget>
							 | 
						||
| 
								 | 
							
								#include <QIcon>
							 | 
						||
| 
								 | 
							
								#include <QSize>
							 | 
						||
| 
								 | 
							
								#include <QDir>
							 | 
						||
| 
								 | 
							
								#include <QUrl>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "DirectoryDelegate.hpp"
							 | 
						||
| 
								 | 
							
								#include "RemoteFile.hpp"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Configuration;
							 | 
						||
| 
								 | 
							
								class QNetworkAccessManager;
							 | 
						||
| 
								 | 
							
								class QTreeWidgetItem;
							 | 
						||
| 
								 | 
							
								class QNetworkReply;
							 | 
						||
| 
								 | 
							
								class QAuthenticator;
							 | 
						||
| 
								 | 
							
								class QJsonArray;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Directory final
							 | 
						||
| 
								 | 
							
								  : public QTreeWidget
							 | 
						||
| 
								 | 
							
								  , protected RemoteFile::ListenerInterface
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  Q_OBJECT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								  explicit Directory (Configuration const * configuration
							 | 
						||
| 
								 | 
							
								                      , QNetworkAccessManager * network_manager
							 | 
						||
| 
								 | 
							
								                      , QWidget * parent = nullptr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  QSize sizeHint () const override {return {400, 500};}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  bool url_root (QUrl);
							 | 
						||
| 
								 | 
							
								  bool refresh ();
							 | 
						||
| 
								 | 
							
								  void abort ();
							 | 
						||
| 
								 | 
							
								  void update (QTreeWidgetItem * item);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								protected:
							 | 
						||
| 
								 | 
							
								  void error (QString const& title, QString const& message) override;
							 | 
						||
| 
								 | 
							
								  bool redirect_request (QUrl const&) override {return true;} // allow
							 | 
						||
| 
								 | 
							
								  void download_finished (bool success) override;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								  Q_SLOT void authentication (QNetworkReply *, QAuthenticator *);
							 | 
						||
| 
								 | 
							
								  void parse_entries (QJsonArray const& entries, QDir const& dir, QTreeWidgetItem * parent);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Configuration const * configuration_;
							 | 
						||
| 
								 | 
							
								  QNetworkAccessManager * network_manager_;
							 | 
						||
| 
								 | 
							
								  QDir root_dir_;
							 | 
						||
| 
								 | 
							
								  QUrl url_root_;
							 | 
						||
| 
								 | 
							
								  RemoteFile contents_;
							 | 
						||
| 
								 | 
							
								  DirectoryDelegate item_delegate_;
							 | 
						||
| 
								 | 
							
								  QIcon dir_icon_;
							 | 
						||
| 
								 | 
							
								  QIcon file_icon_;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |