Quellcode durchsuchen

Premier Commit

master
jfmartel vor 2 Jahren
Commit
6cf379a029
32 geänderte Dateien mit 5090 neuen und 0 gelöschten Zeilen
  1. +3
    -0
      .gitignore
  2. BIN
      Config.bin
  3. +81
    -0
      LogsValet.cfg
  4. +55
    -0
      LogsValet.pro
  5. +481
    -0
      Makefile
  6. +1637
    -0
      Makefile.Debug
  7. +1637
    -0
      Makefile.Release
  8. +144
    -0
      Sources/Gui/ConfigPage.cpp
  9. +36
    -0
      Sources/Gui/ConfigPage.h
  10. +125
    -0
      Sources/Gui/ConfigPage.ui
  11. +28
    -0
      Sources/Gui/MainWindow.cpp
  12. +29
    -0
      Sources/Gui/MainWindow.h
  13. +22
    -0
      Sources/Gui/MainWindow.ui
  14. +14
    -0
      Sources/Gui/StatusWindow.cpp
  15. +22
    -0
      Sources/Gui/StatusWindow.h
  16. +21
    -0
      Sources/Gui/StatusWindow.ui
  17. +130
    -0
      Sources/LogsHandler.cpp
  18. +31
    -0
      Sources/LogsHandler.h
  19. +30
    -0
      Sources/LogsSorter.cpp
  20. +31
    -0
      Sources/LogsSorter.h
  21. +142
    -0
      Sources/LogsSorterConfig.cpp
  22. +20
    -0
      Sources/LogsSorterConfig.h
  23. +85
    -0
      Sources/LogsSorterConfigData.cpp
  24. +49
    -0
      Sources/LogsSorterConfigData.h
  25. +16
    -0
      Sources/main.cpp
  26. BIN
      debug/LogsValet.exe
  27. +13
    -0
      object_script.LogsValet.Debug
  28. +13
    -0
      object_script.LogsValet.Release
  29. BIN
      release/LogsValet.exe
  30. +93
    -0
      ui_ConfigPage.h
  31. +56
    -0
      ui_MainWindow.h
  32. +46
    -0
      ui_StatusWindow.h

+ 3
- 0
.gitignore Datei anzeigen

@@ -0,0 +1,3 @@
*.o
/LogsValet.pro.user
*moc_*

BIN
Config.bin Datei anzeigen


+ 81
- 0
LogsValet.cfg Datei anzeigen

@@ -0,0 +1,81 @@
#Fichier de configuration du programme LogsValet

#Paramètres généraux

#Répertoire source à surveiller où se trouvent les fichiers logs d'origine
RÉPERTOIRE_SOURCE="D:\Main\Fichiers\JOB\LogsDump\Src"




#################################################################
#Configuration des filtres de logs
#
#Chaque log à filtrer est configuré par une série de paramètres.
#Chaque filtre doit commencer par le paramètre "FILTRE" et il est important d'assigner TOUS les paramètres pour chaque log à traîter. Sinon le programme ignorera le filtre.
#Les paramètres doivent être définis dans une zone délimitée par des brackets
#Chaque paramètre doit être définit entre guillemets " ... " et il ne doit pas y avoir d'espace en dehors des guillemets
#Il peut y avoir plusieurs filtres du même type
#
#FILTRE= Correspond à la chaîne de caractères qui différencie un log. Par exemple "ZT1", "ZT2" ou "BooleanData" pour un fichier SEI
#TYPE= Définit le type d'opération à effectuer sur le fichier filtré: "DÉPLACER" déplace le fichier vers le répertoire cible, "EFFACER" ne fait qu'effacer le fichier du répertoire source.
#DESCRIPTION= Une courte description qui décrit à qui correspond le filtre. Pour clarté seulement, non utilisé pour le traîtement des noms de fichiers.
#PREFIXE= La chaîne de caractères au tout début du nom du fichier. Généralement sert à identifier la station
#DESTINATION= Le nom du répertoire où le fichier log doit être copié (si le répertoire n'existe pas, le programme va tenter de le créer)
#
###################################################################

#Fichiers ZT1 d'Angrignon
FILTRE="ZT1" #test de commentaire
{
TYPE="DÉPLACER"
DESCRIPTION="Zone Test 1 Terminus Angrignon"
PREFIXE="ANG"
DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Angrignon"
}

#Fichiers ZT1 de Terminus Beaugrand
FILTRE="ZT1" #test de commentaire
{
TYPE="DÉPLACER"
DESCRIPTION="Zone Test 1 Terminus Beaugrand"
PREFIXE="HBGR"
DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Beaugrand"
}

#Fichiers ZT2 d'Angrignon
FILTRE="ZT2"
{
TYPE="DÉPLACER"
DESCRIPTION="Zone Test 2 Terminus Angrignon"
PREFIXE="ANG"
DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Angrignon"
}

#Fichiers ZT2 de Terminus Beaugrand
FILTRE="ZT2"
{
TYPE="DÉPLACER"
DESCRIPTION="Zone Test 2 Terminus Beaugrand"
PREFIXE="HBGR"
DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Beaugrand"
}


#Fichiers logs SEI de Viau
{
FILTRE="BooleanData_A"
TYPE="DÉPLACER"
DESCRIPTION="Logs SEI Viau"
PREFIXE="VIAU"
DESTINATION="D:\Main\Fichiers\JOB\LogsDump\SEI_VIAU"
}

#Fichiers logs SEI de Viau du replica 2 à effacer
FILTRE="BooleanData_B"
{
TYPE="EFFACER"
DESCRIPTION="Logs SEI Viau à effacer"
PREFIXE="VIAU"
DESTINATION=""
}

