rsyncui/mainwindow.h

117 lines
2.7 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "tools.h"
#include <QMainWindow>
#include <string>
#include <QTreeWidgetItem>
#include <QListWidgetItem>
#include "downloadfile.h"
#include <QProgressDialog>
#include <QSettings>
#include <vector>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class Connexion
{
public:
std::string bandwidthLimit = "1M";
std::string server;
int port = 873;
};
class Downloading
{
public:
std::string service;
std::string path;
std::string defaultSavePath;
std::string savePath;
QString dirPath;
int pid = 0;
};
class About
{
public:
QString title = "RsyncUI";
QString author = "Daniel TARTAVEL-JEANNOT";
QString licence = "GPL_V3";
QString description = "Client for rsync server";
QString email = "dtux@free.fr";
QString git = "https://git.labolyon.fr/dtux/RsyncUI/issues";
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
Ui::MainWindow *ui;
MainWindow(QWidget *parent = nullptr);
~MainWindow();
QProgressDialog *progress;
void displayTree();
void populateTree();
void populateList();
void listServices();
bool validateServer(std::string server);
bool isIpAddress(std::string server);
QTreeWidgetItem * addTreeRoot(QString name, QString description);
QTreeWidgetItem * addTreeChild(QTreeWidgetItem *parent, QString name, QString size);
void scanDir(std::string server, int portN, QTreeWidgetItem *parent = NULL, std::string path = "" );
void startDownloading();
void loadSettings();
void saveSettings();
Connexion connexion;
Downloading downloading;
downloadFile downloadO;
QSettings settings;
About about;
std::vector <QString> serversList;
private slots:
void on_khistorycombobox_returnPressed();
//void on_portEdit_userTextChanged();
void on_portEdit_returnPressed();
//void on_actionDownload_triggered();
void on_listWidget_clicked();
void on_treeWidget_itemDoubleClicked(QTreeWidgetItem *item);
void downloadFinished();
void stoppingDownload();
void on_listDownload_itemClicked(QListWidgetItem *item);
void on_actionAbout_triggered();
void on_actionAbout_Qt_triggered();
void on_khistorycombobox_currentIndexChanged(int);
void on_DefaultSaveFolder_triggered();
void returnPressed();
void on_connectButton_clicked();
signals:
void stopDownloading(int);
};
#endif // MAINWINDOW_H