diff --git a/Makefile b/Makefile index 7eba6a7..70b5bf8 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ ############################################################################# # Makefile for building: RsyncUI -# Generated by qmake (3.1) (Qt 5.15.2) +# Generated by qmake (3.1) (Qt 5.15.7) # Project: RsyncUI.pro # Template: app -# Command: /usr/bin/qmake -o Makefile RsyncUI.pro +# Command: /usr/lib64/qt5/bin/qmake -o Makefile RsyncUI.pro -spec linux-g++ ############################################################################# MAKEFILE = Makefile @@ -14,11 +14,11 @@ EQ = = CC = gcc CXX = g++ -DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_XML_LIB -DQT_DBUS_LIB -DQT_CORE_LIB +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_DBUS_LIB -DQT_CORE_LIB CFLAGS = -pipe -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fno-strict-aliasing -DPIC -fPIC -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -CXXFLAGS = -pipe -std=gnu++0x -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fno-strict-aliasing -DPIC -fPIC -std=gnu++11 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -INCPATH = -I. -I/usr/include/KF5 -I/usr/include/KF5/KItemViews -I/usr/include/KF5/KCompletion -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/KF5/KConfigGui -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtConcurrent -I/usr/include/KF5/KConfigCore -I/usr/include/qt5/QtXml -I/usr/include/KF5/KCoreAddons -I/usr/include/KF5/KDBusAddons -I/usr/include/qt5/QtDBus -I/usr/include/qt5/QtCore -I. -I. -I/usr/lib64/qt5/mkspecs/linux-g++ -QMAKE = /usr/bin/qmake +CXXFLAGS = -pipe -std=gnu++0x -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fno-strict-aliasing -DPIC -fPIC -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I. -I/usr/include/KF5 -I/usr/include/qt5keychain -I/usr/include/KF5/KItemViews -I/usr/include/KF5/KCompletion -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/KF5/KConfigGui -I/usr/include/qt5/QtGui -I/usr/include/KF5/KConfig -I/usr/include/KF5/KConfigCore -I/usr/include/qt5/QtXml -I/usr/include/KF5/KCoreAddons -I/usr/include/KF5/KDBusAddons -I/usr/include/qt5/QtDBus -I/usr/include/qt5/QtCore -I. -I. -I/usr/lib64/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib64/qt5/bin/qmake DEL_FILE = rm -f CHK_DIR_EXISTS= test -d MKDIR = mkdir -p @@ -28,8 +28,8 @@ COPY_DIR = cp -f -R INSTALL_FILE = install -m 644 -p INSTALL_PROGRAM = install -m 755 -p INSTALL_DIR = cp -f -R -QINSTALL = /usr/bin/qmake -install qinstall -QINSTALL_PROGRAM = /usr/bin/qmake -install qinstall -exe +QINSTALL = /usr/lib64/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib64/qt5/bin/qmake -install qinstall -exe DEL_FILE = rm -f SYMLINK = ln -f -s DEL_DIR = rmdir @@ -40,7 +40,7 @@ DISTNAME = RsyncUI1.0.0 DISTDIR = /home/daniel/develop/RsyncUI/.tmp/RsyncUI1.0.0 LINK = g++ LFLAGS = -Wl,-O1 -LIBS = $(SUBLIBS) /usr/lib64/libKF5ItemViews.so /usr/lib64/libKF5Completion.so /usr/lib64/libQt5Widgets.so /usr/lib64/libKF5ConfigGui.so /usr/lib64/libQt5Gui.so /usr/lib64/libQt5Concurrent.so /usr/lib64/libKF5ConfigCore.so /usr/lib64/libQt5Xml.so /usr/lib64/libKF5CoreAddons.so /usr/lib64/libKF5DBusAddons.so /usr/lib64/libQt5DBus.so /usr/lib64/libQt5Core.so -lGL -lpthread +LIBS = $(SUBLIBS) -lqt5keychain /usr/lib64/libKF5ItemViews.so /usr/lib64/libKF5Completion.so /usr/lib64/libQt5Widgets.so /usr/lib64/libKF5ConfigGui.so /usr/lib64/libQt5Gui.so /usr/lib64/libKF5ConfigCore.so /usr/lib64/libQt5Xml.so /usr/lib64/libKF5CoreAddons.so /usr/lib64/libKF5DBusAddons.so /usr/lib64/libQt5DBus.so /usr/lib64/libQt5Core.so -lGL -lpthread AR = ar cqs RANLIB = SED = sed @@ -55,15 +55,18 @@ OBJECTS_DIR = ./ SOURCES = downloadfile.cpp \ main.cpp \ mainwindow.cpp \ + password.cpp \ tools.cpp moc_downloadfile.cpp \ moc_mainwindow.cpp OBJECTS = downloadfile.o \ main.o \ mainwindow.o \ + password.o \ tools.o \ moc_downloadfile.o \ moc_mainwindow.o -DIST = /usr/lib64/qt5/mkspecs/features/spec_pre.prf \ +DIST = RsyncUI.desktop \ + /usr/lib64/qt5/mkspecs/features/spec_pre.prf \ /usr/lib64/qt5/mkspecs/common/unix.conf \ /usr/lib64/qt5/mkspecs/common/linux.conf \ /usr/lib64/qt5/mkspecs/common/sanitize.conf \ @@ -168,6 +171,8 @@ DIST = /usr/lib64/qt5/mkspecs/features/spec_pre.prf \ /usr/lib64/qt5/mkspecs/modules/qt_lib_quick_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_serialport.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_serialport_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_sql.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_sql_private.pri \ @@ -179,6 +184,10 @@ DIST = /usr/lib64/qt5/mkspecs/features/spec_pre.prf \ /usr/lib64/qt5/mkspecs/modules/qt_lib_texttospeech_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_webengine.pri \ @@ -196,10 +205,12 @@ DIST = /usr/lib64/qt5/mkspecs/features/spec_pre.prf \ /usr/lib64/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_xml.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_Qt5Keychain.pri \ /usr/lib64/qt5/mkspecs/modules/qt_QuickAddons.pri \ /usr/lib64/qt5/mkspecs/modules/qt_Solid.pri \ /usr/lib64/qt5/mkspecs/modules/qt_SonnetCore.pri \ /usr/lib64/qt5/mkspecs/modules/qt_SonnetUi.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_Syndication.pri \ /usr/lib64/qt5/mkspecs/modules/qt_ThreadWeaver.pri \ /usr/lib64/qt5/mkspecs/features/qt_functions.prf \ /usr/lib64/qt5/mkspecs/features/qt_config.prf \ @@ -228,11 +239,14 @@ DIST = /usr/lib64/qt5/mkspecs/features/spec_pre.prf \ /usr/lib64/qt5/mkspecs/features/exceptions.prf \ /usr/lib64/qt5/mkspecs/features/yacc.prf \ /usr/lib64/qt5/mkspecs/features/lex.prf \ - RsyncUI.pro downloadfile.h \ + RsyncUI.pro version.h \ + downloadfile.h \ mainwindow.h \ + password.h \ tools.h downloadfile.cpp \ main.cpp \ mainwindow.cpp \ + password.cpp \ tools.cpp QMAKE_TARGET = RsyncUI DESTDIR = @@ -242,7 +256,7 @@ TARGET = RsyncUI first: all ####### Build rules -RsyncUI: ui_mainwindow.h $(OBJECTS) +RsyncUI: ui_about.h ui_configuration.h ui_mainwindow.h $(OBJECTS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5/mkspecs/features/spec_pre.prf \ @@ -350,6 +364,8 @@ Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5 /usr/lib64/qt5/mkspecs/modules/qt_lib_quick_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_serialport.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_serialport_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_sql.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_sql_private.pri \ @@ -361,6 +377,10 @@ Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5 /usr/lib64/qt5/mkspecs/modules/qt_lib_texttospeech_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_webengine.pri \ @@ -378,10 +398,12 @@ Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5 /usr/lib64/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_xml.pri \ /usr/lib64/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_Qt5Keychain.pri \ /usr/lib64/qt5/mkspecs/modules/qt_QuickAddons.pri \ /usr/lib64/qt5/mkspecs/modules/qt_Solid.pri \ /usr/lib64/qt5/mkspecs/modules/qt_SonnetCore.pri \ /usr/lib64/qt5/mkspecs/modules/qt_SonnetUi.pri \ + /usr/lib64/qt5/mkspecs/modules/qt_Syndication.pri \ /usr/lib64/qt5/mkspecs/modules/qt_ThreadWeaver.pri \ /usr/lib64/qt5/mkspecs/features/qt_functions.prf \ /usr/lib64/qt5/mkspecs/features/qt_config.prf \ @@ -411,7 +433,7 @@ Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5 /usr/lib64/qt5/mkspecs/features/yacc.prf \ /usr/lib64/qt5/mkspecs/features/lex.prf \ RsyncUI.pro - $(QMAKE) -o Makefile RsyncUI.pro + $(QMAKE) -o Makefile RsyncUI.pro -spec linux-g++ /usr/lib64/qt5/mkspecs/features/spec_pre.prf: /usr/lib64/qt5/mkspecs/common/unix.conf: /usr/lib64/qt5/mkspecs/common/linux.conf: @@ -517,6 +539,8 @@ Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5 /usr/lib64/qt5/mkspecs/modules/qt_lib_quick_private.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri: +/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport.pri: +/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport_private.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_service_support_private.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_sql.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_sql_private.pri: @@ -528,6 +552,10 @@ Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5 /usr/lib64/qt5/mkspecs/modules/qt_lib_texttospeech_private.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient.pri: +/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri: +/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri: +/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel_private.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_webengine.pri: @@ -545,10 +573,12 @@ Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5 /usr/lib64/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_xml.pri: /usr/lib64/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib64/qt5/mkspecs/modules/qt_Qt5Keychain.pri: /usr/lib64/qt5/mkspecs/modules/qt_QuickAddons.pri: /usr/lib64/qt5/mkspecs/modules/qt_Solid.pri: /usr/lib64/qt5/mkspecs/modules/qt_SonnetCore.pri: /usr/lib64/qt5/mkspecs/modules/qt_SonnetUi.pri: +/usr/lib64/qt5/mkspecs/modules/qt_Syndication.pri: /usr/lib64/qt5/mkspecs/modules/qt_ThreadWeaver.pri: /usr/lib64/qt5/mkspecs/features/qt_functions.prf: /usr/lib64/qt5/mkspecs/features/qt_config.prf: @@ -579,7 +609,7 @@ Makefile: RsyncUI.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5 /usr/lib64/qt5/mkspecs/features/lex.prf: RsyncUI.pro: qmake: FORCE - @$(QMAKE) -o Makefile RsyncUI.pro + @$(QMAKE) -o Makefile RsyncUI.pro -spec linux-g++ qmake_all: FORCE @@ -593,10 +623,10 @@ distdir: FORCE @test -d $(DISTDIR) || mkdir -p $(DISTDIR) $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ $(COPY_FILE) --parents /usr/lib64/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ - $(COPY_FILE) --parents downloadfile.h mainwindow.h tools.h $(DISTDIR)/ - $(COPY_FILE) --parents downloadfile.cpp main.cpp mainwindow.cpp tools.cpp $(DISTDIR)/ - $(COPY_FILE) --parents mainwindow.ui $(DISTDIR)/ - $(COPY_FILE) --parents languages/RsyncUI_fr_FR.ts $(DISTDIR)/ + $(COPY_FILE) --parents version.h downloadfile.h mainwindow.h password.h tools.h $(DISTDIR)/ + $(COPY_FILE) --parents downloadfile.cpp main.cpp mainwindow.cpp password.cpp tools.cpp $(DISTDIR)/ + $(COPY_FILE) --parents about.ui configuration.ui mainwindow.ui $(DISTDIR)/ + $(COPY_FILE) --parents RsyncUI_fr_FR.ts $(DISTDIR)/ clean: compiler_clean @@ -626,31 +656,43 @@ compiler_moc_predefs_make_all: moc_predefs.h compiler_moc_predefs_clean: -$(DEL_FILE) moc_predefs.h moc_predefs.h: /usr/lib64/qt5/mkspecs/features/data/dummy.cpp - g++ -pipe -std=gnu++0x -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fno-strict-aliasing -DPIC -fPIC -std=gnu++11 -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib64/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -std=gnu++0x -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fno-strict-aliasing -DPIC -fPIC -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib64/qt5/mkspecs/features/data/dummy.cpp compiler_moc_header_make_all: moc_downloadfile.cpp moc_mainwindow.cpp compiler_moc_header_clean: -$(DEL_FILE) moc_downloadfile.cpp moc_mainwindow.cpp moc_downloadfile.cpp: downloadfile.h \ - ui_mainwindow.h \ moc_predefs.h \ /usr/lib64/qt5/bin/moc - /usr/lib64/qt5/bin/moc $(DEFINES) --include /home/daniel/develop/RsyncUI/moc_predefs.h -I/usr/lib64/qt5/mkspecs/linux-g++ -I/home/daniel/develop/RsyncUI -I/usr/include/KF5 -I/usr/include/KF5/KItemViews -I/usr/include/KF5/KCompletion -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/KF5/KConfigGui -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtConcurrent -I/usr/include/KF5/KConfigCore -I/usr/include/qt5/QtXml -I/usr/include/KF5/KCoreAddons -I/usr/include/KF5/KDBusAddons -I/usr/include/qt5/QtDBus -I/usr/include/qt5/QtCore -I/usr/include/c++/10 -I/usr/include/c++/10/x86_64-mageia-linux-gnu -I/usr/include/c++/10/backward -I/usr/lib/gcc/x86_64-mageia-linux-gnu/10/include -I/usr/local/include -I/usr/include downloadfile.h -o moc_downloadfile.cpp + /usr/lib64/qt5/bin/moc $(DEFINES) --include /home/daniel/develop/RsyncUI/moc_predefs.h -I/usr/lib64/qt5/mkspecs/linux-g++ -I/home/daniel/develop/RsyncUI -I/usr/include/KF5 -I/usr/include/qt5keychain -I/usr/include/KF5/KItemViews -I/usr/include/KF5/KCompletion -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/KF5/KConfigGui -I/usr/include/qt5/QtGui -I/usr/include/KF5/KConfig -I/usr/include/KF5/KConfigCore -I/usr/include/qt5/QtXml -I/usr/include/KF5/KCoreAddons -I/usr/include/KF5/KDBusAddons -I/usr/include/qt5/QtDBus -I/usr/include/qt5/QtCore -I/usr/include/c++/12 -I/usr/include/c++/12/x86_64-mageia-linux -I/usr/include/c++/12/backward -I/usr/lib/gcc/x86_64-mageia-linux/12/include -I/usr/local/include -I/usr/include downloadfile.h -o moc_downloadfile.cpp moc_mainwindow.cpp: mainwindow.h \ - downloadfile.h \ ui_mainwindow.h \ + ui_configuration.h \ + ui_about.h \ + downloadfile.h \ + tools.h \ + password.h \ + mainwindow.h \ moc_predefs.h \ /usr/lib64/qt5/bin/moc - /usr/lib64/qt5/bin/moc $(DEFINES) --include /home/daniel/develop/RsyncUI/moc_predefs.h -I/usr/lib64/qt5/mkspecs/linux-g++ -I/home/daniel/develop/RsyncUI -I/usr/include/KF5 -I/usr/include/KF5/KItemViews -I/usr/include/KF5/KCompletion -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/KF5/KConfigGui -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtConcurrent -I/usr/include/KF5/KConfigCore -I/usr/include/qt5/QtXml -I/usr/include/KF5/KCoreAddons -I/usr/include/KF5/KDBusAddons -I/usr/include/qt5/QtDBus -I/usr/include/qt5/QtCore -I/usr/include/c++/10 -I/usr/include/c++/10/x86_64-mageia-linux-gnu -I/usr/include/c++/10/backward -I/usr/lib/gcc/x86_64-mageia-linux-gnu/10/include -I/usr/local/include -I/usr/include mainwindow.h -o moc_mainwindow.cpp + /usr/lib64/qt5/bin/moc $(DEFINES) --include /home/daniel/develop/RsyncUI/moc_predefs.h -I/usr/lib64/qt5/mkspecs/linux-g++ -I/home/daniel/develop/RsyncUI -I/usr/include/KF5 -I/usr/include/qt5keychain -I/usr/include/KF5/KItemViews -I/usr/include/KF5/KCompletion -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/KF5/KConfigGui -I/usr/include/qt5/QtGui -I/usr/include/KF5/KConfig -I/usr/include/KF5/KConfigCore -I/usr/include/qt5/QtXml -I/usr/include/KF5/KCoreAddons -I/usr/include/KF5/KDBusAddons -I/usr/include/qt5/QtDBus -I/usr/include/qt5/QtCore -I/usr/include/c++/12 -I/usr/include/c++/12/x86_64-mageia-linux -I/usr/include/c++/12/backward -I/usr/lib/gcc/x86_64-mageia-linux/12/include -I/usr/local/include -I/usr/include mainwindow.h -o moc_mainwindow.cpp compiler_moc_objc_header_make_all: compiler_moc_objc_header_clean: compiler_moc_source_make_all: compiler_moc_source_clean: -compiler_uic_make_all: ui_mainwindow.h +compiler_uic_make_all: ui_about.h ui_configuration.h ui_mainwindow.h compiler_uic_clean: - -$(DEL_FILE) ui_mainwindow.h + -$(DEL_FILE) ui_about.h ui_configuration.h ui_mainwindow.h +ui_about.h: about.ui \ + /usr/lib64/qt5/bin/uic + /usr/lib64/qt5/bin/uic about.ui -o ui_about.h + +ui_configuration.h: configuration.ui \ + /usr/lib64/qt5/bin/uic + /usr/lib64/qt5/bin/uic configuration.ui -o ui_configuration.h + ui_mainwindow.h: mainwindow.ui \ /usr/lib64/qt5/bin/uic \ /usr/include/KF5/KCompletion/kcombobox.h \ @@ -670,25 +712,49 @@ compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_ui ####### Compile downloadfile.o: downloadfile.cpp mainwindow.h \ - downloadfile.h \ ui_mainwindow.h \ - tools.h + ui_configuration.h \ + ui_about.h \ + downloadfile.h \ + tools.h \ + password.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o downloadfile.o downloadfile.cpp main.o: main.cpp mainwindow.h \ + ui_mainwindow.h \ + ui_configuration.h \ + ui_about.h \ downloadfile.h \ - ui_mainwindow.h + tools.h \ + password.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp mainwindow.o: mainwindow.cpp mainwindow.h \ - downloadfile.h \ ui_mainwindow.h \ - tools.h + ui_configuration.h \ + ui_about.h \ + downloadfile.h \ + tools.h \ + password.h \ + version.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp -tools.o: tools.cpp mainwindow.h \ +password.o: password.cpp password.h \ + mainwindow.h \ + ui_mainwindow.h \ + ui_configuration.h \ + ui_about.h \ downloadfile.h \ - ui_mainwindow.h + tools.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o password.o password.cpp + +tools.o: tools.cpp mainwindow.h \ + ui_mainwindow.h \ + ui_configuration.h \ + ui_about.h \ + downloadfile.h \ + tools.h \ + password.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o tools.o tools.cpp moc_downloadfile.o: moc_downloadfile.cpp @@ -710,19 +776,46 @@ uninstall_target: FORCE install_lang: first FORCE - @test -d $(INSTALL_ROOT)/languages || mkdir -p $(INSTALL_ROOT)/languages - $(QINSTALL) /home/daniel/develop/RsyncUI/languages/RsyncUI_fr_FR.qm $(INSTALL_ROOT)/languages/RsyncUI_fr_FR.qm - $(QINSTALL) /home/daniel/develop/RsyncUI/languages/RsyncUI_fr_FR.ts $(INSTALL_ROOT)/languages/RsyncUI_fr_FR.ts + @test -d $(INSTALL_ROOT)/usr/share/locale/ || mkdir -p $(INSTALL_ROOT)/usr/share/locale/ + $(QINSTALL) /home/daniel/develop/RsyncUI/languages/fr_FR $(INSTALL_ROOT)/usr/share/locale/fr_FR uninstall_lang: FORCE - -$(DEL_FILE) -r $(INSTALL_ROOT)/languages/RsyncUI_fr_FR.ts - -$(DEL_FILE) -r $(INSTALL_ROOT)/languages/RsyncUI_fr_FR.qm - -$(DEL_DIR) $(INSTALL_ROOT)/languages/ + -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/locale/fr_FR + -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/locale/ -install: install_target install_lang FORCE +install_documentation: first FORCE + @test -d $(INSTALL_ROOT)/usr/share/doc/RsyncUI || mkdir -p $(INSTALL_ROOT)/usr/share/doc/RsyncUI + $(QINSTALL) /home/daniel/develop/RsyncUI/README.md $(INSTALL_ROOT)/usr/share/doc/RsyncUI/README.md + $(QINSTALL) /home/daniel/develop/RsyncUI/README_FR.md $(INSTALL_ROOT)/usr/share/doc/RsyncUI/README_FR.md -uninstall: uninstall_target uninstall_lang FORCE +uninstall_documentation: FORCE + -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/doc/RsyncUI/README_FR.md + -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/doc/RsyncUI/README.md + -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/doc/RsyncUI/ + + +install_desktopfile: first FORCE + @test -d $(INSTALL_ROOT)/usr/share/applications || mkdir -p $(INSTALL_ROOT)/usr/share/applications + $(QINSTALL) /home/daniel/develop/RsyncUI/RsyncUI.desktop $(INSTALL_ROOT)/usr/share/applications/RsyncUI.desktop + +uninstall_desktopfile: FORCE + -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/applications/RsyncUI.desktop + -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/applications/ + + +install_icon: first FORCE + @test -d $(INSTALL_ROOT)/usr/share/icons/ || mkdir -p $(INSTALL_ROOT)/usr/share/icons/ + $(QINSTALL) /home/daniel/develop/RsyncUI/RsyncUI.png $(INSTALL_ROOT)/usr/share/icons/RsyncUI.png + +uninstall_icon: FORCE + -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/icons/RsyncUI.png + -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/icons/ + + +install: install_target install_lang install_documentation install_desktopfile install_icon FORCE + +uninstall: uninstall_target uninstall_lang uninstall_documentation uninstall_desktopfile uninstall_icon FORCE FORCE: diff --git a/RsyncUI.pro.user b/RsyncUI.pro.user index e69f627..61d2292 100644 --- a/RsyncUI.pro.user +++ b/RsyncUI.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -172,9 +172,172 @@ 1 + + ProjectExplorer.Project.Target.1 + + Desktop + Desktop + Desktop + {893f9ca6-0efa-4c08-a4a6-5a818f60a8a0} + 0 + 0 + 0 + + 0 + /home/daniel/develop/RsyncUI/../build-RsyncUI-Desktop-Debug + /home/daniel/develop/build-RsyncUI-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/daniel/develop/RsyncUI/../build-RsyncUI-Desktop-Release + /home/daniel/develop/build-RsyncUI-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + /home/daniel/develop/RsyncUI/../build-RsyncUI-Desktop-Profile + /home/daniel/develop/build-RsyncUI-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + true + false + true + + 1 + + ProjectExplorer.Project.TargetCount - 1 + 2 ProjectExplorer.Project.Updater.FileVersion diff --git a/RsyncUI.spec b/RsyncUI.spec index 211f99c..7815727 100644 --- a/RsyncUI.spec +++ b/RsyncUI.spec @@ -2,7 +2,7 @@ Name: rsyncui Summary: Client for rsync server -Version: 2.12 +Version: 2.12.1 Release: %mkrel 1 License: GPLv3 Group: Networking/Remote access diff --git a/RsyncUI_fr_FR.qm b/RsyncUI_fr_FR.qm new file mode 100644 index 0000000..62ee40e Binary files /dev/null and b/RsyncUI_fr_FR.qm differ diff --git a/RsyncUI_fr_FR.ts b/RsyncUI_fr_FR.ts index 15385e9..1c865b7 100644 --- a/RsyncUI_fr_FR.ts +++ b/RsyncUI_fr_FR.ts @@ -58,12 +58,12 @@ Automatic saving of download queue - Enregistrement automatique de la file + Enregistrement automatique de la file de téléchargement Auto save download queue - Enregistrement automatique de la file d'enregistrement + Enregistrement automatique de la file de téléchargement diff --git a/downloadfile.cpp b/downloadfile.cpp index f0b84ad..7c87702 100644 --- a/downloadfile.cpp +++ b/downloadfile.cpp @@ -10,7 +10,7 @@ #include #include #include -#include +//#include #include #include #include @@ -27,99 +27,109 @@ downloadFile::downloadFile() //Slot activated when download is cancelled void MainWindow::cancelled(QProcess * process) { - bool n = 0; + bool n = 0; - process->terminate(); - n = process->waitForFinished(30000); - if (n == false) - { - process->close(); - } + process->terminate(); + n = process->waitForFinished(30000); + if (n == false) + { + process->close(); + } } // launch a rsync processus downloading a file void MainWindow::download() { - QString cmd; - QStringList param; - QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); + QString cmd; + QStringList param; + QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); + QString server = downloading.server; - this->downloading.process = new QProcess(this); - if (!this->downloading.user.isEmpty()) - { - this->downloading.server.prepend(this->connexion.user + "@"); - env.insert("RSYNC_PASSWORD", this->downloading.password); // Add an environment variable - this->downloading.process->setProcessEnvironment(env); - } - // Populating array with command and parameters for popen2 - cmd = "rsync"; - if (this->connexion.bandwidthLimit != 0) - { - param << "--bwlimit=" + QString::number(this->connexion.bandwidthLimit) + bwUnitChar[this->connexion.bandwidthLimitUnit]; - } - param << "--port=" + QString::number(this->downloading.port); - param << "-aXP"; - param << this->downloading.server + "::" + this->downloading.service + "/" + this->downloading.path << this->downloading.savePath + "/"; + this->downloading.process = new QProcess(this); + if (!this->downloading.user.isEmpty()) + { + this->downloading.user = this->connexion.user; + server = this->connexion.user + "@" + this->downloading.server; + env.insert("RSYNC_PASSWORD", this->downloading.password); // Add an environment variable + this->downloading.process->setProcessEnvironment(env); + } + // Populating array with command and parameters for rsync + cmd = "rsync"; + if (this->connexion.bandwidthLimit != 0) + { + param << "--bwlimit=" + QString::number(this->connexion.bandwidthLimit) + bwUnitChar[this->connexion.bandwidthLimitUnit]; + } - this->downloading.process->start(cmd, param); + if (downloading.ipversion == 4 || downloading.ipversion == 6) + { + param << "-" + QString::number(downloading.ipversion); + } - connect(this->downloading.process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(downloadFinished(int, QProcess::ExitStatus))); - //connect(this->downloading.process, SIGNAL(errorOccurred(QProcess::ProcessError error)), this, SLOT(downloadProcessError(QProcess::ProcessError error))); - //connect(this->downloading.process, SIGNAL(readyReadStandardError()), this, SLOT(downloadProcessStderr())); - connect(this->downloading.process, SIGNAL(readyReadStandardOutput()), this, SLOT(readRsyncOutput())); + param << "--port" << QString::number(this->downloading.port); + param << "-aXP "; + param << server + "::" + this->downloading.service + "/" + this->downloading.path << this->downloading.savePath + "/"; + + qInfo("%s %s", cmd.toStdString().c_str(), param.join(" ").toStdString().c_str() ); + + this->downloading.process->start(cmd, param); + + connect(this->downloading.process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(downloadFinished(int, QProcess::ExitStatus))); + //connect(this->downloading.process, SIGNAL(errorOccurred(QProcess::ProcessError error)), this, SLOT(downloadProcessError(QProcess::ProcessError error))); + //connect(this->downloading.process, SIGNAL(readyReadStandardError()), this, SLOT(downloadProcessStderr())); + connect(this->downloading.process, SIGNAL(readyReadStandardOutput()), this, SLOT(readRsyncOutput())); } void MainWindow::readRsyncOutput() { - QString line; - bool flag = false; - int value; - int pos; - static QString dlSpeed; - QStringList list; - static QString filename; - int i; - int listSize; + QString line; + bool flag = false; + int value; + int pos; + static QString dlSpeed; + QStringList list; + static QString filename; + int i; + int listSize; - while(!flag) - { - list.clear(); - line = QString::fromUtf8(this->downloading.process->readLine()); - if (line.isEmpty()) - { - flag = true; - break; - }else - { - pos = line.indexOf("%"); - if (pos != -1) - { - line = line.simplified(); - list = line.split(" "); - listSize = list.count() / 4; - for (i = 0; i < listSize; i++) - { - value = list.at(i *4 + 1).chopped(1).toInt(); - dlSpeed = list.at(i * 4 + 2); + while(!flag) + { + list.clear(); + line = QString::fromUtf8(this->downloading.process->readLine()); + if (line.isEmpty()) + { + flag = true; + break; + }else + { + pos = line.indexOf("%"); + if (pos != -1) + { + line = line.simplified(); + list = line.split(" "); + listSize = list.count() / 4; + for (i = 0; i < listSize; i++) + { + value = list.at(i *4 + 1).chopped(1).toInt(); + dlSpeed = list.at(i * 4 + 2); - /*line.resize(pos); - pos = line.lastIndexOf(' '); - if (pos != -1) - { - line.remove(0, pos); - value = line.toInt();*/ - // sending progress to Main window - emit progressSignal(value); - emit fileName(filename + " %p%" + "\t " + dlSpeed); - } - }else - { - if (!line.contains("receiving")) - { - filename = line.remove(QChar('\n'), Qt::CaseInsensitive); - emit fileName(filename + " %p%\t " + dlSpeed); - } - } - } - } + /*line.resize(pos); + pos = line.lastIndexOf(' '); + if (pos != -1) + { + line.remove(0, pos); + value = line.toInt();*/ + // sending progress to Main window + emit progressSignal(value); + emit fileName(filename + " %p%" + "\t " + dlSpeed); + } + }else + { + if (!line.contains("receiving")) + { + filename = line.remove(QChar('\n'), Qt::CaseInsensitive); + emit fileName(filename + " %p%\t " + dlSpeed); + } + } + } + } } diff --git a/downloadfile.h b/downloadfile.h index 74098f5..e3c29f9 100644 --- a/downloadfile.h +++ b/downloadfile.h @@ -10,11 +10,10 @@ class MainWindow; class downloadFile : public QObject { - Q_OBJECT + Q_OBJECT public: - downloadFile(); - bool canceled; - + downloadFile(); + bool canceled; }; #endif // DOWNLOADFILE_H diff --git a/main.cpp b/main.cpp index 252bec4..eabf92c 100644 --- a/main.cpp +++ b/main.cpp @@ -4,28 +4,31 @@ int main(int argc, char *argv[]) { - QApplication a(argc, argv); - QTranslator myappTranslator; + QApplication a(argc, argv); + QTranslator myappTranslator; - QCoreApplication::setOrganizationName("RsyncUI"); - QCoreApplication::setApplicationName("RsyncUI"); + QCoreApplication::setOrganizationName("RsyncUI"); + QCoreApplication::setApplicationName("RsyncUI"); - // Initialization of localization - QLocale localeName = QLocale::system(); - QString localeDir = "/usr/share/locale/" + localeName.name() + "/LC_MESSAGES/"; //RsyncUI_" + localeName.name() + ".qm"; - QString localeFilename = QCoreApplication::applicationName() + "_" + localeName.name(); - QLocale locale = QLocale(); + // Initialization of localization + QLocale localeName = QLocale::system(); + QString localeDir = "/usr/share/locale/" + localeName.name() + "/LC_MESSAGES/"; //RsyncUI_" + localeName.name() + ".qm"; + QString localeFilename = QCoreApplication::applicationName() + "_" + localeName.name(); + QLocale locale = QLocale(); - if (myappTranslator.load(localeFilename, localeDir)) - { - a.installTranslator(&myappTranslator); - } + if (myappTranslator.load(localeFilename, localeDir)) + { + a.installTranslator(&myappTranslator); + } - static const QString appName = "RsyncUI"; + // Enable logging to journald + qputenv("QT_FORCE_STDERR_LOGGING", QByteArray("0")); - //Password passwdJob; - MainWindow w; - w.show(); - w.init(); - return a.exec(); + static const QString appName = "RsyncUI"; + //Password passwdJob; + MainWindow w; + qInfo("RsyncUI begining"); + w.show(); + w.init(); + return a.exec(); } diff --git a/mainwindow.h b/mainwindow.h index e918107..392208e 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -1,13 +1,11 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H + #define QT_USE_FAST_CONCATENATION #define QT_USE_FAST_OPERATOR_PLUS #include "ui_mainwindow.h" #include "ui_configuration.h" #include "ui_about.h" -#include "downloadfile.h" -#include "tools.h" -#include "password.h" #include #include #include @@ -53,180 +51,185 @@ extern QMap rsyncErrorStrings; class Connexion { - public: - int bandwidthLimit = 0; - int bandwidthLimitUnit; - int contimeout = 20; - QString server; - QString service; - QString path; - QString savePath; - QString user; - QString password; - QProcess * process = nullptr; - int port = 873; - bool comboboxChanged; - bool quit = false; - void clear(); + public: + int bandwidthLimit = 0; + int bandwidthLimitUnit; + int contimeout = 20; + QString server; + QString service; + QString path; + QString savePath; + QString user; + QString password; + QProcess * process = nullptr; + int ipversion = 4; + uint port = 873; + bool quit = false; + void clear(); }; class Downloading { - public: - QString server; - QString service; - QString path; - QString savePath; - QString user; - QString password; - int port = 873; - QProcess * process = nullptr; - bool quit = false; - void clear(); + public: + QString server; + QString service; + QString path; + QString savePath; + QString user; + QString password; + int ipversion = 4; + int port = 873; + QProcess * process = nullptr; + bool quit = false; + void clear(); }; class About { - public: - QString version; - QString author = "Daniel TARTAVEL-JEANNOT"; - QString licence = "GPL_V3"; - QString description; - QString email = "dtux@free.fr"; - QString git = "https://git.labolyon.fr/dtux/RsyncUI/issues"; + public: + QString version; + QString author = "Daniel TARTAVEL-JEANNOT"; + QString licence = "GPL_V3"; + QString description; + QString email = "dtux@free.fr"; + QString git = "https://git.labolyon.fr/dtux/RsyncUI/issues"; }; class MainWindow : public QMainWindow { - Q_OBJECT + Q_OBJECT - public: - Ui::MainWindow *ui; - MainWindow(QWidget *parent = nullptr); - ~MainWindow(); - // passwdManager; - QProgressDialog *progress; - Connexion connexion; - Connexion downloading; - QSettings settings; - About about; - QDialog Configuration; - Ui::Configuration config; - QDialog aboutDialog; - Ui::windowAbout AboutW; - std::vector serversList; - QSystemTrayIcon * trayIcon; - QString icon = "/usr/share/icons/RsyncUI.png"; - bool rescan = false; - bool stopDlAsked; - bool treeviewClicked; + public: + Ui::MainWindow *ui; + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + // passwdManager; + QProgressDialog *progress; + Connexion connexion; + Connexion downloading; + QSettings settings; + About about; + QDialog Configuration; + Ui::Configuration config; + QDialog aboutDialog; + Ui::windowAbout AboutW; + std::vector serversList; + QSystemTrayIcon * trayIcon; + QString icon = "/usr/share/icons/RsyncUI.png"; + bool rescan = false; + bool stopDlAsked; + bool treeviewClicked; + bool initialization = true; + bool exiting = false; - QList UnitText - { - tr("B"), - tr("KB"), - tr("MB"), - tr("GB"), - tr("TB"), - tr("PB") - }; - QList bwUnitChar - { - 'K', - 'M', - 'T', - 'G', - 'P' - }; + QList UnitText + { + tr("B"), + tr("KB"), + tr("MB"), + tr("GB"), + tr("TB"), + tr("PB") + }; + QList bwUnitChar + { + 'K', + 'M', + 'T', + 'G', + 'P' + }; - QVector downloadProcessErrorString = - { - tr("The process failed to start. Either the invoked program is missing, or you may have insufficient permissions or resources to invoke the program."), - tr("The process crashed some time after starting successfully."), - tr("The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again."), - tr("An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel."), - tr("An error occurred when attempting to read from the process. For example, the process may not be running."), - tr("An unknown error occurred. This is the default return value of error().") - }; + QVector downloadProcessErrorString = + { + tr("The process failed to start. Either the invoked program is missing, or you may have insufficient permissions or resources to invoke the program."), + tr("The process crashed some time after starting successfully."), + tr("The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again."), + tr("An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel."), + tr("An error occurred when attempting to read from the process. For example, the process may not be running."), + tr("An unknown error occurred. This is the default return value of error().") + }; - void displayTree(); - void populateTree(); - void populateList(int); - void listServices(); - bool validateServer(QString server); - bool isIpAddress(QString server); - void addTreeItem(QString name, QString fileSize, QString fullsize, QString type, QString date, bool isDir, QString dirName, QTreeWidgetItem *parent); - bool scanDir(QString server, int portN, QTreeWidgetItem *parent = NULL, QString path = "" ); - void startDownloading(); - void loadSettings(); - void saveSettings(); - void closeEvent (QCloseEvent *event); - void saveDownloadList(); - void loadDownloadList(); - void download(); - void initSystemTrayIcon(); - void hideWindow(); - void showWindow(); - void init(); - bool getUserPassword(Connexion *); - void preparePopulateTree(); - bool testServicePresence(QString, bool=false); - void passwordStore (QString account, QString password); - QString passwordGet (QString account); + void displayTree(); + void populateTree(); + void populateList(QString server, uint port); + void listServices(); + uint validateServer(QString server); + void addTreeItem(QString name, QString fileSize, QString fullsize, QString type, QString date, bool isDir, QString dirName, QTreeWidgetItem *parent); + bool scanDir(Connexion * connexion, QTreeWidgetItem *parent = NULL, QString path = "" ); + void startDownloading(); + void loadSettings(); + void saveSettings(); + void closeEvent (QCloseEvent *event); + void saveDownloadList(); + void loadDownloadList(); + void deleteDownloadList(); + void download(); + void initSystemTrayIcon(); + void hideWindow(); + void showWindow(); + void init(); + bool getUserPassword(Connexion *); + void preparePopulateTree(); + bool testServerPresence(QString, bool=false); + void passwordStore (QString account, QString password); + QString passwordGet (QString account); - private slots: + private slots: - void on_listWidget_clicked(); + void on_listWidget_clicked(); - void on_treeWidget_itemClicked(QTreeWidgetItem *item, bool downloadDir = false); + void on_treeWidget_itemClicked(QTreeWidgetItem *item, bool downloadDir = false); - void downloadFinished(int exitCode, QProcess::ExitStatus exitStatus); + void downloadFinished(int exitCode, QProcess::ExitStatus exitStatus); - void readRsyncOutput(); + void readRsyncOutput(); - void stoppingDownload(); + void stoppingDownload(); - void on_listDownload_itemClicked(QListWidgetItem *item); + void on_listDownload_itemClicked(QListWidgetItem *item); - void on_actionAbout_triggered(); + void on_actionAbout_triggered(); - void on_actionAbout_Qt_triggered(); + void on_actionAbout_Qt_triggered(); - void on_khistorycombobox_currentIndexChanged(int); + bool on_DefaultSaveFolder_triggered(); - bool on_DefaultSaveFolder_triggered(); + void on_connectButton_clicked(); - void on_connectButton_clicked(); + void on_action_Settings_triggered(); - void on_action_Settings_triggered(); + void on_actionDownload_triggered(); - void on_actionDownload_triggered(); + void on_comboBox_currentIndexChanged(int index); - void on_comboBox_currentIndexChanged(int index); + void on_buttonBox_accepted(); - void on_buttonBox_accepted(); + void cancelled(QProcess *); - void cancelled(QProcess *); + void on_trayIcon_clicked(QSystemTrayIcon::ActivationReason reason); - void on_trayIcon_clicked(QSystemTrayIcon::ActivationReason reason); + void quitApp(); - void quitApp(); + void on_actionExit_triggered(); - void on_actionExit_triggered(); + void setDlSpeed(QString speed); - void setDlSpeed(QString speed); + void on_actionHiddenService_triggered(); - void on_actionHiddenService_triggered(); + //void on_treeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column); - void on_treeWidget_itemDoubleClicked(QTreeWidgetItem *item, int column); + //void on_khistorycombobox_currentTextChanged(const QString &arg1); + + void on_khistorycombobox_currentTextChanged(const QString &arg1); signals: - void stopDownloading(QProcess *); - void progressSignal(int); - void speed(QString); - void finishedSignal(bool = true); - void fileName(QString); - void passwordReady(); + void stopDownloading(QProcess *); + void progressSignal(int); + void speed(QString); + void finishedSignal(bool = true); + void fileName(QString); + void passwordReady(); }; #endif // MAINWINDOW_H diff --git a/tools.cpp b/tools.cpp index 051fe4e..6690291 100644 --- a/tools.cpp +++ b/tools.cpp @@ -12,26 +12,65 @@ extern QApplication a; // return true in case of error bool testRsyncReturn(MainWindow * w, QProcess * myProcess) { - if (myProcess->exitStatus() != 0 and w->stopDlAsked != true) - { - cout << "rsync error: " << myProcess->error() << " : " << myProcess->errorString().toStdString() << endl; - QMessageBox::warning( - w, - a.applicationName(), - myProcess->errorString(), - QMessageBox::Ok, - QMessageBox::Ok); - return true; - } - w->stopDlAsked = false; - return false; + if (myProcess->exitStatus() != 0 and w->stopDlAsked != true) + { + qInfo("rsync error %i : %s ", + myProcess->error(), myProcess->errorString().toStdString().c_str()); + QMessageBox::warning( + w, + a.applicationName(), + rsyncErrorStrings[myProcess->error()], + //myProcess->errorString(), + QMessageBox::Ok, + QMessageBox::Ok); + return true; + } + w->stopDlAsked = false; + return false; } QString getFileType(QString filename) { - QMimeDatabase db; - QMimeType mime = db.mimeTypeForFile(filename); - QString returnValue = mime.name().section('/',0 ,0); - return returnValue; + QMimeDatabase db; + QMimeType mime = db.mimeTypeForFile(filename); + QString returnValue = mime.name().section('/',0 ,0); + return returnValue; } +int whatIpVersion(QString ipAddress) +{ + QStringList fieldList; + ulong field; + uint i; + + qInfo("ipVersion %s", ipAddress.toStdString().c_str()); + + fieldList = ipAddress.split(":"); + if (fieldList.count() == 8) + { + for (i=0;i<8;i++) + { + field = fieldList[i].toUInt(); + if (field > 65535) + { + return 0; + } + } + qInfo("Address is Ip V6"); + return 6; + } + fieldList = ipAddress.split("."); + if(fieldList.count() == 4) + { + for (i=0;i<4;i++) + { + field = fieldList[i].toUInt(); + if (field > 255) + { + return 0; + } + } + qInfo("Address is ip V4"); + return 4; + } + return 0; +} diff --git a/tools.h b/tools.h index 36f05d6..dc8e25d 100644 --- a/tools.h +++ b/tools.h @@ -19,5 +19,6 @@ int pclose2(FILE * fp, pid_t pid); bool testRsyncReturn(MainWindow *, QProcess *); QString getFileType(QString finename); +int whatIpVersion(QString); #endif // TOOLS_H diff --git a/version.h b/version.h index 0db8109..8a5a969 100644 --- a/version.h +++ b/version.h @@ -3,6 +3,6 @@ #include -QString version = "2.11.8"; +QString version = "2.12.1"; #endif // VERSION_H