+ 55
- 0
LogsValet.pro Datei anzeigen

@@ -0,0 +1,55 @@
#-------------------------------------------------
#
# Project created by QtCreator 2023-04-12T13:38:04
#
#-------------------------------------------------

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = LogsValet
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0


SOURCES += \
Sources/Gui/MainWindow.cpp \
Sources/main.cpp \
Sources/LogsSorter.cpp \
Sources/LogsSorterConfig.cpp \
Sources/LogsSorterConfigData.cpp \
Sources/Gui/ConfigPage.cpp \
Sources/Gui/StatusWindow.cpp \
Sources/LogsHandler.cpp

HEADERS += \
Sources/Gui/MainWindow.h \
Sources/LogsSorter.h \
Sources/LogsSorterConfig.h \
Sources/LogsSorterConfigData.h \
Sources/Gui/ConfigPage.h \
Sources/Gui/StatusWindow.h \
Sources/LogsHandler.h

FORMS += \
Sources/Gui/MainWindow.ui \
Sources/Gui/ConfigPage.ui \
Sources/Gui/StatusWindow.ui

INCLUDEPATH += $$PWD/ \
$$PWD/Sources \
$$PWD/Sources/Gui \

DISTFILES += \
LogsValet.cfg

+ 481
- 0
Makefile Datei anzeigen

@@ -0,0 +1,481 @@
#############################################################################
# Makefile for building: LogsValet
# Generated by qmake (3.1) (Qt 5.14.2)
# Project: LogsValet.pro
# Template: app
# Command: C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin\qmake.exe -o Makefile LogsValet.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
#############################################################################

MAKEFILE = Makefile

EQ = =

first: debug
install: debug-install
uninstall: debug-uninstall
QMAKE = C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin\qmake.exe
DEL_FILE = del
CHK_DIR_EXISTS= if not exist
MKDIR = mkdir
COPY = copy /y
COPY_FILE = copy /y
COPY_DIR = xcopy /s /q /y /i
INSTALL_FILE = copy /y
INSTALL_PROGRAM = copy /y
INSTALL_DIR = xcopy /s /q /y /i
QINSTALL = C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin\qmake.exe -install qinstall
QINSTALL_PROGRAM = C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin\qmake.exe -install qinstall -exe
DEL_FILE = del
SYMLINK = $(QMAKE) -install ln -f -s
DEL_DIR = rmdir
MOVE = move
IDC = idc
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE =
SED = $(QMAKE) -install sed
MOVE = move
SUBTARGETS = \
debug \
release


debug: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-all: FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
release: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-all: FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall

Makefile: LogsValet.pro C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/spec_pre.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/qdevice.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/device_config.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/sanitize.conf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/gcc-base.conf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/g++-base.conf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/angle.conf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/windows_vulkan_sdk.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/windows-vulkan.conf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/g++-win32.conf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/windows-desktop.conf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/qconfig.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_accessibility_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bootstrap_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designercomponents_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_edid_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_egl_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fb_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_httpserver.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_httpserver_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_mqtt.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_mqtt_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldebug_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldevtools_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickparticles_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickshapes_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sslserver.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sslserver_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_theme_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uiplugin.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_vulkan_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_windowsuiautomation_support_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_zlib_private.pri \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt_functions.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt_config.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/spec_post.prf \
../.qmake.stash \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exclusive_builds.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/toolchain.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/default_pre.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/default_pre.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resolve_config.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exclusive_builds_post.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/default_post.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qml_debug.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/precompile_header.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/warn_on.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resources_functions.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resources.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/moc.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/opengl.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/uic.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qmake_use.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/file_copies.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/windows.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/testcase_targets.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exceptions.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/yacc.prf \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/lex.prf \
LogsValet.pro \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Widgets.prl \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Gui.prl \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Core.prl \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/qtmain.prl \
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/build_pass.prf
$(QMAKE) -o Makefile LogsValet.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/spec_pre.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/qdevice.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/device_config.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/sanitize.conf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/gcc-base.conf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/g++-base.conf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/angle.conf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/windows_vulkan_sdk.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/windows-vulkan.conf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/g++-win32.conf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/windows-desktop.conf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/qconfig.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_accessibility_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bootstrap_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designercomponents_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_edid_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_egl_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fb_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_httpserver.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_httpserver_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_mqtt.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_mqtt_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_packetprotocol_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldebug_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldevtools_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickparticles_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickshapes_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sslserver.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sslserver_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_theme_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uiplugin.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_vulkan_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_windowsuiautomation_support_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_zlib_private.pri:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt_functions.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt_config.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/spec_post.prf:
../.qmake.stash:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exclusive_builds.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/toolchain.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/default_pre.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/default_pre.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resolve_config.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exclusive_builds_post.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/default_post.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qml_debug.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/precompile_header.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/warn_on.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resources_functions.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resources.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/moc.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/opengl.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/uic.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qmake_use.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/file_copies.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/windows.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/testcase_targets.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exceptions.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/yacc.prf:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/lex.prf:
LogsValet.pro:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Widgets.prl:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Gui.prl:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Core.prl:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/qtmain.prl:
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/build_pass.prf:
qmake: FORCE
@$(QMAKE) -o Makefile LogsValet.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"

qmake_all: FORCE

make_first: debug-make_first release-make_first FORCE
all: debug-all release-all FORCE
clean: debug-clean release-clean FORCE
distclean: debug-distclean release-distclean FORCE
-$(DEL_FILE) Makefile

