Compare commits

..

5 Commits
1.5 ... 1.8.1

10 changed files with 246 additions and 120 deletions

View File

@ -44,3 +44,5 @@ else: unix:!android: target.path = /usr/bin/
lang.path = /languages/fr_FR/
lang.files = languages/fr_FR/*
INSTALLS += lang
RESOURCES +=

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.14.2, 2023-01-26T11:46:40. -->
<!-- Written by QtCreator 4.14.2, 2023-01-28T00:30:34. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>

Binary file not shown.

View File

@ -10,9 +10,12 @@
<x>0</x>
<y>0</y>
<width>400</width>
<height>127</height>
<height>163</height>
</rect>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="windowTitle">
<string>Configuration</string>
</property>
@ -22,14 +25,31 @@
<x>9</x>
<y>9</y>
<width>381</width>
<height>61</height>
<height>101</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Toolbar view</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label1">
<property name="text">
<string extracomment="Bandwidth limit">Bandwidth limit</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBox">
<property name="toolTip">
<string>Enter the bandwidth limit</string>
<string>Enter the bandwidth limit (0 to 1024)</string>
</property>
<property name="toolTipDuration">
<number>5000</number>
@ -42,13 +62,6 @@
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label1">
<property name="text">
<string extracomment="Bandwidth limit">Bandwidth limit</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="UnitCombobox">
<property name="sizePolicy">
@ -74,17 +87,55 @@
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox">
<property name="maxVisibleItems">
<number>6</number>
</property>
<property name="maxCount">
<number>6</number>
</property>
<item>
<property name="text">
<string>Icon only</string>
</property>
</item>
<item>
<property name="text">
<string>Text only</string>
</property>
</item>
<item>
<property name="text">
<string>Text beside icon</string>
</property>
</item>
<item>
<property name="text">
<string>Text under icon</string>
</property>
</item>
<item>
<property name="text">
<string>Text follow icon</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>70</x>
<y>80</y>
<x>60</x>
<y>110</y>
<width>321</width>
<height>34</height>
</rect>
</property>
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -95,35 +146,19 @@
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Configuration</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Configuration</receiver>
<slot>reject()</slot>
<slot>hide()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
<x>220</x>
<y>126</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
<x>199</x>
<y>81</y>
</hint>
</hints>
</connection>

Binary file not shown.

View File

@ -4,27 +4,57 @@
<context>
<name>Configuration</name>
<message>
<location filename="../../configuration.ui" line="17"/>
<location filename="../../configuration.ui" line="20"/>
<source>Configuration</source>
<translation>Configuration</translation>
</message>
<message>
<location filename="../../configuration.ui" line="32"/>
<source>Enter the bandwidth limit</source>
<translation>Entrez la limite de bande passante</translation>
<location filename="../../configuration.ui" line="38"/>
<source>Toolbar view</source>
<translation>Toolbar</translation>
</message>
<message>
<location filename="../../configuration.ui" line="48"/>
<location filename="../../configuration.ui" line="45"/>
<source>Bandwidth limit</source>
<extracomment>Bandwidth limit</extracomment>
<translation>Limite de bande passante</translation>
</message>
<message>
<location filename="../../configuration.ui" line="61"/>
<location filename="../../configuration.ui" line="52"/>
<source>Enter the bandwidth limit (0 to 1024)</source>
<translation>Entrez la limite de bande passante (0 à 1024)</translation>
</message>
<message>
<location filename="../../configuration.ui" line="74"/>
<source>Select th unit of bandwidth limit in Bytes, KiloBytes, MegaBytes, GigaBytes or PetaBytes</source>
<extracomment>Unit of bandwidth</extracomment>
<translation>Sélectionnez l&apos;unité de limite de bande passante en otctets, Ko, Mo, Go, Po</translation>
</message>
<message>
<location filename="../../configuration.ui" line="100"/>
<source>Icon only</source>
<translation>Icône seule</translation>
</message>
<message>
<location filename="../../configuration.ui" line="105"/>
<source>Text only</source>
<translation>Texte seul</translation>
</message>
<message>
<location filename="../../configuration.ui" line="110"/>
<source>Text beside icon</source>
<translation>Text à côté de l&apos;icône</translation>
</message>
<message>
<location filename="../../configuration.ui" line="115"/>
<source>Text under icon</source>
<translation>Texte sous l&apos;icöne</translation>
</message>
<message>
<location filename="../../configuration.ui" line="120"/>
<source>Text follow icon</source>
<translation>Texte suit l&apos;icône</translation>
</message>
</context>
<context>
<name>MainWindow</name>
@ -34,77 +64,80 @@
<translation>Fenêtre principale</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="80"/>
<location filename="../../mainwindow.ui" line="83"/>
<source>Server</source>
<oldsource>Serveur</oldsource>
<translation>Serveur</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="102"/>
<location filename="../../mainwindow.ui" line="105"/>
<source>Enter server&apos;s URL</source>
<translation>Entrez l&apos;adresse du serveur</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="118"/>
<location filename="../../mainwindow.ui" line="121"/>
<source>Port</source>
<translation>Port</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="146"/>
<location filename="../../mainwindow.ui" line="149"/>
<source>Enter rsync port on server</source>
<translation>Entrez le port du servuer rsync</translation>
<translation>Entrez le port du serveur rsync</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="183"/>
<location filename="../../mainwindow.ui" line="186"/>
<source>Press button to connect to rsync server</source>
<extracomment>Connect to server</extracomment>
<translation>Cliquez pour se connecter au serveur rsync</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="189"/>
<location filename="../../mainwindow.ui" line="192"/>
<source>Connection</source>
<translation>Connexion</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="192"/>
<location filename="../../mainwindow.ui" line="195"/>
<source>Return</source>
<translation>Retour</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="218"/>
<location filename="../../mainwindow.ui" line="221"/>
<source>Click to view the list of files of this folder</source>
<translation>Cliquez pour afficher la liste des documents</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="253"/>
<location filename="../../mainwindow.ui" line="256"/>
<source>Click to add to download queue</source>
<translation>Cliquez pour ajouter à la file de téléchargement</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="331"/>
<location filename="../../mainwindow.ui" line="334"/>
<source>Click on file to stop downloading</source>
<translation>Cliquez sur le document pour arrêter le téléchargement et l&apos;enleveer de la file</translation>
<translation>Cliquez sur le document pour arrêter le téléchargement et l&apos;enlever de la file</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="354"/>
<location filename="../../mainwindow.ui" line="357"/>
<source>%p%</source>
<extracomment>Downloading</extracomment>
<translation>Téléchargement</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="371"/>
<location filename="../../mainwindow.ui" line="389"/>
<location filename="../../mainwindow.ui" line="368"/>
<source>toolBar</source>
<translation>Barre d&apos;outils</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="401"/>
<source>Menu</source>
<translation>Menu</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="378"/>
<source>help</source>
<translation>Aide</translation>
<translation type="vanished">Aide</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="394"/>
<location filename="../../mainwindow.ui" line="397"/>
<location filename="../../mainwindow.ui" line="409"/>
<location filename="../../mainwindow.ui" line="412"/>
<source>Change save folder</source>
<translation>Changer le dossier de destination</translation>
</message>
@ -113,22 +146,21 @@
<translation type="vanished">Dossier d&apos;enregistrement</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="402"/>
<source>Bandwidth limit</source>
<translation>Limite de bande passante</translation>
<translation type="vanished">Limite de bande passante</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="407"/>
<location filename="../../mainwindow.ui" line="420"/>
<source>About</source>
<translation>À propos</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="412"/>
<location filename="../../mainwindow.ui" line="428"/>
<source>About Qt</source>
<translation>À propos de Qt</translation>
</message>
<message>
<location filename="../../mainwindow.ui" line="417"/>
<location filename="../../mainwindow.ui" line="436"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
@ -137,104 +169,126 @@
<translation type="vanished">debug</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="21"/>
<location filename="../../mainwindow.cpp" line="23"/>
<source>Byte</source>
<translation>Octet</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="21"/>
<location filename="../../mainwindow.cpp" line="23"/>
<source>KB</source>
<translation>Ko</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="21"/>
<location filename="../../mainwindow.cpp" line="23"/>
<source>MB</source>
<translation>Mo</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="21"/>
<location filename="../../mainwindow.cpp" line="23"/>
<source>GB</source>
<translation>Go</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="21"/>
<location filename="../../mainwindow.cpp" line="23"/>
<source>TB</source>
<translation>To</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="21"/>
<location filename="../../mainwindow.cpp" line="587"/>
<location filename="../../mainwindow.cpp" line="23"/>
<location filename="../../mainwindow.cpp" line="614"/>
<source>PB</source>
<translation>Po</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="35"/>
<location filename="../../mainwindow.cpp" line="26"/>
<source>Client for rsync server
You click on file to enqueue it, and RyncUI Download one file a time</source>
<translation>Client pour serveur rsync
Cliquez sur un fichier pour l&apos;ajouter dans la file de téléchargement</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="38"/>
<source>Path</source>
<translation>Chemin</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="35"/>
<location filename="../../mainwindow.cpp" line="38"/>
<source>Size</source>
<translation>Taille</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="35"/>
<location filename="../../mainwindow.cpp" line="38"/>
<source>Type</source>
<translation>Type</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="76"/>
<location filename="../../mainwindow.cpp" line="80"/>
<source>Exiting will stop downloading, and will clear the download queue.
Do you want to exit ?</source>
<translation>Soritr stoppera le téléchargement et effacera la file des téléchargements.
Voulez-vous vraiment sortir du programme ?</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="326"/>
<location filename="../../mainwindow.cpp" line="328"/>
<source>server does not exists</source>
<translation>Le serveur n&apos;existe pas</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="545"/>
<location filename="../../mainwindow.cpp" line="355"/>
<location filename="../../mainwindow.cpp" line="375"/>
<source>Dir</source>
<translation>Dossier</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="358"/>
<location filename="../../mainwindow.cpp" line="378"/>
<location filename="../../mainwindow.cpp" line="424"/>
<source>File</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="564"/>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="546"/>
<location filename="../../mainwindow.cpp" line="565"/>
<source>Licence</source>
<translation>License</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="547"/>
<location filename="../../mainwindow.cpp" line="566"/>
<source>Author</source>
<translation>Auteur</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="548"/>
<location filename="../../mainwindow.cpp" line="567"/>
<source>EMail</source>
<translation>Courriel</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="549"/>
<location filename="../../mainwindow.cpp" line="568"/>
<source>Source code</source>
<translation>Code source</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="564"/>
<location filename="../../mainwindow.cpp" line="590"/>
<source>Choose directory to save file</source>
<translation>Choisissez le dossier enregistrer</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="477"/>
<location filename="../../mainwindow.cpp" line="497"/>
<source>Do you want to stop downloading and delete this file from download queue ?</source>
<translation>Vouslez-vous arrêter le téléchargement et enlever ce fichier de la file de téléchargement ?</translation>
<translation>Voulez-vous arrêter le téléchargement et enlever ce fichier de la file de téléchargement ?</translation>
</message>
<message>
<source>Client for rsync server</source>
<translation type="vanished">Client pour serveur rsync</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="489"/>
<location filename="../../mainwindow.cpp" line="509"/>
<source>Do you want to delete this file from download queue ?</source>
<translation>Voulez-vous enlever ce fichier de la file de téléchargement ?</translation>
</message>

View File

@ -1,9 +1,11 @@
#include "mainwindow.h"
#include <QComboBox>
#include <QToolBar>
using namespace std;
bool display = false;
extern QDialog Configuration;
//extern QDialog Configuration;
extern Ui::Configuration config;
MainWindow::MainWindow(QWidget *parent)
@ -21,18 +23,20 @@ MainWindow::MainWindow(QWidget *parent)
config.UnitCombobox->addItems({tr("Byte"), tr("KB"), tr("MB"), tr("GB"), tr("TB"), tr("PB")});
// init of About
this->about.description = tr(this->about.description.toStdString().c_str());
this->about.description = tr("Client for rsync server\n\nYou click on file to enqueue it, and RyncUI Download one file a time");
// connectors
connect(&downloadO, &downloadFile::progressSignal, ui->progressBar, &QProgressBar::setValue);
connect(&downloadO, &downloadFile::finishedSignal, this, &MainWindow::downloadFinished);
connect(this, &MainWindow::stopDownloading, &downloadO, &downloadFile::cancelled);
connect(config.buttonBox, SIGNAL(accepted()), this, SLOT(on_buttonBox_accepted()));
connect(config.comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MainWindow::on_comboBox_currentIndexChanged);
// init of widgets
ui->ktreewidgetsearchline->setTreeWidget(ui->treeWidget);
ui->ktreewidgetsearchline->setCaseSensitivity(Qt::CaseInsensitive);
ui->treeWidget->setHeaderLabels({tr("Type"), tr("Path"), tr("Size")} );
config.comboBox->setCurrentIndex(ui->toolBar->toolButtonStyle());
if (this->settings.contains("connexion/lastServer"))
{
ui->portEdit->setText(this->settings.value("connexion/port").toString());
@ -506,6 +510,7 @@ void MainWindow::loadSettings()
ui->treeWidget->header()->restoreState(settings.value("treeWidget/state").toByteArray());
ui->splitter->restoreState(settings.value("splitter/state").toByteArray());
ui->splitter_2->restoreState(settings.value("splitter2/state").toByteArray());
ui->toolBar->setToolButtonStyle((Qt::ToolButtonStyle)settings.value("toolbar/state").toInt());
// loading connexion settings
// loading servers history
@ -535,6 +540,7 @@ void MainWindow::saveSettings()
this->settings.setValue("splitter2/state", ui->splitter_2->saveState());
this->settings.setValue("connexion/lastServer", QString::fromStdString(this->connexion.server));
this->settings.setValue("connexion/lastPort", QString::number(this->connexion.port));
this->settings.setValue("toolbar/state", ui->toolBar->toolButtonStyle());
this->settings.sync();
}
@ -593,4 +599,10 @@ void MainWindow::on_buttonBox_accepted()
this->settings.setValue("bandwidthlimit", this->connexion.bandwidthLimit);
this->settings.setValue("bandwidthlimitunit", this->connexion.bandwidthLimitUnit.c_str());
this->settings.sync();
Configuration.hide();
}
void MainWindow::on_comboBox_currentIndexChanged(int index)
{
ui->toolBar->setToolButtonStyle((Qt::ToolButtonStyle)index);
}

View File

@ -32,6 +32,7 @@
#include <QCloseEvent>
#include <unistd.h>
#include <magic.h>
#include <QComboBox>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
@ -60,10 +61,10 @@ class About
{
public:
QString title = "RsyncUI";
QString version = "1.4";
QString version = "1.6";
QString author = "Daniel TARTAVEL-JEANNOT";
QString licence = "GPL_V3";
QString description = "Client for rsync server\n\nYou click on file to enqueue it, and RyncUI Download one file a time";
QString description;
QString email = "dtux@free.fr";
QString git = "https://git.labolyon.fr/dtux/RsyncUI/issues";
};
@ -131,6 +132,7 @@ class MainWindow : public QMainWindow
void on_action_Settings_triggered();
void on_comboBox_currentIndexChanged(int index);
public slots:
void on_buttonBox_accepted();

View File

@ -20,6 +20,9 @@
<property name="windowTitle">
<string>MainWindow</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="documentMode">
<bool>false</bool>
</property>
@ -357,39 +360,51 @@
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>500</width>
<height>30</height>
</rect>
<widget class="QToolBar" name="toolBar">
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<widget class="QMenu" name="menu">
<property name="title">
<string>Menu</string>
<property name="windowTitle">
<string>toolBar</string>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="movable">
<bool>true</bool>
</property>
<property name="allowedAreas">
<set>Qt::AllToolBarAreas</set>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="floatable">
<bool>true</bool>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="DefaultSaveFolder"/>
<addaction name="action_Settings"/>
</widget>
<widget class="QMenu" name="menuhelp">
<property name="title">
<string>help</string>
</property>
<addaction name="actionAbout"/>
<addaction name="actionAbout_Qt"/>
</widget>
<addaction name="menu"/>
<addaction name="menuhelp"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionMenu">
<property name="text">
<string>Menu</string>
</property>
</action>
<action name="DefaultSaveFolder">
<property name="icon">
<iconset theme="system-file-manager"/>
</property>
<property name="text">
<string>Change save folder</string>
</property>
@ -397,22 +412,26 @@
<string>Change save folder</string>
</property>
</action>
<action name="actionBandwidth_limit">
<property name="text">
<string>Bandwidth limit</string>
</property>
</action>
<action name="actionAbout">
<property name="icon">
<iconset theme="help-about"/>
</property>
<property name="text">
<string>About</string>
</property>
</action>
<action name="actionAbout_Qt">
<property name="icon">
<iconset theme="help-browser"/>
</property>
<property name="text">
<string>About Qt</string>
</property>
</action>
<action name="action_Settings">
<property name="icon">
<iconset theme="preferences-other"/>
</property>
<property name="text">
<string>Settings</string>
</property>

View File

@ -81,6 +81,8 @@ FILE * popen2(array<string,8> argv, string type, int & pid)
}
setpgid(child_pid, child_pid); //Needed so negative PIDs can kill children of /bin/sh
//TODO : change for execvp
if (execlp(argv[0].c_str(), argv[0].c_str(), argv[1].c_str(), argv[2].c_str(), argv[3].c_str(), argv[4].c_str(), argv[5].c_str(), NULL ) == -1)
exit (0);
}