debug-mocclean:
$(MAKE) -f $(MAKEFILE).Debug mocclean
release-mocclean:
$(MAKE) -f $(MAKEFILE).Release mocclean
mocclean: debug-mocclean release-mocclean

debug-mocables:
$(MAKE) -f $(MAKEFILE).Debug mocables
release-mocables:
$(MAKE) -f $(MAKEFILE).Release mocables
mocables: debug-mocables release-mocables

check: first

benchmark: first
FORCE:

$(MAKEFILE).Debug: Makefile
$(MAKEFILE).Release: Makefile

+ 1637
- 0
Makefile.Debug
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


+ 1637
- 0
Makefile.Release
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


+ 144
- 0
Sources/Gui/ConfigPage.cpp Datei anzeigen

@@ -0,0 +1,144 @@
#include "ConfigPage.h"
#include "ui_ConfigPage.h"
#include "LogsSorterConfigData.h"

#include "LogsSorter.h"
#include "LogsSorterConfigData.h"

CConfigPage::CConfigPage(QWidget *parent) :
QDialog(parent),
ui(new Ui::CConfigPage)
{
ui->setupUi(this);

// FILTRE="ZT1" #test de commentaire

// TYPE="DÉPLACER"
// DESCRIPTION="Zone Test 1 Terminus Beaugrand"
// PREFIXE="HBGR"
// DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Beaugrand"

setAutoFillBackground(true);

ui->mConfigTable->setAutoFillBackground(true);
ui->mConfigTable->setColumnCount(5);
ui->mConfigTable->setHorizontalHeaderLabels(QStringList() << "Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
ui->mConfigTable->setSelectionBehavior(QAbstractItemView::SelectRows);

ui->mConfigTable->setRowCount(0);

connect(ui->mAddFilterBtn,&QPushButton::pressed,this,&CConfigPage::AddFilterBtnPressed);
connect(ui->mDeleteFilterBtn,&QPushButton::pressed,this,&CConfigPage::DeleteFilterBtnPressed);
connect(ui->mSaveBtn,&QPushButton::pressed,this,&CConfigPage::SaveConfigBtnPressed);
connect(ui->mCancelBtn,&QPushButton::pressed,this,&CConfigPage::CancelBtnPressed);
}

CConfigPage::~CConfigPage()
{
delete ui;
}

void CConfigPage::AddFilterBtnPressed()
{
ui->mConfigTable->insertRow(0);
QTableWidgetItem *NewItem;

NewItem = new QTableWidgetItem("");
ui->mConfigTable->setItem(0,0,NewItem);
NewItem = new QTableWidgetItem("DÉPLACER");
ui->mConfigTable->setItem(0,1,NewItem);
NewItem = new QTableWidgetItem("");
ui->mConfigTable->setItem(0,2,NewItem);
NewItem = new QTableWidgetItem("");
ui->mConfigTable->setItem(0,3,NewItem);
NewItem = new QTableWidgetItem("");
ui->mConfigTable->setItem(0,4,NewItem);
}

void CConfigPage::DeleteFilterBtnPressed()
{
ui->mConfigTable->removeRow(ui->mConfigTable->currentRow());
}

void CConfigPage::CancelBtnPressed()
{
InitializeConfigData(mProgramPtr->GetSorterConfigRequest());
}


void CConfigPage::SaveConfigBtnPressed()
{
CLogsSorterConfigData CurrentConfig;

//TODO: Confirmer la validité des données avant tout

CurrentConfig.mLogsSourceDirectory = ui->mSrcDirLineEdit->text();

for(int i = 0; i < ui->mConfigTable->rowCount(); i++)
{
//"Filtre" << "Type" << "Préfixe" << "Description" << "Destination");
CLogsFilterData FilterData;

FilterData.mLogIdentificator = ui->mConfigTable->item(i,0)->text();
FilterData.mLogPrefix = ui->mConfigTable->item(i,2)->text();
FilterData.mFilterName = ui->mConfigTable->item(i,3)->text();
FilterData.mLogDestination = ui->mConfigTable->item(i,4)->text();

if(ui->mConfigTable->item(i,1)->text() == "DÉPLACER")
{
FilterData.mFilterOperation = CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE;
}
else if(ui->mConfigTable->item(i,1)->text() == "EFFACER")
{
FilterData.mFilterOperation = CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE;
}
else
{
//TODO: Ceci est une erreur... à gérer
}

CurrentConfig.mLogsFiltersList.append(FilterData);
}

mProgramPtr->SaveSorterConfigRequest(CurrentConfig);


}



void CConfigPage::InitializeConfigData(const CLogsSorterConfigData *DataStruct)
{
ui->mConfigTable->clearContents();
ui->mSrcDirLineEdit->setText(DataStruct->mLogsSourceDirectory);

ui->mConfigTable->setRowCount(DataStruct->mLogsFiltersList.size());
for(int i = 0; i < DataStruct->mLogsFiltersList.size(); i++)
{
QTableWidgetItem *NewItem;


//"Filtre" << "Type" << "Préfixe" << "Description" << "Destination");

NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogIdentificator);
ui->mConfigTable->setItem(i,0,NewItem);
if(DataStruct->mLogsFiltersList.at(i).mFilterOperation == CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE)
{
NewItem = new QTableWidgetItem("DÉPLACER");
}
if(DataStruct->mLogsFiltersList.at(i).mFilterOperation == CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE)
{
NewItem = new QTableWidgetItem("EFFACER");
}
ui->mConfigTable->setItem(i,1,NewItem);
NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogPrefix);
ui->mConfigTable->setItem(i,2,NewItem);
NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mFilterName);
ui->mConfigTable->setItem(i,3,NewItem);
NewItem = new QTableWidgetItem(DataStruct->mLogsFiltersList.at(i).mLogDestination);
ui->mConfigTable->setItem(i,4,NewItem);
}

ui->mConfigTable->resizeColumnsToContents();
}


+ 36
- 0
Sources/Gui/ConfigPage.h Datei anzeigen

@@ -0,0 +1,36 @@
#ifndef CONFIGPAGE_H
#define CONFIGPAGE_H

#include <QDialog>

class CLogsSorter;
class CLogsSorterConfigData;


namespace Ui {
class CConfigPage;
}

class CConfigPage : public QDialog
{
Q_OBJECT

public:
explicit CConfigPage(QWidget *parent = 0);
~CConfigPage();

void InitializeConfigData(const CLogsSorterConfigData *DataStruct);

CLogsSorter *mProgramPtr;

private:
Ui::CConfigPage *ui;

public slots:
void AddFilterBtnPressed();
void DeleteFilterBtnPressed();
void CancelBtnPressed();
void SaveConfigBtnPressed();
};

#endif // CONFIGPAGE_H

+ 125
- 0
Sources/Gui/ConfigPage.ui Datei anzeigen

@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CConfigPage</class>
<widget class="QDialog" name="CConfigPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1204</width>
<height>509</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QTableWidget" name="mConfigTable">
<property name="geometry">
<rect>
<x>10</x>
<y>150</y>
<width>801</width>
<height>331</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="mSrcDirLineEdit">
<property name="geometry">
<rect>
<x>150</x>
<y>59</y>
<width>561</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>131</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Répertoire source:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QPushButton" name="mChooseSourceDirBtn">
<property name="geometry">
<rect>
<x>720</x>
<y>60</y>
<width>80</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Choisir</string>
</property>
</widget>
<widget class="QPushButton" name="mSaveBtn">
<property name="geometry">
<rect>
<x>960</x>
<y>450</y>
<width>81</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Sauvegarder</string>
</property>
</widget>
<widget class="QPushButton" name="mCancelBtn">
<property name="geometry">
<rect>
<x>870</x>
<y>450</y>
<width>81</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Annuler</string>
</property>
</widget>
<widget class="QPushButton" name="mAddFilterBtn">
<property name="geometry">
<rect>
<x>830</x>
<y>160</y>
<width>81</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Ajouter Filtre</string>
</property>
</widget>
<widget class="QPushButton" name="mDeleteFilterBtn">
<property name="geometry">
<rect>
<x>830</x>
<y>190</y>
<width>81</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Supprimer</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

+ 28
- 0
Sources/Gui/MainWindow.cpp Datei anzeigen

@@ -0,0 +1,28 @@
#include "MainWindow.h"
#include "ui_MainWindow.h"


CMainWindow::CMainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::CMainWindow)
{
ui->setupUi(this);

mMainWindowTab = new QTabWidget(this);
mConfigPage = new CConfigPage(this);
mStatusPage = new CStatusWindow(this);

setCentralWidget(mMainWindowTab);
mMainWindowTab->addTab(mStatusPage,"Status");
mMainWindowTab->addTab(mConfigPage,"Configuration");



resize(1700,768);
}

CMainWindow::~CMainWindow()
{
delete ui;

}

+ 29
- 0
Sources/Gui/MainWindow.h Datei anzeigen

@@ -0,0 +1,29 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTabWidget>
#include "ConfigPage.h"
#include "StatusWindow.h"

namespace Ui {
class CMainWindow;
}

class CMainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit CMainWindow(QWidget *parent = 0);
~CMainWindow();

QTabWidget *mMainWindowTab;
CConfigPage *mConfigPage;
CStatusWindow *mStatusPage;

private:
Ui::CMainWindow *ui;
};

#endif // MAINWINDOW_H

+ 22
- 0
Sources/Gui/MainWindow.ui Datei anzeigen

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CMainWindow</class>
<widget class="QMainWindow" name="CMainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1131</width>
<height>546</height>
</rect>
</property>
<property name="windowTitle">
<string>CMainWindow</string>
</property>
<widget class="QWidget" name="centralWidget"/>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

+ 14
- 0
Sources/Gui/StatusWindow.cpp Datei anzeigen

@@ -0,0 +1,14 @@
#include "StatusWindow.h"
#include "ui_StatusWindow.h"

CStatusWindow::CStatusWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::CStatusWindow)
{
ui->setupUi(this);
}

CStatusWindow::~CStatusWindow()
{
delete ui;
}

+ 22
- 0
Sources/Gui/StatusWindow.h Datei anzeigen

@@ -0,0 +1,22 @@
#ifndef STATUSWINDOW_H
#define STATUSWINDOW_H

#include <QWidget>

namespace Ui {
class CStatusWindow;
}

class CStatusWindow : public QWidget
{
Q_OBJECT

public:
explicit CStatusWindow(QWidget *parent = 0);
~CStatusWindow();

private:
Ui::CStatusWindow *ui;
};

#endif // STATUSWINDOW_H

+ 21
- 0
Sources/Gui/StatusWindow.ui Datei anzeigen

@@ -0,0 +1,21 @@
<ui version="4.0">
<author/>
<comment/>
<exportmacro/>
<class>CStatusWindow</class>
<widget class="QWidget" name="CStatusWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<pixmapfunction/>
<connections/>
</ui>

+ 130
- 0
Sources/LogsHandler.cpp Datei anzeigen

@@ -0,0 +1,130 @@
#include "LogsHandler.h"
#include "LogsSorterConfigData.h"
#include "LogsSorter.h"
#include <QDir>
#include <QFileInfo>

CLogsHandler::CLogsHandler() : QObject()
{
mSortingConfigData = 0;
mProgramPtr = 0;

mLogsWatcher = new QFileSystemWatcher();
mHandlerRunning = false;

connect(mLogsWatcher,&QFileSystemWatcher::directoryChanged,this,&CLogsHandler::WatchedDirectoryChanged);

}

CLogsHandler::~CLogsHandler()
{
mLogsWatcher->removePaths(mLogsWatcher->directories());
delete mLogsWatcher;
}

int CLogsHandler::SetSortingConfigData(CLogsSorterConfigData *ConfigData)
{
mSortingConfigData = ConfigData;
mLogsWatcher->removePaths(mLogsWatcher->directories());

if(QDir(ConfigData->mLogsSourceDirectory).exists())
{
mLogsWatcher->addPath(ConfigData->mLogsSourceDirectory);
QString msg = QString("Le répertoire source %1 sous surveillance").arg(ConfigData->mLogsSourceDirectory);
qDebug(qPrintable(msg));
}
else
{
QString msg = QString("Erreur, le répertoire source %1 n'existe pas").arg(ConfigData->mLogsSourceDirectory);
}
return 0;
}

int CLogsHandler::StartLogHandling()
{
mHandlerRunning = true;
return 0;
}

int CLogsHandler::StopLogHandling()
{
mHandlerRunning = false;
return 0;
}

void CLogsHandler::WatchedDirectoryChanged(QString Path)
{
ParseWatchedDirectory(Path);
}

int CLogsHandler::ParseWatchedDirectory(QString Path)
{
QDir SourceDir(Path);
QFileInfoList LogFiles = SourceDir.entryInfoList();
const CLogsFilterData *Filter;

for(int i = 0; i < LogFiles.size(); i++)
{
for(int j = 0; j < mSortingConfigData->mLogsFiltersList.size(); j++)
{
Filter = &mSortingConfigData->mLogsFiltersList[j];

if(LogFiles.at(i).fileName().contains(Filter->mLogIdentificator) && //Le fichier contient le différentiateur comme ZT1, ZT2, BooleanData, etc.
LogFiles.at(i).fileName().contains(Filter->mLogPrefix)) //ET le fichier contient le bon préfixe (identification de la station).
{
if(Filter->mFilterOperation == CLogsFilterData::LOG_FILTER_MOVE_OPERATION_TYPE)
{
QString msg= QString("Filtre trouvé pour le fichier %1").arg(LogFiles.at(i).fileName());
qDebug(qPrintable(msg));

QString FullDestinationPath = Filter->mLogDestination;
QString DestFilename = LogFiles.at(i).fileName();
FullDestinationPath.append("\\");

DestFilename.remove(Filter->mLogPrefix);
FullDestinationPath.append(DestFilename);

if(!QDir(Filter->mLogDestination).exists()) //Créer le répertoire cible s'il n'exite pas déjà
{
QDir().mkdir(Filter->mLogDestination);
}

if(QFile::copy(LogFiles.at(i).absoluteFilePath(),FullDestinationPath))
{
qDebug("Fichier %s copié vers %s",qPrintable(LogFiles.at(i).absoluteFilePath()),qPrintable(FullDestinationPath));
}
else
{
qDebug("Impossible de copier %s vers %s",qPrintable(LogFiles.at(i).absoluteFilePath()),qPrintable(FullDestinationPath));
}

if(QFile::remove(LogFiles.at(i).absoluteFilePath()))
{
qDebug("Fichier %s effacé",qPrintable(LogFiles.at(i).absoluteFilePath()));
}
else
{
qDebug("Impossible d'effacer %s",qPrintable(LogFiles.at(i).absoluteFilePath()));
}

}
else if(Filter->mFilterOperation == CLogsFilterData::LOG_FILTER_DELETE_OPERATION_TYPE)
{
if(QFile::remove(LogFiles.at(i).absoluteFilePath()))
{
qDebug("Fichier %s effacé",qPrintable(LogFiles.at(i).absoluteFilePath()));
}
else
{
qDebug("Impossible d'effacer %s",qPrintable(LogFiles.at(i).absoluteFilePath()));
}
}
}
}

}



return 0;
}

+ 31
- 0
Sources/LogsHandler.h Datei anzeigen

@@ -0,0 +1,31 @@
#ifndef LOGSHANDLER_H
#define LOGSHANDLER_H

#include <QFileSystemWatcher>
#include <QObject>

class CLogsSorter;
class CLogsSorterConfigData;

class CLogsHandler : public QObject
{
Q_OBJECT
public:
CLogsHandler();
~CLogsHandler();

int SetSortingConfigData(CLogsSorterConfigData *ConfigData);
int StartLogHandling();
int StopLogHandling();
bool mHandlerRunning;
int ParseWatchedDirectory(QString Path);

CLogsSorter *mProgramPtr;
const CLogsSorterConfigData *mSortingConfigData;
QFileSystemWatcher *mLogsWatcher;

public slots:
void WatchedDirectoryChanged(QString Path);
};

#endif // LOGSHANDLER_H

+ 30
- 0
Sources/LogsSorter.cpp Datei anzeigen

@@ -0,0 +1,30 @@
#include "LogsSorter.h"

CLogsSorter::CLogsSorter() : QObject()
{

}

int CLogsSorter::InitLogsSorter()
{
mMainWindow.show();
mMainWindow.mConfigPage->mProgramPtr = this;
mSorterConfig.LoadLogsSorterConfig(".\\Config.bin");
mMainWindow.mConfigPage->InitializeConfigData(&mSorterConfig.mLogsSorterConfig);

mLogsHandler.mProgramPtr = this;
mLogsHandler.SetSortingConfigData(&mSorterConfig.mLogsSorterConfig);


}

int CLogsSorter::SaveSorterConfigRequest(CLogsSorterConfigData NewConfig)
{
mSorterConfig.SetNewConfig(NewConfig);
return 0;
}

CLogsSorterConfigData *CLogsSorter::GetSorterConfigRequest()
{
return &mSorterConfig.mLogsSorterConfig;
}

+ 31
- 0
Sources/LogsSorter.h Datei anzeigen

@@ -0,0 +1,31 @@
#ifndef LOGSSORTER_H
#define LOGSSORTER_H

#include <QFileSystemWatcher>
#include <QObject>
#include "LogsSorterConfig.h"
#include "MainWindow.h"
#include "LogsHandler.h"

class CLogsSorter : public QObject
{
Q_OBJECT
public:
CLogsSorter();
int InitLogsSorter();
int SaveSorterConfigRequest(CLogsSorterConfigData NewConfig);
CLogsSorterConfigData * GetSorterConfigRequest();


CMainWindow mMainWindow;

CLogsSorterConfig mSorterConfig;
QFileSystemWatcher mDirectoryWatcher;
CLogsHandler mLogsHandler;




};

#endif // LOGSSORTER_H

+ 142
- 0
Sources/LogsSorterConfig.cpp Datei anzeigen

@@ -0,0 +1,142 @@
#include "LogsSorterConfig.h"
#include <QFile>
#include <QDataStream>

CLogsSorterConfig::CLogsSorterConfig()
{
mIsConfigLoaded = false;
}


/*
FILTRE="ZT1"
TYPE="DÉPLACER"
DESCRIPTION="Zone Test 1 Terminus Angrignon"
PREFIXE="ANG"
DESTINATION="D:\Main\Fichiers\JOB\LogsDump\ZT Angrignon"
*/


int CLogsSorterConfig::LoadLogsSorterConfig(QString ConfigFileName)
{
QFile *ConfigFile = new QFile(ConfigFileName);
if (!ConfigFile->open(QIODevice::ReadOnly | QIODevice::Text))
{
delete ConfigFile;
return 1;
}

mLogsSorterConfig.mLogsFiltersList.clear();
mLogsSorterConfig.mLogsSourceDirectory.clear();

QDataStream * OutputStream = new QDataStream(ConfigFile);

quint32 MagicNbr;
quint32 FileVersion;

*OutputStream >> MagicNbr;
*OutputStream >> FileVersion;
*OutputStream >> mLogsSorterConfig;

ConfigFile->close();


ConfigFile->close();
delete ConfigFile;
delete OutputStream;

return 0;


// bool finished = false;
// QString string;
// int pos;
// while(!finished)
// {

// string.clear();
// string = ConfigFile->readLine(1024);
// if(string.isEmpty())
// {
// finished = true;
// break;
// }

// if(string.at(0) != '#' && string.at(0) != '\n')
// {
// string.remove("\n"); //remove trailing "\n" characters inserted by QFile.readline
// // string.remove(' '); //remove spaces
// pos = string.indexOf('=');
// if(pos != -1)
// {
// pos += 1;
//// NewFilter.mLogIdentificator = string.mid(pos);
// //Recherche d'une définition de filtre
// if(string.contains("FILTRE"))
// {
// string.remove(' '); //remove spaces
// QStringList Param = string.split('\"',Qt::SkipEmptyParts);
// if(Param.size() >= 2)
// {
// CLogsFilterData NewFilter;
// NewFilter.mLogIdentificator = Param.at(1);

// QString delimiter = ConfigFile->readLine(1024); //doit être '{'
// if(delimiter.isEmpty())
// {
// //fin du fichier!!
// finished = true;
// break;
// }
// else
// {
//// delimiter.
//// if(delimiter == "{")
//// {

//// }
// }
// }

// }
// }


// }
// }
}


int CLogsSorterConfig::SetNewConfig(CLogsSorterConfigData NewConfig)
{
mLogsSorterConfig = NewConfig;
SaveConfigToFile(".\\Config.bin");

return 0;
}

int CLogsSorterConfig::SaveConfigToFile(QString ConfigFileName)
{
QFile *ConfigFile = new QFile(ConfigFileName);
if (!ConfigFile->open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Unbuffered))
{
delete ConfigFile;
return 1;
}

QDataStream * OutputStream = new QDataStream(ConfigFile);

quint32 MagicNbr = 0xBAADCAFE;
quint32 FileVersion = 1;

*OutputStream << MagicNbr;
*OutputStream << FileVersion;
*OutputStream << mLogsSorterConfig;

ConfigFile->close();
delete ConfigFile;
delete OutputStream;


}


+ 20
- 0
Sources/LogsSorterConfig.h Datei anzeigen

@@ -0,0 +1,20 @@
#ifndef LOGSSORTERCONFIG_H
#define LOGSSORTERCONFIG_H
#include <QString>
#include "LogsSorterConfigData.h"

class CLogsSorterConfig
{
public:
CLogsSorterConfig();
int LoadLogsSorterConfig(QString ConfigFileName);
int SetNewConfig(CLogsSorterConfigData NewConfig);
int SaveConfigToFile(QString ConfigFileName);

bool mIsConfigLoaded;
CLogsSorterConfigData mLogsSorterConfig;


};

#endif // LOGSSORTERCONFIG_H

+ 85
- 0
Sources/LogsSorterConfigData.cpp Datei anzeigen

@@ -0,0 +1,85 @@
#include "LogsSorterConfigData.h"
#include <QDataStream>

CLogsSorterConfigData::CLogsSorterConfigData()
{

}

CLogsSorterConfigData& CLogsSorterConfigData::operator=(const CLogsSorterConfigData *source)
{
if(source == this)
{
return *this;
}

this->mLogsSourceDirectory = source->mLogsSourceDirectory;
this->mLogsFiltersList.clear();
this->mLogsFiltersList = source->mLogsFiltersList;
}



QDataStream &operator>>(QDataStream &in, CLogsSorterConfigData &dest)
{
in >> dest.mLogsSourceDirectory
>> dest.mLogsFiltersList;


return in;
}
QDataStream &operator<<(QDataStream &out, const CLogsSorterConfigData &source)
{
out << source.mLogsSourceDirectory
<< source.mLogsFiltersList;

return out;
}








///////////////////// CLogsFilterData definitions ///////////////////////////



CLogsFilterData& CLogsFilterData::operator=(const CLogsFilterData *source)
{
if(source == this)
{
return *this;
}

this->mFilterName = source->mFilterName;
this->mLogIdentificator = source->mLogIdentificator;
this->mLogPrefix = source->mLogPrefix;
this->mLogDestination = source->mLogDestination;
this->mFilterOperation = source->mFilterOperation;

return *this;
}

QDataStream &operator>>(QDataStream &in, CLogsFilterData &dest)
{
in >> dest.mFilterName
>> dest.mLogIdentificator
>> dest.mLogPrefix
>> dest.mLogDestination
>> dest.mFilterOperation;

return in;
}
QDataStream &operator<<(QDataStream &out, const CLogsFilterData &source)
{
out << source.mFilterName
<< source.mLogIdentificator
<< source.mLogPrefix
<< source.mLogDestination
<< source.mFilterOperation;

return out;
}

+ 49
- 0
Sources/LogsSorterConfigData.h Datei anzeigen

@@ -0,0 +1,49 @@
#ifndef LOGSSORTERCONFIGDATA_H
#define LOGSSORTERCONFIGDATA_H

#include <QString>
#include <QList>

class CLogsFilterData;

class CLogsSorterConfigData
{
public:
CLogsSorterConfigData();

QString mLogsSourceDirectory; //Le répertoire à surveiller
QList<CLogsFilterData> mLogsFiltersList;


CLogsSorterConfigData& operator=(const CLogsSorterConfigData *source);
};

QDataStream &operator<<(QDataStream &out, const CLogsSorterConfigData &source);
QDataStream &operator>>(QDataStream &in, CLogsSorterConfigData &dest);

class CLogsFilterData
{
public:
enum eFilterOperationType
{
LOG_FILTER_MOVE_OPERATION_TYPE,
LOG_FILTER_DELETE_OPERATION_TYPE,

LOG_FILTER_MAX_OPERATION_TYPE
};


QString mFilterName; //Une courte description du filtre (non utilisé dans le traîtement des noms de fichiers)
QString mLogIdentificator; //Correspond à la chaîne de caractère qui différencie type de log. Par exemple: "ZT1" ou "ZT2" ou "BooleanData"
QString mLogPrefix; //Le préfixe qui identifie généralement la station
QString mLogDestination; //Le répertoire de destination
eFilterOperationType mFilterOperation; //Le type d'opération qu'on doit faire sur le fichier

CLogsFilterData& operator=(const CLogsFilterData *source);

};

QDataStream &operator<<(QDataStream &out, const CLogsFilterData &source);
QDataStream &operator>>(QDataStream &in, CLogsFilterData &dest);

#endif // LOGSSORTERCONFIGDATA_H

+ 16
- 0
Sources/main.cpp Datei anzeigen

@@ -0,0 +1,16 @@

#include <QApplication>
#include "LogsSorter.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//CMainWindow w;
CLogsSorter mProgram;
mProgram.InitLogsSorter();

//w.show();


return a.exec();
}

BIN
debug/LogsValet.exe Datei anzeigen


+ 13
- 0
object_script.LogsValet.Debug Datei anzeigen

@@ -0,0 +1,13 @@
debug/MainWindow.o
debug/main.o
debug/LogsSorter.o
debug/LogsSorterConfig.o
debug/LogsSorterConfigData.o
debug/ConfigPage.o
debug/StatusWindow.o
debug/LogsHandler.o
debug/moc_MainWindow.o
debug/moc_LogsSorter.o
debug/moc_ConfigPage.o
debug/moc_StatusWindow.o
debug/moc_LogsHandler.o

+ 13
- 0
object_script.LogsValet.Release Datei anzeigen

@@ -0,0 +1,13 @@
release/MainWindow.o
release/main.o
release/LogsSorter.o
release/LogsSorterConfig.o
release/LogsSorterConfigData.o
release/ConfigPage.o
release/StatusWindow.o
release/LogsHandler.o
release/moc_MainWindow.o
release/moc_LogsSorter.o
release/moc_ConfigPage.o
release/moc_StatusWindow.o
release/moc_LogsHandler.o

BIN
release/LogsValet.exe Datei anzeigen


+ 93
- 0
ui_ConfigPage.h Datei anzeigen

@@ -0,0 +1,93 @@
/********************************************************************************
** Form generated from reading UI file 'ConfigPage.ui'
**
** Created by: Qt User Interface Compiler version 5.14.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_CONFIGPAGE_H
#define UI_CONFIGPAGE_H

#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QTableWidget>

QT_BEGIN_NAMESPACE

class Ui_CConfigPage
{
public:
QTableWidget *mConfigTable;
QLineEdit *mSrcDirLineEdit;
QLabel *label;
QPushButton *mChooseSourceDirBtn;
QPushButton *mSaveBtn;
QPushButton *mCancelBtn;
QPushButton *mAddFilterBtn;
QPushButton *mDeleteFilterBtn;

void setupUi(QDialog *CConfigPage)
{
if (CConfigPage->objectName().isEmpty())
CConfigPage->setObjectName(QString::fromUtf8("CConfigPage"));
CConfigPage->resize(1204, 509);
mConfigTable = new QTableWidget(CConfigPage);
mConfigTable->setObjectName(QString::fromUtf8("mConfigTable"));
mConfigTable->setGeometry(QRect(10, 150, 801, 331));
mSrcDirLineEdit = new QLineEdit(CConfigPage);
mSrcDirLineEdit->setObjectName(QString::fromUtf8("mSrcDirLineEdit"));
mSrcDirLineEdit->setGeometry(QRect(150, 59, 561, 20));
label = new QLabel(CConfigPage);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(10, 60, 131, 16));
QFont font;
font.setPointSize(10);
label->setFont(font);
label->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
mChooseSourceDirBtn = new QPushButton(CConfigPage);
mChooseSourceDirBtn->setObjectName(QString::fromUtf8("mChooseSourceDirBtn"));
mChooseSourceDirBtn->setGeometry(QRect(720, 60, 80, 22));
mSaveBtn = new QPushButton(CConfigPage);
mSaveBtn->setObjectName(QString::fromUtf8("mSaveBtn"));
mSaveBtn->setGeometry(QRect(960, 450, 81, 22));
mCancelBtn = new QPushButton(CConfigPage);
mCancelBtn->setObjectName(QString::fromUtf8("mCancelBtn"));
mCancelBtn->setGeometry(QRect(870, 450, 81, 22));
mAddFilterBtn = new QPushButton(CConfigPage);
mAddFilterBtn->setObjectName(QString::fromUtf8("mAddFilterBtn"));
mAddFilterBtn->setGeometry(QRect(830, 160, 81, 22));
mDeleteFilterBtn = new QPushButton(CConfigPage);
mDeleteFilterBtn->setObjectName(QString::fromUtf8("mDeleteFilterBtn"));
mDeleteFilterBtn->setGeometry(QRect(830, 190, 81, 22));

retranslateUi(CConfigPage);

QMetaObject::connectSlotsByName(CConfigPage);
} // setupUi

void retranslateUi(QDialog *CConfigPage)
{
CConfigPage->setWindowTitle(QCoreApplication::translate("CConfigPage", "Dialog", nullptr));
label->setText(QCoreApplication::translate("CConfigPage", "R\303\251pertoire source:", nullptr));
mChooseSourceDirBtn->setText(QCoreApplication::translate("CConfigPage", "Choisir", nullptr));
mSaveBtn->setText(QCoreApplication::translate("CConfigPage", "Sauvegarder", nullptr));
mCancelBtn->setText(QCoreApplication::translate("CConfigPage", "Annuler", nullptr));
mAddFilterBtn->setText(QCoreApplication::translate("CConfigPage", "Ajouter Filtre", nullptr));
mDeleteFilterBtn->setText(QCoreApplication::translate("CConfigPage", "Supprimer", nullptr));
} // retranslateUi

};

namespace Ui {
class CConfigPage: public Ui_CConfigPage {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_CONFIGPAGE_H

+ 56
- 0
ui_MainWindow.h Datei anzeigen

@@ -0,0 +1,56 @@
/********************************************************************************
** Form generated from reading UI file 'MainWindow.ui'
**
** Created by: Qt User Interface Compiler version 5.14.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H

#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_CMainWindow
{
public:
QWidget *centralWidget;
QStatusBar *statusBar;

void setupUi(QMainWindow *CMainWindow)
{
if (CMainWindow->objectName().isEmpty())
CMainWindow->setObjectName(QString::fromUtf8("CMainWindow"));
CMainWindow->resize(1131, 546);
centralWidget = new QWidget(CMainWindow);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
CMainWindow->setCentralWidget(centralWidget);
statusBar = new QStatusBar(CMainWindow);
statusBar->setObjectName(QString::fromUtf8("statusBar"));
CMainWindow->setStatusBar(statusBar);

retranslateUi(CMainWindow);

QMetaObject::connectSlotsByName(CMainWindow);
} // setupUi

void retranslateUi(QMainWindow *CMainWindow)
{
CMainWindow->setWindowTitle(QCoreApplication::translate("CMainWindow", "CMainWindow", nullptr));
} // retranslateUi

};

namespace Ui {
class CMainWindow: public Ui_CMainWindow {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_MAINWINDOW_H

+ 46
- 0
ui_StatusWindow.h Datei anzeigen

@@ -0,0 +1,46 @@
/********************************************************************************
** Form generated from reading UI file 'StatusWindow.ui'
**
** Created by: Qt User Interface Compiler version 5.14.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_STATUSWINDOW_H
#define UI_STATUSWINDOW_H

#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_CStatusWindow
{
public:

void setupUi(QWidget *CStatusWindow)
{
if (CStatusWindow->objectName().isEmpty())
CStatusWindow->setObjectName(QString::fromUtf8("CStatusWindow"));
CStatusWindow->resize(400, 300);

retranslateUi(CStatusWindow);

QMetaObject::connectSlotsByName(CStatusWindow);
} // setupUi

void retranslateUi(QWidget *CStatusWindow)
{
CStatusWindow->setWindowTitle(QCoreApplication::translate("CStatusWindow", "Form", nullptr));
} // retranslateUi

};

namespace Ui {
class CStatusWindow: public Ui_CStatusWindow {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_STATUSWINDOW_H

Laden…
Abbrechen
Speichern