136 Commits

Author SHA1 Message Date
61aac1e364 continua la costruzione per la chiamata dei thread 2020-03-25 12:06:55 +01:00
f65fa21400 rinominata variabile 2020-03-25 12:03:55 +01:00
4351e10984 correzione dello splitter per nuovo file di configurazione 2020-03-25 11:08:16 +01:00
62f9dbe598 aggiunta costruzione della configurazione per splitter 2020-03-25 11:05:38 +01:00
b596f37cc3 cosa in prepareazione a integrazione dello splitter 2020-03-23 16:28:25 +01:00
6013eaab38 splitter e' diventato un QThread per mandare messaggi all'esterno 2020-03-23 11:29:40 +01:00
f0c012bbf0 riempimento e salvataggio interfaccia selezione uscita 2020-03-23 10:39:54 +01:00
dbeb119c65 corretto il buggone di titolo avanzate
non salvava le impostazioni perche' inizializzavo due volte la finestra
delle avanzate e venivano prese le impostazioni solo di quella che non
veniva usata
2020-03-23 10:09:14 +01:00
09f86c94be permane il bug per cui dalle avanzate titolo non posso salvare
potrebbe essere il fatto che passa la classe di configurazione non per
puntatore ma per copia
2020-03-08 16:10:43 +01:00
3f3875faf3 sistemazioni interfaccia, compilazione lista dei file automatica 2020-03-08 15:36:27 +01:00
40b9978933 fixate cose 2020-03-08 15:25:23 +01:00
0047f766bf self.conf chiamato senza usare c=self.conf, provoca comportamenti strani 2020-03-08 15:13:45 +01:00
986e50afdb ricompilato interfacce di nuovo 2020-03-08 15:01:51 +01:00
2b646befac ricompilata interfaccia outfile 2020-03-08 14:57:23 +01:00
18959b4087 rimosse vecchie configurazioni 2020-03-08 14:33:11 +01:00
6e6f91f50a aggiornato gitignore
esclude i file di configurazione di test dai commit
2020-03-08 14:24:53 +01:00
9ec74ff4bd cose cambiate in interfaccia e main 2020-03-08 14:23:33 +01:00
37cf77c160 eliminati file configurazone di test 2020-03-08 14:23:15 +01:00
9c04b5d943 spostati i file di configurazione, da fare la gestione finestra di
output per scegliere la lingua
2020-03-03 17:41:28 +01:00
25747c0a94 risolto bug preset, forse 2020-03-03 17:29:44 +01:00
6c03df4f67 quasi fixato bug del salvapreset 2020-03-03 17:22:58 +01:00
05b794029c cose con i file di configurazione, non funziona bene la scrittura 2020-03-02 19:17:47 +01:00
dcb5f631b0 funzzioni fill interface per ricaricare quando si apre un preset 2020-03-02 18:56:53 +01:00
e8c7accf55 interfacce aggiornate e ricompilate 2020-02-29 18:12:01 +01:00
41ee3c3094 riempi interfaccia da file parte seconda 2020-02-29 18:11:45 +01:00
67aaf33db0 caricameto defaults da inerfaccia, parte prima 2020-02-29 16:35:02 +01:00
95594674f3 rimoddo asdf 2020-01-25 19:10:45 +01:00
869a308bad modifica ai check delle impostazioni avanzate e ricompilata interfaccia 2020-01-25 19:02:53 +01:00
89de6124c8 fottiti 2020-01-25 18:17:52 +01:00
566853c61a aggiornato gitignore del codice 2020-01-25 18:17:43 +01:00
50543f4076 aggiornato gitignore 2020-01-25 18:16:47 +01:00
93d598fef8 fixato crash su modifica cartella destinazione 2020-01-25 18:13:23 +01:00
1d37cdd89d ricompilate interfacce con modifiche varie 2020-01-25 18:13:04 +01:00
f002301707 cambiati import librerie slugify 2020-01-25 17:42:45 +01:00
c14f2dc4c9 collegamenti tra finestra titolo e avanzate titolo, cambiamenti nel file
configurazione per memorizzare le scelete delle finestre in modo
semplice
2020-01-02 17:42:11 +01:00
19615367ea ricompilate interafcce 2020-01-02 16:45:47 +01:00
104f8e4f7b aggiunti prefisso e suffisso alle avanzatenome 2020-01-02 16:45:28 +01:00
066ca83b7f aggiunto try per parametro non valido 2020-01-02 15:50:10 +01:00
ada142809c i file del commit prima.. (FACEPALM) 2019-12-18 22:14:06 +01:00
5aed922e77 salvataggio della configurazione corrente sullo stesso o un altro file 2019-12-18 22:13:41 +01:00
22f1e8c967 rinominati file configurazione 2019-12-18 21:29:48 +01:00
00cb8059cb modificato file di configurazione, aggiunto uno separato per le parole
chiave della lingua specifica
2019-12-18 21:27:48 +01:00
c6b5d7d8a5 riempie i nomi cartelle sorgente e destinazione 2019-12-18 21:19:20 +01:00
21f869ccd0 modifica selezione cartelle selezione sorgente e destinazione 2019-12-18 21:14:44 +01:00
b2d3a03da8 lettura e settaggio dei parametri in modo ricorsivo funzionante 2019-12-18 21:00:15 +01:00
705a6ce85c seguono modifiche al main per test parametri nuovo file di
configurazione
2019-12-18 19:43:46 +01:00
12501c4edc ripensamenti sui file di configurazione, il logger legge un file
separato
2019-12-18 19:35:24 +01:00
fd9434868f modificato il getParam ma non mi viene in mente un modo furbo per fare
il set, ricorsivita' sul dizionario?
2019-12-16 22:47:59 +01:00
fdfb7bf377 ricompilate interfacce (si,ancora) 2019-12-16 21:40:37 +01:00
43f8568904 risistemato caricamento interfacce (si, ancora) 2019-12-16 21:40:21 +01:00
8564bdd723 ricompilazione interfacce con alcuni cambiamenti ai nomi delle finestre 2019-12-16 21:28:15 +01:00
3396ee0a07 sistemato il caricamento delle interfacce che servono 2019-12-16 21:27:49 +01:00
da6c84e87f prima integrazione nuove interfacce, non ho capito bene come collegarle
a quella principale
2019-12-15 22:27:47 +01:00
d25bf776ac mannaggia quanti file nuovi da compilare!
comunque compilato tutto a posto, il pasticcio dei commit si e' risolto
2019-12-14 17:20:49 +01:00
e0ce388da9 aggiornato .gitignore 2019-12-14 17:20:40 +01:00
5bb6a12a06 ahahahahahah (Niccolò). Creato pagina opzioni avanzate per rendere
predefiniti tutti i valori. Bisognerebbe sistemare il layout, ma non
siamo molto buoni.
2019-12-14 15:56:29 +01:00
c3704ad6bd Versione 3 della finestra avanzate titolo (Giulia). Rimettiamo a te la
scelta.
2019-12-14 15:55:27 +01:00
cc16f00a80 Versione 2 della finestra avanzate titolo (Niccolò). 2019-12-14 15:54:50 +01:00
d724fcbfd6 Modificato nomi bottoni ok annulla. 2019-12-14 15:54:24 +01:00
07777f2a11 Nominato i bottoni rad. 2019-12-14 15:54:04 +01:00
7becc034ef Aggiunto opzione selezione lingua articoli. 2019-12-14 15:53:36 +01:00
158a427658 Tolto opzione di rendere predefinite le cartelle (messe da un'altra
parte, vedi sotto). Aggiunto tendina opzioni avanzate.
2019-12-14 15:53:10 +01:00
a85c99b51e sistemato gitignore secondo tue indicazioni telefoniche. 2019-12-14 15:52:14 +01:00
608886d706 primo commit dal merge, aggiunti i file di progetto altrimenti si
dimentica gli import
2019-12-13 16:34:00 +01:00
d2096976fb merge con il brance lib-devel 2019-12-13 16:20:34 +01:00
a6aeee5d89 modifiche interfaccia + dialoghi per selezione cartelle, pronto per il
merge
2019-12-13 16:11:38 +01:00
cf173843d2 prima del checkout di gui-devel 2019-12-13 15:31:15 +01:00
d8808ddf5b funziona la pulizia automatica delle cartelle prima del salvataggio,
credo sia pronto per il merge
2019-12-13 15:27:31 +01:00
b5ee32e924 primo svuotamento automatico della cartella di uscita 2019-12-13 14:39:45 +01:00
b69463a303 eliminato log inutile del numero file 2019-12-13 14:28:12 +01:00
82710a73a3 corretta numerazione sequenziale dei file 2019-12-13 14:26:07 +01:00
275101eed3 Il lancio di tanti thread concorrenti fa casino, il numero incrementale
del file non viene resettato per ogni thread (inspiegabile)
2019-12-13 12:34:02 +01:00
3826c7d2d1 Ritorno a threading, il multiprocess vero per ora e' troppo difficile da
gestire dal punto di vista del logging
2019-12-13 12:18:46 +01:00
377251b59f aggiornato gitignore 2019-12-05 23:10:00 +01:00
428946e39a altre modifiche per uso del modulo multiprocessing, rimane il problema
del logging dai thread
2019-12-05 23:09:08 +01:00
c5662c8397 uso di multiprocessing al posto d threading per una concorrenza vera
serve? da decidere
2019-12-05 22:55:49 +01:00
e3307d8db5 correzioni procedura salvataggio file e cartelle 2019-12-05 20:26:50 +01:00
01dd92e4da file separati vengono isolati in cartelle differenti 2019-12-02 20:12:00 +01:00
8628c3dbfb risolti i problemi di parsign su file di esempio semplificato 2019-12-01 18:29:09 +01:00
d69a3d0628 semplificato file di test 2019-12-01 17:54:49 +01:00
b6000c49fd Il test lancia correttamente i moduli ma siamo tornati agli errori di
parsing, debug necessario...
2019-12-01 17:44:14 +01:00
851dcf103d correzioni alla librerie 2019-12-01 17:17:48 +01:00
4118ed82c3 aggiornate le configurazioni con path file di test 2019-12-01 17:17:37 +01:00
435bb144ab aggiunti file di test 2019-12-01 17:17:16 +01:00
ccc06bc5f1 corretto un typo stupidissimo che mi ha fatto perdere un sacco di tempo 2019-12-01 17:04:55 +01:00
ef91f8d26a iniziano test librerie, modifiche file configurazione di test 2019-12-01 16:50:15 +01:00
fe75d99736 Inizia il testing della libreria 2019-12-01 16:21:23 +01:00
86e5dcc135 correzioni finestra titolo 2019-12-01 16:10:26 +01:00
6f96797190 genera interfaccia e passa le tab con avanti e indietro 2019-12-01 16:10:09 +01:00
a0ff77ff33 costruisce interfaccia + correzione nomi bottoni 2019-12-01 15:41:30 +01:00
9425262e7a Prima generazione interfaccia con i moduli 2019-12-01 15:30:38 +01:00
94f289a6e2 non risolve gli import di interfaccia 2019-12-01 14:52:43 +01:00
1880d5bb7e modifiche a nomi e layout interfacce + ricompilazione 2019-12-01 14:43:40 +01:00
8eedd2ac4b ricompilato con nuova destinazione 2019-12-01 14:28:01 +01:00
9a7477a23e eliminate interfacce compilate con vecchia dir 2019-12-01 14:25:39 +01:00
08240b63d8 modifiche allo script compilazione interfacce piu' cose gia' compilate
per i primi test
2019-11-24 18:45:59 +01:00
2a0695f78c Aggiunto tool per la compilazione delle interfacce 2019-11-24 18:32:59 +01:00
59f3e2d6b3 modifiche finestra main, ogni pagina diventa una tab 2019-11-24 16:47:15 +01:00
a4e550797c Aggiunta cartella TestFiles 2019-11-24 16:13:58 +01:00
Giulia
da0eb61e2d inizio pagina avanzate per ordine nome file 2019-11-24 15:11:35 +01:00
6e83ce559d Cambiamenti che non mi ricordo, mi hanno distratto nel mentre 2019-11-24 12:48:30 +01:00
04a32c7bd1 weaponizzate le funzioni di salva file singolo e body 2019-11-24 12:32:23 +01:00
e6fb04a9e7 modifiche generiche 2019-11-23 15:11:44 +01:00
b53fb27a60 Porting del codice dal programma originale a libsplit
Poco Refactoring, il codice e' pressoche invariato e andra' sistemato in
futuro.
Predisposizione al multi-threading
2019-11-11 22:49:59 +01:00
ff9f85ad0b Merge branch 'gui-devel' of https://git.etss.it/12Parsec/bananaSPLIT.git into gui-devel 2019-11-10 20:03:45 +01:00
fd8ea3edc9 Corretto import interfaccia 2019-11-10 20:03:37 +01:00
0bbb1947ee Prima scrittura libSPLIT 2019-11-10 20:01:47 +01:00
7ca177f29a aggiunta getFiles 2019-11-10 19:50:48 +01:00
1e8867182f Finalizzato caricamento file
aggiunta proprieta' in use per definire il file in uso attualmente,
modificabile a runtime per ogni file ingress
2019-11-10 19:49:23 +01:00
9e62197eba sistemato dettagli opzioni 2019-11-10 14:16:24 +01:00
e3934c06d1 sistemato layout 2019-11-10 14:10:20 +01:00
a798f29b73 Prima versione gestore configurazioni 2019-11-10 12:49:49 +01:00
Giulia
16b4b307a9 Aggiunto scelta separatore parti nome file 2019-11-06 13:45:17 +01:00
Giulia
4d63c83278 Sistemato caratteri e diciture 2019-11-06 13:28:23 +01:00
Giulia
23bcc4de1e Finestra impostazione titolo 2019-11-03 10:41:21 +01:00
Giulia
207651bd5d Spostato pulsante avanti e opzioni 2019-11-03 10:01:39 +01:00
59c41cc3ba Inizio scrittura confloader
integrazione del fancylogger e settings nel file di test
2019-11-02 19:53:27 +01:00
07810fe569 Aggiunto nuovo main per lancio gui e versione compilata interfacce 2019-11-02 19:29:10 +01:00
f9551b34aa Aggiunto file spec a gitignore 2019-11-02 19:07:58 +01:00
13b2d72be1 Modifiche interfaccia
Il tipo della finestra principale rimane mainWindow ma e' divisa in due
widget, quello sopra cambia a seconda del contesto mentre in quello
sotto rimane il log delle attivita' in corso
tutte le nuove viste che si vogliono aggiungere dovranno essere del tipo
QWidget
2019-11-02 19:05:49 +01:00
18566dda2c modifiche varie 2019-11-02 18:43:20 +01:00
59f11a2f8b Elimina i caratteri speciali dal file logger 2019-11-02 14:32:44 +01:00
dfcbef7ae4 FancyLogger funzionante e file di configurazione test 2019-11-02 14:29:48 +01:00
0502d77c14 Primo commit della libsplit 2019-11-02 13:54:08 +01:00
b7af353ab8 finestra selezione output limiti misure 2019-10-30 22:06:52 +01:00
3f5ef6c103 finestra selezione output base 2019-10-30 22:02:06 +01:00
21e7a29c33 Merge branch 'gui-devel' of https://git.etss.it/12Parsec/bananaSPLIT.git into gui-devel 2019-10-30 22:00:30 +01:00
d01afc2ab3 finestra selezione output base 2019-10-30 21:58:52 +01:00
9537530a34 Merge branch 'gui-devel' of https://git.etss.it/12Parsec/bananaSPLIT.git into gui-devel 2019-10-30 21:49:48 +01:00
c401518db5 eliminato confGiulia 2019-10-30 21:49:32 +01:00
22413c3fb2 Main window aggiornata 2019-10-30 21:42:42 +01:00
bfbd0e8c79 ritorno alla normalità 2019-10-30 21:27:38 +01:00
af880df5b3 test commit niccolo 2019-10-30 21:23:27 +01:00
Giulia
3624d21e90 Cartella con file configurazione su PC Giulia 2019-10-30 18:27:35 +01:00
Giulia
3c1aad543e Main window. Prima versione completa. 2019-10-30 18:23:39 +01:00
Giulia
c5ee729683 Sistemato pulsanti cartelle 2019-10-30 18:09:41 +01:00
39 changed files with 94428 additions and 197 deletions

10
.gitignore vendored
View File

@@ -1,4 +1,8 @@
/.DS_Store
/.project
/.pydevproject
.project
.pydevproject
.DS_Store
.settings
bananaSPLIT.exe.spec
bananaSPLIT/build
bananaSPLIT/conf/_*.json
TestFiles

17
.project Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>bananaSPLIT</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>

10
.pydevproject Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?><pydev_project>
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
<path>/${PROJECT_DIR_NAME}</path>
<path>/${PROJECT_DIR_NAME}/bananaSPLIT/libbananasplit</path>
<path>/${PROJECT_DIR_NAME}/bananaSPLIT/UserInterface/compiledUI</path>
</pydev_pathproperty>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 3.7</pydev_property>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">python37</pydev_property>
</pydev_project>

1
.settings/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/org.eclipse.core.resources.prefs

View File

@@ -0,0 +1,7 @@
eclipse.preferences.version=1
encoding//bananaSPLIT/UserInterface/compiledUI/avanzatetitolo.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/avanzatetitolo3.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/mainwindow.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/opzioniavanzate.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/selezout.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/titolow.py=utf-8

View File

@@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

13811
TestFiles/GUARDIAN 1993.txt Normal file

File diff suppressed because it is too large Load Diff

22792
TestFiles/NYT 1990.txt Normal file

File diff suppressed because it is too large Load Diff

23149
TestFiles/NYT 1994.txt Normal file

File diff suppressed because it is too large Load Diff

30024
TestFiles/NYT 1997.txt Normal file

File diff suppressed because it is too large Load Diff

1
TestFiles/README Normal file
View File

@@ -0,0 +1 @@
Qui si mettono i file di test per la versione GUI di bananaSPLIT

View File

@@ -1 +1,4 @@
*.py[ocd]
/bananaSPLIT.exe.spec
.project
.pyproject

View File

@@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>advtitolo</class>
<widget class="QWidget" name="advtitolo">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>480</width>
<height>400</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="2">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="lbl_titoloschermata">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Modifica ordine elementi nome file</string>
</property>
</widget>
</item>
<item row="3" column="1">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QSpinBox" name="spn_data">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>3</number>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spn_titolo">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>3</number>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spn_numero">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>3</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0" colspan="2">
<widget class="QLabel" name="lbl_istruzioni">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Indica la posizione dell'elemento nel nome del file</string>
</property>
</widget>
</item>
<item row="3" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="lbl_data">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Data</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_titolo">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Titolo</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_numero">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Numero</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QPushButton" name="btn_avanti">
<property name="text">
<string>Avanti</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QPushButton" name="btn_indietro">
<property name="text">
<string>Indietro</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,190 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>advtitolo2</class>
<widget class="QWidget" name="advtitolo2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>495</width>
<height>456</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="lbl_titoloschermata">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Modifica ordine elementi nome file</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="3">
<widget class="QLabel" name="lbl_istruzioni">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Scegli l'ordine degli elementi nel nome file</string>
</property>
</widget>
</item>
<item row="3" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QRadioButton" name="rad_dtn">
<property name="text">
<string>Data, Titolo, Numero </string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_dnt">
<property name="text">
<string>Data, Numero, Titolo</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_tdn">
<property name="text">
<string>Titolo, Data, Numero</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_tnd">
<property name="text">
<string>Titolo, Numero, Data</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_ndt">
<property name="text">
<string>Numero, Data, Titolo</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_ntd">
<property name="text">
<string>Numero, Titolo, Data</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_dt">
<property name="text">
<string>Data, Titolo</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_dn">
<property name="text">
<string>Data, Numero</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_td">
<property name="text">
<string>Titolo, Data</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_tn">
<property name="text">
<string>Titolo, Numero</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_nd">
<property name="text">
<string>Numero, Data</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_nt">
<property name="text">
<string>Numero, Titolo</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="btn_annulla">
<property name="text">
<string>Annulla</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_ok">
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,253 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>advtitolo3</class>
<widget class="QWidget" name="advtitolo3">
<property name="windowModality">
<enum>Qt::WindowModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>480</width>
<height>452</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Avanzate Titolo</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="6" column="0">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="lbl_terzo">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>(Terzo Elemento)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_numeroterzo">
<property name="text">
<string>Numero</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_dataterzo">
<property name="text">
<string>Data</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_titoloterzo">
<property name="text">
<string>Titolo</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="10" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lbl_secondo">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Secondo Elemento</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_numerosecondo">
<property name="text">
<string>Numero</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_datasecondo">
<property name="text">
<string>Data</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_titolosecondo">
<property name="text">
<string>Titolo</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0" colspan="2">
<widget class="QLabel" name="lbl_istruzioni">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Seleziona l'ordine degli elementi nel nomi file</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Prefisso Titolo</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QLineEdit" name="txt_prefisso">
<property name="inputMask">
<string/>
</property>
<property name="text">
<string/>
</property>
<property name="maxLength">
<number>10</number>
</property>
</widget>
</item>
<item row="3" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="lbl_primo">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Primo elemento</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_numeroprimo">
<property name="text">
<string>Numero</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_dataprimo">
<property name="text">
<string>Data</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rad_titoloprimo">
<property name="text">
<string>Titolo</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="7" column="0" colspan="2">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="lbl_titoloschermata">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Modifica ordine elementi nome file</string>
</property>
</widget>
</item>
<item row="10" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="btn_annulla">
<property name="text">
<string>Annulla</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_OK">
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="9" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Suffisso Titolo</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QLineEdit" name="txt_suffisso">
<property name="maxLength">
<number>10</number>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,18 @@
'''
Created on 24 nov 2019
@author: Emanuele Trabattoni
'''
import os, glob, subprocess
if __name__ == '__main__':
print(os.getcwd())
uifiles = glob.glob("*.ui")
for f in uifiles:
command = r"pyuic5.exe "+f
print(command)
rv = subprocess.run(command, capture_output=True)
fp = open(r".\compiledUI\\"+f.replace("ui","py"), 'w')
fp.write(str(rv.stdout, encoding='utf-8').replace('\r', ''))
fp.close()
pass

View File

@@ -0,0 +1,104 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'avanzatetitolo.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_advtitolo(object):
def setupUi(self, advtitolo):
advtitolo.setObjectName("advtitolo")
advtitolo.resize(480, 400)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(advtitolo.sizePolicy().hasHeightForWidth())
advtitolo.setSizePolicy(sizePolicy)
self.gridLayout = QtWidgets.QGridLayout(advtitolo)
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 3, 2, 1, 1)
self.lbl_titoloschermata = QtWidgets.QLabel(advtitolo)
font = QtGui.QFont()
font.setPointSize(11)
self.lbl_titoloschermata.setFont(font)
self.lbl_titoloschermata.setObjectName("lbl_titoloschermata")
self.gridLayout.addWidget(self.lbl_titoloschermata, 0, 0, 1, 2)
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.spn_data = QtWidgets.QSpinBox(advtitolo)
self.spn_data.setMinimum(0)
self.spn_data.setMaximum(3)
self.spn_data.setObjectName("spn_data")
self.verticalLayout.addWidget(self.spn_data)
self.spn_titolo = QtWidgets.QSpinBox(advtitolo)
self.spn_titolo.setMinimum(0)
self.spn_titolo.setMaximum(3)
self.spn_titolo.setObjectName("spn_titolo")
self.verticalLayout.addWidget(self.spn_titolo)
self.spn_numero = QtWidgets.QSpinBox(advtitolo)
self.spn_numero.setMinimum(0)
self.spn_numero.setMaximum(3)
self.spn_numero.setObjectName("spn_numero")
self.verticalLayout.addWidget(self.spn_numero)
self.gridLayout.addLayout(self.verticalLayout, 3, 1, 1, 1)
self.lbl_istruzioni = QtWidgets.QLabel(advtitolo)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_istruzioni.setFont(font)
self.lbl_istruzioni.setObjectName("lbl_istruzioni")
self.gridLayout.addWidget(self.lbl_istruzioni, 2, 0, 1, 2)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.lbl_data = QtWidgets.QLabel(advtitolo)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_data.setFont(font)
self.lbl_data.setObjectName("lbl_data")
self.verticalLayout_2.addWidget(self.lbl_data)
self.lbl_titolo = QtWidgets.QLabel(advtitolo)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_titolo.setFont(font)
self.lbl_titolo.setObjectName("lbl_titolo")
self.verticalLayout_2.addWidget(self.lbl_titolo)
self.lbl_numero = QtWidgets.QLabel(advtitolo)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_numero.setFont(font)
self.lbl_numero.setObjectName("lbl_numero")
self.verticalLayout_2.addWidget(self.lbl_numero)
self.gridLayout.addLayout(self.verticalLayout_2, 3, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem1, 4, 0, 1, 1)
self.line = QtWidgets.QFrame(advtitolo)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 1, 0, 1, 2)
self.btn_avanti = QtWidgets.QPushButton(advtitolo)
self.btn_avanti.setObjectName("btn_avanti")
self.gridLayout.addWidget(self.btn_avanti, 5, 2, 1, 1)
self.btn_indietro = QtWidgets.QPushButton(advtitolo)
self.btn_indietro.setObjectName("btn_indietro")
self.gridLayout.addWidget(self.btn_indietro, 5, 1, 1, 1)
self.retranslateUi(advtitolo)
QtCore.QMetaObject.connectSlotsByName(advtitolo)
def retranslateUi(self, advtitolo):
_translate = QtCore.QCoreApplication.translate
advtitolo.setWindowTitle(_translate("advtitolo", "Form"))
self.lbl_titoloschermata.setText(_translate("advtitolo", "Modifica ordine elementi nome file"))
self.lbl_istruzioni.setText(_translate("advtitolo", "Indica la posizione dell\'elemento nel nome del file"))
self.lbl_data.setText(_translate("advtitolo", "Data"))
self.lbl_titolo.setText(_translate("advtitolo", "Titolo"))
self.lbl_numero.setText(_translate("advtitolo", "Numero"))
self.btn_avanti.setText(_translate("advtitolo", "Avanti"))
self.btn_indietro.setText(_translate("advtitolo", "Indietro"))

View File

@@ -0,0 +1,116 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'avanzatetitolo2.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_advtitolo2(object):
def setupUi(self, advtitolo2):
advtitolo2.setObjectName("advtitolo2")
advtitolo2.resize(495, 456)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(advtitolo2.sizePolicy().hasHeightForWidth())
advtitolo2.setSizePolicy(sizePolicy)
self.gridLayout = QtWidgets.QGridLayout(advtitolo2)
self.gridLayout.setObjectName("gridLayout")
self.line = QtWidgets.QFrame(advtitolo2)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 1, 0, 1, 2)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem, 4, 0, 1, 1)
self.lbl_titoloschermata = QtWidgets.QLabel(advtitolo2)
font = QtGui.QFont()
font.setPointSize(11)
self.lbl_titoloschermata.setFont(font)
self.lbl_titoloschermata.setObjectName("lbl_titoloschermata")
self.gridLayout.addWidget(self.lbl_titoloschermata, 0, 0, 1, 2)
self.lbl_istruzioni = QtWidgets.QLabel(advtitolo2)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_istruzioni.setFont(font)
self.lbl_istruzioni.setObjectName("lbl_istruzioni")
self.gridLayout.addWidget(self.lbl_istruzioni, 2, 0, 1, 3)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.rad_dtn = QtWidgets.QRadioButton(advtitolo2)
self.rad_dtn.setObjectName("rad_dtn")
self.verticalLayout_2.addWidget(self.rad_dtn)
self.rad_dnt = QtWidgets.QRadioButton(advtitolo2)
self.rad_dnt.setObjectName("rad_dnt")
self.verticalLayout_2.addWidget(self.rad_dnt)
self.rad_tdn = QtWidgets.QRadioButton(advtitolo2)
self.rad_tdn.setObjectName("rad_tdn")
self.verticalLayout_2.addWidget(self.rad_tdn)
self.rad_tnd = QtWidgets.QRadioButton(advtitolo2)
self.rad_tnd.setObjectName("rad_tnd")
self.verticalLayout_2.addWidget(self.rad_tnd)
self.rad_ndt = QtWidgets.QRadioButton(advtitolo2)
self.rad_ndt.setObjectName("rad_ndt")
self.verticalLayout_2.addWidget(self.rad_ndt)
self.rad_ntd = QtWidgets.QRadioButton(advtitolo2)
self.rad_ntd.setObjectName("rad_ntd")
self.verticalLayout_2.addWidget(self.rad_ntd)
self.rad_dt = QtWidgets.QRadioButton(advtitolo2)
self.rad_dt.setObjectName("rad_dt")
self.verticalLayout_2.addWidget(self.rad_dt)
self.rad_dn = QtWidgets.QRadioButton(advtitolo2)
self.rad_dn.setObjectName("rad_dn")
self.verticalLayout_2.addWidget(self.rad_dn)
self.rad_td = QtWidgets.QRadioButton(advtitolo2)
self.rad_td.setObjectName("rad_td")
self.verticalLayout_2.addWidget(self.rad_td)
self.rad_tn = QtWidgets.QRadioButton(advtitolo2)
self.rad_tn.setObjectName("rad_tn")
self.verticalLayout_2.addWidget(self.rad_tn)
self.rad_nd = QtWidgets.QRadioButton(advtitolo2)
self.rad_nd.setObjectName("rad_nd")
self.verticalLayout_2.addWidget(self.rad_nd)
self.rad_nt = QtWidgets.QRadioButton(advtitolo2)
self.rad_nt.setObjectName("rad_nt")
self.verticalLayout_2.addWidget(self.rad_nt)
self.gridLayout.addLayout(self.verticalLayout_2, 3, 0, 1, 1)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.btn_annulla = QtWidgets.QPushButton(advtitolo2)
self.btn_annulla.setObjectName("btn_annulla")
self.horizontalLayout.addWidget(self.btn_annulla)
self.btn_ok = QtWidgets.QPushButton(advtitolo2)
self.btn_ok.setObjectName("btn_ok")
self.horizontalLayout.addWidget(self.btn_ok)
self.gridLayout.addLayout(self.horizontalLayout, 5, 2, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem1, 5, 0, 1, 1)
self.retranslateUi(advtitolo2)
QtCore.QMetaObject.connectSlotsByName(advtitolo2)
def retranslateUi(self, advtitolo2):
_translate = QtCore.QCoreApplication.translate
advtitolo2.setWindowTitle(_translate("advtitolo2", "Form"))
self.lbl_titoloschermata.setText(_translate("advtitolo2", "Modifica ordine elementi nome file"))
self.lbl_istruzioni.setText(_translate("advtitolo2", "Scegli l\'ordine degli elementi nel nome file"))
self.rad_dtn.setText(_translate("advtitolo2", "Data, Titolo, Numero "))
self.rad_dnt.setText(_translate("advtitolo2", "Data, Numero, Titolo"))
self.rad_tdn.setText(_translate("advtitolo2", "Titolo, Data, Numero"))
self.rad_tnd.setText(_translate("advtitolo2", "Titolo, Numero, Data"))
self.rad_ndt.setText(_translate("advtitolo2", "Numero, Data, Titolo"))
self.rad_ntd.setText(_translate("advtitolo2", "Numero, Titolo, Data"))
self.rad_dt.setText(_translate("advtitolo2", "Data, Titolo"))
self.rad_dn.setText(_translate("advtitolo2", "Data, Numero"))
self.rad_td.setText(_translate("advtitolo2", "Titolo, Data"))
self.rad_tn.setText(_translate("advtitolo2", "Titolo, Numero"))
self.rad_nd.setText(_translate("advtitolo2", "Numero, Data"))
self.rad_nt.setText(_translate("advtitolo2", "Numero, Titolo"))
self.btn_annulla.setText(_translate("advtitolo2", "Annulla"))
self.btn_ok.setText(_translate("advtitolo2", "OK"))

View File

@@ -0,0 +1,156 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'avanzatetitolo3.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_advtitolo3(object):
def setupUi(self, advtitolo3):
advtitolo3.setObjectName("advtitolo3")
advtitolo3.setWindowModality(QtCore.Qt.WindowModal)
advtitolo3.resize(480, 452)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(advtitolo3.sizePolicy().hasHeightForWidth())
advtitolo3.setSizePolicy(sizePolicy)
self.gridLayout = QtWidgets.QGridLayout(advtitolo3)
self.gridLayout.setObjectName("gridLayout")
self.line = QtWidgets.QFrame(advtitolo3)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 1, 0, 1, 2)
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.lbl_terzo = QtWidgets.QLabel(advtitolo3)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_terzo.setFont(font)
self.lbl_terzo.setObjectName("lbl_terzo")
self.verticalLayout_3.addWidget(self.lbl_terzo)
self.rad_numeroterzo = QtWidgets.QCheckBox(advtitolo3)
self.rad_numeroterzo.setObjectName("rad_numeroterzo")
self.verticalLayout_3.addWidget(self.rad_numeroterzo)
self.rad_dataterzo = QtWidgets.QCheckBox(advtitolo3)
self.rad_dataterzo.setObjectName("rad_dataterzo")
self.verticalLayout_3.addWidget(self.rad_dataterzo)
self.rad_titoloterzo = QtWidgets.QCheckBox(advtitolo3)
self.rad_titoloterzo.setChecked(True)
self.rad_titoloterzo.setObjectName("rad_titoloterzo")
self.verticalLayout_3.addWidget(self.rad_titoloterzo)
self.gridLayout.addLayout(self.verticalLayout_3, 6, 0, 1, 1)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 10, 0, 1, 1)
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.lbl_secondo = QtWidgets.QLabel(advtitolo3)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_secondo.setFont(font)
self.lbl_secondo.setObjectName("lbl_secondo")
self.verticalLayout.addWidget(self.lbl_secondo)
self.rad_numerosecondo = QtWidgets.QCheckBox(advtitolo3)
self.rad_numerosecondo.setObjectName("rad_numerosecondo")
self.verticalLayout.addWidget(self.rad_numerosecondo)
self.rad_datasecondo = QtWidgets.QCheckBox(advtitolo3)
self.rad_datasecondo.setChecked(True)
self.rad_datasecondo.setObjectName("rad_datasecondo")
self.verticalLayout.addWidget(self.rad_datasecondo)
self.rad_titolosecondo = QtWidgets.QCheckBox(advtitolo3)
self.rad_titolosecondo.setObjectName("rad_titolosecondo")
self.verticalLayout.addWidget(self.rad_titolosecondo)
self.gridLayout.addLayout(self.verticalLayout, 5, 0, 1, 1)
self.lbl_istruzioni = QtWidgets.QLabel(advtitolo3)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_istruzioni.setFont(font)
self.lbl_istruzioni.setObjectName("lbl_istruzioni")
self.gridLayout.addWidget(self.lbl_istruzioni, 2, 0, 1, 2)
self.label = QtWidgets.QLabel(advtitolo3)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 8, 0, 1, 1)
self.txt_prefisso = QtWidgets.QLineEdit(advtitolo3)
self.txt_prefisso.setInputMask("")
self.txt_prefisso.setText("")
self.txt_prefisso.setMaxLength(10)
self.txt_prefisso.setObjectName("txt_prefisso")
self.gridLayout.addWidget(self.txt_prefisso, 8, 1, 1, 1)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.lbl_primo = QtWidgets.QLabel(advtitolo3)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_primo.setFont(font)
self.lbl_primo.setObjectName("lbl_primo")
self.verticalLayout_2.addWidget(self.lbl_primo)
self.rad_numeroprimo = QtWidgets.QCheckBox(advtitolo3)
self.rad_numeroprimo.setChecked(False)
self.rad_numeroprimo.setObjectName("rad_numeroprimo")
self.verticalLayout_2.addWidget(self.rad_numeroprimo)
self.rad_dataprimo = QtWidgets.QCheckBox(advtitolo3)
self.rad_dataprimo.setObjectName("rad_dataprimo")
self.verticalLayout_2.addWidget(self.rad_dataprimo)
self.rad_titoloprimo = QtWidgets.QCheckBox(advtitolo3)
self.rad_titoloprimo.setObjectName("rad_titoloprimo")
self.verticalLayout_2.addWidget(self.rad_titoloprimo)
self.gridLayout.addLayout(self.verticalLayout_2, 3, 0, 1, 1)
self.line_2 = QtWidgets.QFrame(advtitolo3)
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.gridLayout.addWidget(self.line_2, 7, 0, 1, 2)
self.lbl_titoloschermata = QtWidgets.QLabel(advtitolo3)
font = QtGui.QFont()
font.setPointSize(11)
self.lbl_titoloschermata.setFont(font)
self.lbl_titoloschermata.setObjectName("lbl_titoloschermata")
self.gridLayout.addWidget(self.lbl_titoloschermata, 0, 0, 1, 2)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.btn_annulla = QtWidgets.QPushButton(advtitolo3)
self.btn_annulla.setObjectName("btn_annulla")
self.horizontalLayout.addWidget(self.btn_annulla)
self.btn_OK = QtWidgets.QPushButton(advtitolo3)
self.btn_OK.setObjectName("btn_OK")
self.horizontalLayout.addWidget(self.btn_OK)
self.gridLayout.addLayout(self.horizontalLayout, 10, 1, 1, 1)
self.label_2 = QtWidgets.QLabel(advtitolo3)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 9, 0, 1, 1)
self.txt_suffisso = QtWidgets.QLineEdit(advtitolo3)
self.txt_suffisso.setMaxLength(10)
self.txt_suffisso.setObjectName("txt_suffisso")
self.gridLayout.addWidget(self.txt_suffisso, 9, 1, 1, 1)
self.retranslateUi(advtitolo3)
QtCore.QMetaObject.connectSlotsByName(advtitolo3)
def retranslateUi(self, advtitolo3):
_translate = QtCore.QCoreApplication.translate
advtitolo3.setWindowTitle(_translate("advtitolo3", "Avanzate Titolo"))
self.lbl_terzo.setText(_translate("advtitolo3", "(Terzo Elemento)"))
self.rad_numeroterzo.setText(_translate("advtitolo3", "Numero"))
self.rad_dataterzo.setText(_translate("advtitolo3", "Data"))
self.rad_titoloterzo.setText(_translate("advtitolo3", "Titolo"))
self.lbl_secondo.setText(_translate("advtitolo3", "Secondo Elemento"))
self.rad_numerosecondo.setText(_translate("advtitolo3", "Numero"))
self.rad_datasecondo.setText(_translate("advtitolo3", "Data"))
self.rad_titolosecondo.setText(_translate("advtitolo3", "Titolo"))
self.lbl_istruzioni.setText(_translate("advtitolo3", "Seleziona l\'ordine degli elementi nel nomi file"))
self.label.setText(_translate("advtitolo3", "Prefisso Titolo"))
self.lbl_primo.setText(_translate("advtitolo3", "Primo elemento"))
self.rad_numeroprimo.setText(_translate("advtitolo3", "Numero"))
self.rad_dataprimo.setText(_translate("advtitolo3", "Data"))
self.rad_titoloprimo.setText(_translate("advtitolo3", "Titolo"))
self.lbl_titoloschermata.setText(_translate("advtitolo3", "Modifica ordine elementi nome file"))
self.btn_annulla.setText(_translate("advtitolo3", "Annulla"))
self.btn_OK.setText(_translate("advtitolo3", "OK"))
self.label_2.setText(_translate("advtitolo3", "Suffisso Titolo"))

View File

@@ -0,0 +1,191 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_mainwin(object):
def setupUi(self, mainwin):
mainwin.setObjectName("mainwin")
mainwin.setEnabled(True)
mainwin.resize(678, 517)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(mainwin.sizePolicy().hasHeightForWidth())
mainwin.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("MS Shell Dlg 2")
font.setPointSize(10)
mainwin.setFont(font)
mainwin.setFocusPolicy(QtCore.Qt.NoFocus)
mainwin.setAnimated(False)
self.centralwidget = QtWidgets.QWidget(mainwin)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.wgt_main = QtWidgets.QTabWidget(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.wgt_main.sizePolicy().hasHeightForWidth())
self.wgt_main.setSizePolicy(sizePolicy)
self.wgt_main.setObjectName("wgt_main")
self.wgt_mainPage1 = QtWidgets.QWidget()
self.wgt_mainPage1.setObjectName("wgt_mainPage1")
self.gridLayout = QtWidgets.QGridLayout(self.wgt_mainPage1)
self.gridLayout.setObjectName("gridLayout")
self.btn_avanti = QtWidgets.QPushButton(self.wgt_mainPage1)
self.btn_avanti.setMinimumSize(QtCore.QSize(79, 0))
self.btn_avanti.setMaximumSize(QtCore.QSize(80, 16777215))
self.btn_avanti.setObjectName("btn_avanti")
self.gridLayout.addWidget(self.btn_avanti, 4, 3, 1, 1)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.btn_cartellasorg = QtWidgets.QPushButton(self.wgt_mainPage1)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.btn_cartellasorg.sizePolicy().hasHeightForWidth())
self.btn_cartellasorg.setSizePolicy(sizePolicy)
self.btn_cartellasorg.setObjectName("btn_cartellasorg")
self.verticalLayout_2.addWidget(self.btn_cartellasorg)
self.btn_cartelladest = QtWidgets.QPushButton(self.wgt_mainPage1)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.btn_cartelladest.sizePolicy().hasHeightForWidth())
self.btn_cartelladest.setSizePolicy(sizePolicy)
self.btn_cartelladest.setObjectName("btn_cartelladest")
self.verticalLayout_2.addWidget(self.btn_cartelladest)
self.gridLayout.addLayout(self.verticalLayout_2, 0, 1, 1, 1)
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.lbl_sorg = QtWidgets.QLabel(self.wgt_mainPage1)
self.lbl_sorg.setObjectName("lbl_sorg")
self.verticalLayout_4.addWidget(self.lbl_sorg)
self.lbl_dest = QtWidgets.QLabel(self.wgt_mainPage1)
self.lbl_dest.setObjectName("lbl_dest")
self.verticalLayout_4.addWidget(self.lbl_dest)
self.gridLayout.addLayout(self.verticalLayout_4, 0, 2, 1, 2)
self.lst_files = QtWidgets.QListWidget(self.wgt_mainPage1)
self.lst_files.setObjectName("lst_files")
self.gridLayout.addWidget(self.lst_files, 3, 0, 1, 4)
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.lbl_cartellasorg = QtWidgets.QLabel(self.wgt_mainPage1)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_cartellasorg.setFont(font)
self.lbl_cartellasorg.setObjectName("lbl_cartellasorg")
self.verticalLayout.addWidget(self.lbl_cartellasorg)
self.lbl_cartelladest = QtWidgets.QLabel(self.wgt_mainPage1)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_cartelladest.setFont(font)
self.lbl_cartelladest.setObjectName("lbl_cartelladest")
self.verticalLayout.addWidget(self.lbl_cartelladest)
self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1)
self.line = QtWidgets.QFrame(self.wgt_mainPage1)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 1, 0, 1, 4)
self.label = QtWidgets.QLabel(self.wgt_mainPage1)
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 2, 0, 1, 4)
self.wgt_main.addTab(self.wgt_mainPage1, "")
self.verticalLayout_3.addWidget(self.wgt_main)
self.line_2 = QtWidgets.QFrame(self.centralwidget)
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.verticalLayout_3.addWidget(self.line_2)
self.wgt_sub = QtWidgets.QWidget(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.wgt_sub.sizePolicy().hasHeightForWidth())
self.wgt_sub.setSizePolicy(sizePolicy)
self.wgt_sub.setMinimumSize(QtCore.QSize(0, 75))
self.wgt_sub.setMaximumSize(QtCore.QSize(16777215, 500))
self.wgt_sub.setObjectName("wgt_sub")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.wgt_sub)
self.horizontalLayout.setObjectName("horizontalLayout")
self.lbl_log = QtWidgets.QLabel(self.wgt_sub)
self.lbl_log.setObjectName("lbl_log")
self.horizontalLayout.addWidget(self.lbl_log)
self.verticalLayout_3.addWidget(self.wgt_sub)
mainwin.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(mainwin)
self.menubar.setGeometry(QtCore.QRect(0, 0, 678, 21))
self.menubar.setNativeMenuBar(True)
self.menubar.setObjectName("menubar")
self.bar_file = QtWidgets.QMenu(self.menubar)
self.bar_file.setObjectName("bar_file")
self.menuOpzioni = QtWidgets.QMenu(self.menubar)
self.menuOpzioni.setObjectName("menuOpzioni")
mainwin.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(mainwin)
self.statusbar.setObjectName("statusbar")
mainwin.setStatusBar(self.statusbar)
self.toolBar = QtWidgets.QToolBar(mainwin)
self.toolBar.setMovable(False)
self.toolBar.setFloatable(False)
self.toolBar.setObjectName("toolBar")
mainwin.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
self.actionCarica_Preset = QtWidgets.QAction(mainwin)
self.actionCarica_Preset.setObjectName("actionCarica_Preset")
self.actionSalva_Preset = QtWidgets.QAction(mainwin)
self.actionSalva_Preset.setObjectName("actionSalva_Preset")
self.actionOpzioni = QtWidgets.QAction(mainwin)
self.actionOpzioni.setObjectName("actionOpzioni")
self.actionLingua = QtWidgets.QAction(mainwin)
self.actionLingua.setObjectName("actionLingua")
self.actionAvanzate = QtWidgets.QAction(mainwin)
self.actionAvanzate.setObjectName("actionAvanzate")
self.bar_file.addAction(self.actionCarica_Preset)
self.bar_file.addAction(self.actionSalva_Preset)
self.menuOpzioni.addAction(self.actionLingua)
self.menuOpzioni.addAction(self.actionAvanzate)
self.menubar.addAction(self.bar_file.menuAction())
self.menubar.addAction(self.menuOpzioni.menuAction())
self.retranslateUi(mainwin)
QtCore.QMetaObject.connectSlotsByName(mainwin)
def retranslateUi(self, mainwin):
_translate = QtCore.QCoreApplication.translate
mainwin.setWindowTitle(_translate("mainwin", "bananaSPLIT"))
self.btn_avanti.setText(_translate("mainwin", "Avanti"))
self.btn_cartellasorg.setText(_translate("mainwin", "..."))
self.btn_cartelladest.setText(_translate("mainwin", "..."))
self.lbl_sorg.setText(_translate("mainwin", "..."))
self.lbl_dest.setText(_translate("mainwin", "..."))
self.lbl_cartellasorg.setText(_translate("mainwin", "Cartella sorgente"))
self.lbl_cartelladest.setText(_translate("mainwin", "Cartella destinazione"))
self.label.setText(_translate("mainwin", "File disponibili per la conversione"))
self.wgt_main.setTabText(self.wgt_main.indexOf(self.wgt_mainPage1), _translate("mainwin", "SelezionaFile"))
self.lbl_log.setText(_translate("mainwin", "qui ci va il log ma devo pensare a come farlo in modo non eccessivamente stupido"))
self.bar_file.setTitle(_translate("mainwin", "File"))
self.menuOpzioni.setTitle(_translate("mainwin", "Opzioni"))
self.toolBar.setWindowTitle(_translate("mainwin", "toolBar"))
self.actionCarica_Preset.setText(_translate("mainwin", "Carica Preset"))
self.actionSalva_Preset.setText(_translate("mainwin", "Salva Preset"))
self.actionOpzioni.setText(_translate("mainwin", "Opzioni"))
self.actionLingua.setText(_translate("mainwin", "Lingua Interfaccia"))
self.actionAvanzate.setText(_translate("mainwin", "Avanzate"))

View File

@@ -0,0 +1,260 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'opzioniavanzate.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_advoption(object):
def setupUi(self, advoption):
advoption.setObjectName("advoption")
advoption.resize(598, 602)
self.gridLayout = QtWidgets.QGridLayout(advoption)
self.gridLayout.setObjectName("gridLayout")
self.tab_opzionipredef = QtWidgets.QTabWidget(advoption)
font = QtGui.QFont()
font.setPointSize(10)
self.tab_opzionipredef.setFont(font)
self.tab_opzionipredef.setObjectName("tab_opzionipredef")
self.tab_cartelle = QtWidgets.QWidget()
self.tab_cartelle.setObjectName("tab_cartelle")
self.gridLayout_5 = QtWidgets.QGridLayout(self.tab_cartelle)
self.gridLayout_5.setObjectName("gridLayout_5")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.lbl_sorgente = QtWidgets.QLabel(self.tab_cartelle)
self.lbl_sorgente.setObjectName("lbl_sorgente")
self.verticalLayout.addWidget(self.lbl_sorgente)
self.lbl_destinazione = QtWidgets.QLabel(self.tab_cartelle)
self.lbl_destinazione.setObjectName("lbl_destinazione")
self.verticalLayout.addWidget(self.lbl_destinazione)
self.gridLayout_5.addLayout(self.verticalLayout, 0, 0, 1, 1)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.tll_sorgente = QtWidgets.QToolButton(self.tab_cartelle)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tll_sorgente.sizePolicy().hasHeightForWidth())
self.tll_sorgente.setSizePolicy(sizePolicy)
self.tll_sorgente.setMinimumSize(QtCore.QSize(200, 0))
self.tll_sorgente.setObjectName("tll_sorgente")
self.verticalLayout_2.addWidget(self.tll_sorgente)
self.tll_destinazione = QtWidgets.QToolButton(self.tab_cartelle)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tll_destinazione.sizePolicy().hasHeightForWidth())
self.tll_destinazione.setSizePolicy(sizePolicy)
self.tll_destinazione.setMinimumSize(QtCore.QSize(200, 0))
self.tll_destinazione.setObjectName("tll_destinazione")
self.verticalLayout_2.addWidget(self.tll_destinazione)
self.gridLayout_5.addLayout(self.verticalLayout_2, 0, 1, 1, 1)
spacerItem = QtWidgets.QSpacerItem(172, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_5.addItem(spacerItem, 0, 2, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 362, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_5.addItem(spacerItem1, 1, 0, 1, 1)
self.tab_opzionipredef.addTab(self.tab_cartelle, "")
self.tab_lingua = QtWidgets.QWidget()
self.tab_lingua.setObjectName("tab_lingua")
self.gridLayout_4 = QtWidgets.QGridLayout(self.tab_lingua)
self.gridLayout_4.setObjectName("gridLayout_4")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.lbl_lingua = QtWidgets.QLabel(self.tab_lingua)
self.lbl_lingua.setObjectName("lbl_lingua")
self.horizontalLayout.addWidget(self.lbl_lingua)
self.cmb_lingua = QtWidgets.QComboBox(self.tab_lingua)
self.cmb_lingua.setMinimumSize(QtCore.QSize(200, 0))
self.cmb_lingua.setObjectName("cmb_lingua")
self.cmb_lingua.addItem("")
self.cmb_lingua.addItem("")
self.cmb_lingua.addItem("")
self.horizontalLayout.addWidget(self.cmb_lingua)
self.gridLayout_4.addLayout(self.horizontalLayout, 0, 0, 1, 1)
spacerItem2 = QtWidgets.QSpacerItem(155, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_4.addItem(spacerItem2, 0, 1, 1, 1)
spacerItem3 = QtWidgets.QSpacerItem(20, 396, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_4.addItem(spacerItem3, 1, 0, 1, 1)
self.tab_opzionipredef.addTab(self.tab_lingua, "")
self.tab_output = QtWidgets.QWidget()
self.tab_output.setObjectName("tab_output")
self.gridLayout_3 = QtWidgets.QGridLayout(self.tab_output)
self.gridLayout_3.setObjectName("gridLayout_3")
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout_3.addItem(spacerItem4, 0, 1, 1, 1)
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.lbl_output = QtWidgets.QLabel(self.tab_output)
self.lbl_output.setObjectName("lbl_output")
self.verticalLayout_3.addWidget(self.lbl_output)
self.rad_mainbodyEfile = QtWidgets.QRadioButton(self.tab_output)
self.rad_mainbodyEfile.setObjectName("rad_mainbodyEfile")
self.verticalLayout_3.addWidget(self.rad_mainbodyEfile)
self.rad_file = QtWidgets.QRadioButton(self.tab_output)
self.rad_file.setObjectName("rad_file")
self.verticalLayout_3.addWidget(self.rad_file)
self.rad_bodyfile = QtWidgets.QRadioButton(self.tab_output)
self.rad_bodyfile.setObjectName("rad_bodyfile")
self.verticalLayout_3.addWidget(self.rad_bodyfile)
self.gridLayout_3.addLayout(self.verticalLayout_3, 0, 0, 1, 1)
spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_3.addItem(spacerItem5, 1, 0, 1, 1)
self.tab_opzionipredef.addTab(self.tab_output, "")
self.tab_nome = QtWidgets.QWidget()
self.tab_nome.setObjectName("tab_nome")
self.gridLayout_2 = QtWidgets.QGridLayout(self.tab_nome)
self.gridLayout_2.setObjectName("gridLayout_2")
self.lbl_titolo = QtWidgets.QLabel(self.tab_nome)
self.lbl_titolo.setObjectName("lbl_titolo")
self.gridLayout_2.addWidget(self.lbl_titolo, 0, 0, 1, 2)
self.chk_data = QtWidgets.QCheckBox(self.tab_nome)
self.chk_data.setObjectName("chk_data")
self.gridLayout_2.addWidget(self.chk_data, 1, 0, 1, 2)
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.rad_datajpn = QtWidgets.QRadioButton(self.tab_nome)
self.rad_datajpn.setObjectName("rad_datajpn")
self.verticalLayout_4.addWidget(self.rad_datajpn)
self.rad_dataita = QtWidgets.QRadioButton(self.tab_nome)
self.rad_dataita.setObjectName("rad_dataita")
self.verticalLayout_4.addWidget(self.rad_dataita)
self.rad_datausa = QtWidgets.QRadioButton(self.tab_nome)
self.rad_datausa.setObjectName("rad_datausa")
self.verticalLayout_4.addWidget(self.rad_datausa)
self.gridLayout_2.addLayout(self.verticalLayout_4, 2, 0, 1, 2)
self.chk_titolo = QtWidgets.QCheckBox(self.tab_nome)
self.chk_titolo.setObjectName("chk_titolo")
self.gridLayout_2.addWidget(self.chk_titolo, 3, 0, 1, 2)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.lbl_ncaratt = QtWidgets.QLabel(self.tab_nome)
self.lbl_ncaratt.setObjectName("lbl_ncaratt")
self.horizontalLayout_2.addWidget(self.lbl_ncaratt)
self.spn_ncaratt = QtWidgets.QSpinBox(self.tab_nome)
self.spn_ncaratt.setMinimum(1)
self.spn_ncaratt.setObjectName("spn_ncaratt")
self.horizontalLayout_2.addWidget(self.spn_ncaratt)
self.gridLayout_2.addLayout(self.horizontalLayout_2, 4, 0, 1, 2)
self.chk_docnum = QtWidgets.QCheckBox(self.tab_nome)
self.chk_docnum.setChecked(True)
self.chk_docnum.setObjectName("chk_docnum")
self.gridLayout_2.addWidget(self.chk_docnum, 5, 0, 1, 2)
self.line_2 = QtWidgets.QFrame(self.tab_nome)
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.gridLayout_2.addWidget(self.line_2, 6, 0, 1, 2)
self.lbl_separatore = QtWidgets.QLabel(self.tab_nome)
self.lbl_separatore.setObjectName("lbl_separatore")
self.gridLayout_2.addWidget(self.lbl_separatore, 7, 0, 1, 2)
self.line_3 = QtWidgets.QFrame(self.tab_nome)
self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_3.setObjectName("line_3")
self.gridLayout_2.addWidget(self.line_3, 8, 0, 1, 1)
self.formLayout = QtWidgets.QFormLayout()
self.formLayout.setObjectName("formLayout")
self.rad_spazio = QtWidgets.QRadioButton(self.tab_nome)
self.rad_spazio.setObjectName("rad_spazio")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.rad_spazio)
self.rad_tratt = QtWidgets.QRadioButton(self.tab_nome)
self.rad_tratt.setObjectName("rad_tratt")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.rad_tratt)
self.rad_virgola = QtWidgets.QRadioButton(self.tab_nome)
self.rad_virgola.setObjectName("rad_virgola")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.rad_virgola)
self.rad_tratbass = QtWidgets.QRadioButton(self.tab_nome)
self.rad_tratbass.setObjectName("rad_tratbass")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.rad_tratbass)
self.rad_piu = QtWidgets.QRadioButton(self.tab_nome)
self.rad_piu.setObjectName("rad_piu")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.rad_piu)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.rad_altro = QtWidgets.QRadioButton(self.tab_nome)
self.rad_altro.setObjectName("rad_altro")
self.horizontalLayout_3.addWidget(self.rad_altro)
self.lin_altro = QtWidgets.QLineEdit(self.tab_nome)
self.lin_altro.setObjectName("lin_altro")
self.horizontalLayout_3.addWidget(self.lin_altro)
self.formLayout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3)
self.gridLayout_2.addLayout(self.formLayout, 8, 1, 1, 1)
self.label_9 = QtWidgets.QLabel(self.tab_nome)
self.label_9.setObjectName("label_9")
self.gridLayout_2.addWidget(self.label_9, 9, 1, 1, 1)
self.label_10 = QtWidgets.QLabel(self.tab_nome)
self.label_10.setObjectName("label_10")
self.gridLayout_2.addWidget(self.label_10, 10, 1, 1, 1)
self.tab_opzionipredef.addTab(self.tab_nome, "")
self.gridLayout.addWidget(self.tab_opzionipredef, 2, 0, 1, 1)
self.label = QtWidgets.QLabel(advoption)
font = QtGui.QFont()
font.setPointSize(11)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.line = QtWidgets.QFrame(advoption)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 1, 0, 1, 1)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.btn_annulla = QtWidgets.QPushButton(advoption)
self.btn_annulla.setObjectName("btn_annulla")
self.horizontalLayout_4.addWidget(self.btn_annulla)
self.btn_ok = QtWidgets.QPushButton(advoption)
self.btn_ok.setObjectName("btn_ok")
self.horizontalLayout_4.addWidget(self.btn_ok)
self.gridLayout.addLayout(self.horizontalLayout_4, 3, 0, 1, 1)
self.retranslateUi(advoption)
self.tab_opzionipredef.setCurrentIndex(3)
QtCore.QMetaObject.connectSlotsByName(advoption)
def retranslateUi(self, advoption):
_translate = QtCore.QCoreApplication.translate
advoption.setWindowTitle(_translate("advoption", "Form"))
self.lbl_sorgente.setText(_translate("advoption", "Cartella sorgente"))
self.lbl_destinazione.setText(_translate("advoption", "Cartella destinazione"))
self.tll_sorgente.setText(_translate("advoption", "..."))
self.tll_destinazione.setText(_translate("advoption", "..."))
self.tab_opzionipredef.setTabText(self.tab_opzionipredef.indexOf(self.tab_cartelle), _translate("advoption", "Cartelle"))
self.lbl_lingua.setText(_translate("advoption", "Seleziona lingua articoli"))
self.cmb_lingua.setItemText(0, _translate("advoption", "Inglese"))
self.cmb_lingua.setItemText(1, _translate("advoption", "Italiano"))
self.cmb_lingua.setItemText(2, _translate("advoption", "Russo"))
self.tab_opzionipredef.setTabText(self.tab_opzionipredef.indexOf(self.tab_lingua), _translate("advoption", "Lingua"))
self.lbl_output.setText(_translate("advoption", "Seleziona tipo file"))
self.rad_mainbodyEfile.setText(_translate("advoption", "File Singoli + Bodyfile"))
self.rad_file.setText(_translate("advoption", "File Singoli"))
self.rad_bodyfile.setText(_translate("advoption", "Bodyfile"))
self.tab_opzionipredef.setTabText(self.tab_opzionipredef.indexOf(self.tab_output), _translate("advoption", "Output"))
self.lbl_titolo.setText(_translate("advoption", "Seleziona elementi titolo"))
self.chk_data.setText(_translate("advoption", "Data"))
self.rad_datajpn.setText(_translate("advoption", "YYYY MM DD, es. 2000 12 31"))
self.rad_dataita.setText(_translate("advoption", "DD MM YYYY, es. 31 12 2000"))
self.rad_datausa.setText(_translate("advoption", "MM DD YYYY, es. 12 31 2000"))
self.chk_titolo.setText(_translate("advoption", "Titolo"))
self.lbl_ncaratt.setText(_translate("advoption", "Numero caratteri"))
self.chk_docnum.setText(_translate("advoption", "Numero Documento"))
self.lbl_separatore.setText(_translate("advoption", "Separatore"))
self.rad_spazio.setText(_translate("advoption", "Spazio"))
self.rad_tratt.setText(_translate("advoption", "-"))
self.rad_virgola.setText(_translate("advoption", ","))
self.rad_tratbass.setText(_translate("advoption", "_"))
self.rad_piu.setText(_translate("advoption", "+"))
self.rad_altro.setText(_translate("advoption", "Altro:"))
self.label_9.setText(_translate("advoption", "Qui dobbiamo mettere le avanzate del titolo. "))
self.label_10.setText(_translate("advoption", "Bisogna decidere quale formato ci piace di piu."))
self.tab_opzionipredef.setTabText(self.tab_opzionipredef.indexOf(self.tab_nome), _translate("advoption", "Nome file"))
self.label.setText(_translate("advoption", "Seleziona le opzioni predefinite"))
self.btn_annulla.setText(_translate("advoption", "Annulla"))
self.btn_ok.setText(_translate("advoption", "OK"))

View File

@@ -0,0 +1,165 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'selezout.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_selezout(object):
def setupUi(self, selezout):
selezout.setObjectName("selezout")
selezout.resize(577, 400)
self.gridLayout_2 = QtWidgets.QGridLayout(selezout)
self.gridLayout_2.setObjectName("gridLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
self.verticalLayout.setObjectName("verticalLayout")
self.rad_mainbodyEFile = QtWidgets.QRadioButton(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.rad_mainbodyEFile.setFont(font)
self.rad_mainbodyEFile.setChecked(True)
self.rad_mainbodyEFile.setObjectName("rad_mainbodyEFile")
self.verticalLayout.addWidget(self.rad_mainbodyEFile)
self.rad_mainbody = QtWidgets.QRadioButton(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.rad_mainbody.setFont(font)
self.rad_mainbody.setObjectName("rad_mainbody")
self.verticalLayout.addWidget(self.rad_mainbody)
self.rad_file = QtWidgets.QRadioButton(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.rad_file.setFont(font)
self.rad_file.setObjectName("rad_file")
self.verticalLayout.addWidget(self.rad_file)
self.gridLayout_2.addLayout(self.verticalLayout, 5, 0, 1, 1)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem, 9, 1, 1, 1)
self.line_2 = QtWidgets.QFrame(selezout)
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.gridLayout_2.addWidget(self.line_2, 1, 0, 1, 4)
self.lbl_lingua = QtWidgets.QLabel(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_lingua.setFont(font)
self.lbl_lingua.setObjectName("lbl_lingua")
self.gridLayout_2.addWidget(self.lbl_lingua, 0, 0, 1, 1)
self.line = QtWidgets.QFrame(selezout)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.gridLayout_2.addWidget(self.line, 4, 0, 1, 4)
self.line_3 = QtWidgets.QFrame(selezout)
self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_3.setObjectName("line_3")
self.gridLayout_2.addWidget(self.line_3, 7, 0, 1, 4)
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.chk_removeDuplicates = QtWidgets.QCheckBox(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.chk_removeDuplicates.setFont(font)
self.chk_removeDuplicates.setObjectName("chk_removeDuplicates")
self.gridLayout.addWidget(self.chk_removeDuplicates, 0, 0, 1, 1)
self.chk_includeTitle = QtWidgets.QCheckBox(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.chk_includeTitle.setFont(font)
self.chk_includeTitle.setObjectName("chk_includeTitle")
self.gridLayout.addWidget(self.chk_includeTitle, 0, 1, 1, 1)
self.chk_removeBreakWord = QtWidgets.QCheckBox(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.chk_removeBreakWord.setFont(font)
self.chk_removeBreakWord.setObjectName("chk_removeBreakWord")
self.gridLayout.addWidget(self.chk_removeBreakWord, 1, 0, 1, 1)
self.chk_cleaDestFolder = QtWidgets.QCheckBox(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.chk_cleaDestFolder.setFont(font)
self.chk_cleaDestFolder.setObjectName("chk_cleaDestFolder")
self.gridLayout.addWidget(self.chk_cleaDestFolder, 1, 1, 1, 1)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(selezout)
font = QtGui.QFont()
font.setPointSize(10)
self.label.setFont(font)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
self.lin_specialChars = QtWidgets.QLineEdit(selezout)
self.lin_specialChars.setObjectName("lin_specialChars")
self.horizontalLayout.addWidget(self.lin_specialChars)
self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 2)
self.gridLayout_2.addLayout(self.gridLayout, 8, 0, 1, 4)
self.btn_split = QtWidgets.QPushButton(selezout)
self.btn_split.setMinimumSize(QtCore.QSize(75, 0))
self.btn_split.setMaximumSize(QtCore.QSize(75, 16777215))
font = QtGui.QFont()
font.setPointSize(10)
self.btn_split.setFont(font)
self.btn_split.setObjectName("btn_split")
self.gridLayout_2.addWidget(self.btn_split, 9, 3, 1, 1)
self.lbl_indicazioni = QtWidgets.QLabel(selezout)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_indicazioni.sizePolicy().hasHeightForWidth())
self.lbl_indicazioni.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_indicazioni.setFont(font)
self.lbl_indicazioni.setObjectName("lbl_indicazioni")
self.gridLayout_2.addWidget(self.lbl_indicazioni, 3, 0, 1, 1)
self.lbl_indicazioni_2 = QtWidgets.QLabel(selezout)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_indicazioni_2.sizePolicy().hasHeightForWidth())
self.lbl_indicazioni_2.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_indicazioni_2.setFont(font)
self.lbl_indicazioni_2.setObjectName("lbl_indicazioni_2")
self.gridLayout_2.addWidget(self.lbl_indicazioni_2, 6, 0, 1, 1)
self.btn_indietro = QtWidgets.QPushButton(selezout)
self.btn_indietro.setMinimumSize(QtCore.QSize(75, 0))
self.btn_indietro.setMaximumSize(QtCore.QSize(75, 16777215))
font = QtGui.QFont()
font.setPointSize(10)
self.btn_indietro.setFont(font)
self.btn_indietro.setObjectName("btn_indietro")
self.gridLayout_2.addWidget(self.btn_indietro, 9, 2, 1, 1)
self.cmb_lingua = QtWidgets.QComboBox(selezout)
self.cmb_lingua.setObjectName("cmb_lingua")
self.gridLayout_2.addWidget(self.cmb_lingua, 2, 0, 1, 1)
self.retranslateUi(selezout)
QtCore.QMetaObject.connectSlotsByName(selezout)
def retranslateUi(self, selezout):
_translate = QtCore.QCoreApplication.translate
selezout.setWindowTitle(_translate("selezout", "Seleziona Linuga e Output"))
self.rad_mainbodyEFile.setText(_translate("selezout", "Bodyfile + File singoli"))
self.rad_mainbody.setText(_translate("selezout", "Bodyfile"))
self.rad_file.setText(_translate("selezout", "File singoli"))
self.lbl_lingua.setText(_translate("selezout", "Seleziona la lingua degli articoli"))
self.chk_removeDuplicates.setText(_translate("selezout", "Tenta rimozione duplicati"))
self.chk_includeTitle.setText(_translate("selezout", "Includi titolo all\'interno del file"))
self.chk_removeBreakWord.setText(_translate("selezout", "Rimuovi interruzioni parola (a capo)"))
self.chk_cleaDestFolder.setText(_translate("selezout", "Svuota cartella di destinazione"))
self.label.setText(_translate("selezout", "Caratteri speciali da rimuovere "))
self.btn_split.setText(_translate("selezout", "SPLITTA!"))
self.lbl_indicazioni.setText(_translate("selezout", "Seleziona il tipo di file da salvare"))
self.lbl_indicazioni_2.setText(_translate("selezout", "Altre Opzioni "))
self.btn_indietro.setText(_translate("selezout", "Indietro"))

View File

@@ -0,0 +1,191 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'titolow.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_titolo(object):
def setupUi(self, titolo):
titolo.setObjectName("titolo")
titolo.resize(480, 443)
self.gridLayout = QtWidgets.QGridLayout(titolo)
self.gridLayout.setObjectName("gridLayout")
self.label = QtWidgets.QLabel(titolo)
font = QtGui.QFont()
font.setPointSize(10)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 8, 0, 1, 2)
self.lyt_date = QtWidgets.QVBoxLayout()
self.lyt_date.setObjectName("lyt_date")
self.rad_datajpn = QtWidgets.QRadioButton(titolo)
self.rad_datajpn.setChecked(True)
self.rad_datajpn.setObjectName("rad_datajpn")
self.lyt_date.addWidget(self.rad_datajpn)
self.rad_dataita = QtWidgets.QRadioButton(titolo)
self.rad_dataita.setObjectName("rad_dataita")
self.lyt_date.addWidget(self.rad_dataita)
self.rad_datausa = QtWidgets.QRadioButton(titolo)
self.rad_datausa.setObjectName("rad_datausa")
self.lyt_date.addWidget(self.rad_datausa)
self.gridLayout.addLayout(self.lyt_date, 3, 0, 1, 3)
self.chk_titolo = QtWidgets.QCheckBox(titolo)
font = QtGui.QFont()
font.setPointSize(10)
self.chk_titolo.setFont(font)
self.chk_titolo.setObjectName("chk_titolo")
self.gridLayout.addWidget(self.chk_titolo, 4, 0, 1, 2)
self.line_3 = QtWidgets.QFrame(titolo)
self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_3.setObjectName("line_3")
self.gridLayout.addWidget(self.line_3, 7, 0, 1, 3)
self.lyt_nchars = QtWidgets.QHBoxLayout()
self.lyt_nchars.setObjectName("lyt_nchars")
self.lbl_ncarat = QtWidgets.QLabel(titolo)
self.lbl_ncarat.setObjectName("lbl_ncarat")
self.lyt_nchars.addWidget(self.lbl_ncarat)
self.spn_ncarat = QtWidgets.QSpinBox(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.spn_ncarat.sizePolicy().hasHeightForWidth())
self.spn_ncarat.setSizePolicy(sizePolicy)
self.spn_ncarat.setMinimumSize(QtCore.QSize(50, 0))
self.spn_ncarat.setWrapping(True)
self.spn_ncarat.setButtonSymbols(QtWidgets.QAbstractSpinBox.UpDownArrows)
self.spn_ncarat.setMinimum(3)
self.spn_ncarat.setMaximum(32)
self.spn_ncarat.setObjectName("spn_ncarat")
self.lyt_nchars.addWidget(self.spn_ncarat)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.lyt_nchars.addItem(spacerItem)
self.gridLayout.addLayout(self.lyt_nchars, 5, 0, 1, 3)
self.line_2 = QtWidgets.QFrame(titolo)
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.gridLayout.addWidget(self.line_2, 13, 0, 1, 3)
self.lbl_impotit = QtWidgets.QLabel(titolo)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_impotit.setFont(font)
self.lbl_impotit.setObjectName("lbl_impotit")
self.gridLayout.addWidget(self.lbl_impotit, 0, 0, 1, 3)
self.line = QtWidgets.QFrame(titolo)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 1, 0, 1, 3)
self.chk_docnum = QtWidgets.QCheckBox(titolo)
font = QtGui.QFont()
font.setPointSize(10)
self.chk_docnum.setFont(font)
self.chk_docnum.setChecked(True)
self.chk_docnum.setObjectName("chk_docnum")
self.gridLayout.addWidget(self.chk_docnum, 6, 0, 1, 2)
self.chk_data = QtWidgets.QCheckBox(titolo)
font = QtGui.QFont()
font.setPointSize(10)
self.chk_data.setFont(font)
self.chk_data.setObjectName("chk_data")
self.gridLayout.addWidget(self.chk_data, 2, 0, 1, 1)
self.lyt_buttons = QtWidgets.QHBoxLayout()
self.lyt_buttons.setObjectName("lyt_buttons")
self.btn_avanzate = QtWidgets.QPushButton(titolo)
font = QtGui.QFont()
font.setPointSize(10)
self.btn_avanzate.setFont(font)
self.btn_avanzate.setObjectName("btn_avanzate")
self.lyt_buttons.addWidget(self.btn_avanzate)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.lyt_buttons.addItem(spacerItem1)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.btn_indietro = QtWidgets.QPushButton(titolo)
font = QtGui.QFont()
font.setPointSize(10)
self.btn_indietro.setFont(font)
self.btn_indietro.setObjectName("btn_indietro")
self.horizontalLayout_2.addWidget(self.btn_indietro)
self.btn_avanti = QtWidgets.QPushButton(titolo)
font = QtGui.QFont()
font.setPointSize(10)
self.btn_avanti.setFont(font)
self.btn_avanti.setObjectName("btn_avanti")
self.horizontalLayout_2.addWidget(self.btn_avanti)
self.lyt_buttons.addLayout(self.horizontalLayout_2)
self.gridLayout.addLayout(self.lyt_buttons, 14, 0, 1, 3)
self.lyt_sep = QtWidgets.QFormLayout()
self.lyt_sep.setObjectName("lyt_sep")
self.rad_spazio = QtWidgets.QRadioButton(titolo)
self.rad_spazio.setObjectName("rad_spazio")
self.btngrp_divisore = QtWidgets.QButtonGroup(titolo)
self.btngrp_divisore.setObjectName("btngrp_divisore")
self.btngrp_divisore.addButton(self.rad_spazio)
self.lyt_sep.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.rad_spazio)
self.rad_virgola = QtWidgets.QRadioButton(titolo)
self.rad_virgola.setObjectName("rad_virgola")
self.btngrp_divisore.addButton(self.rad_virgola)
self.lyt_sep.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.rad_virgola)
self.rad_piu = QtWidgets.QRadioButton(titolo)
self.rad_piu.setObjectName("rad_piu")
self.btngrp_divisore.addButton(self.rad_piu)
self.lyt_sep.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.rad_piu)
self.rad_tratt = QtWidgets.QRadioButton(titolo)
font = QtGui.QFont()
font.setPointSize(8)
self.rad_tratt.setFont(font)
self.rad_tratt.setObjectName("rad_tratt")
self.btngrp_divisore.addButton(self.rad_tratt)
self.lyt_sep.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.rad_tratt)
self.rad_trattbass = QtWidgets.QRadioButton(titolo)
self.rad_trattbass.setObjectName("rad_trattbass")
self.btngrp_divisore.addButton(self.rad_trattbass)
self.lyt_sep.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.rad_trattbass)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.rad_altro = QtWidgets.QRadioButton(titolo)
self.rad_altro.setObjectName("rad_altro")
self.btngrp_divisore.addButton(self.rad_altro)
self.horizontalLayout_4.addWidget(self.rad_altro)
self.lin_altro = QtWidgets.QLineEdit(titolo)
self.lin_altro.setText("")
self.lin_altro.setObjectName("lin_altro")
self.horizontalLayout_4.addWidget(self.lin_altro)
self.lyt_sep.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_4)
self.gridLayout.addLayout(self.lyt_sep, 9, 0, 1, 1)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem2, 9, 1, 1, 1)
self.retranslateUi(titolo)
QtCore.QMetaObject.connectSlotsByName(titolo)
def retranslateUi(self, titolo):
_translate = QtCore.QCoreApplication.translate
titolo.setWindowTitle(_translate("titolo", "Nomi file di Uscita"))
self.label.setText(_translate("titolo", "Separatore"))
self.rad_datajpn.setText(_translate("titolo", "YYYY MM DD, es. 2000 12 31 (jpn)"))
self.rad_dataita.setText(_translate("titolo", "DD MM YYYY, es. 31 12 2000 (ita)"))
self.rad_datausa.setText(_translate("titolo", "MM DD YYYY, es. 12 31 2000 (us)"))
self.chk_titolo.setText(_translate("titolo", "Titolo articolo"))
self.lbl_ncarat.setText(_translate("titolo", "Numero di caratteri"))
self.lbl_impotit.setText(_translate("titolo", "Impostazioni nome file"))
self.chk_docnum.setText(_translate("titolo", "Numero documento"))
self.chk_data.setText(_translate("titolo", "Data"))
self.btn_avanzate.setText(_translate("titolo", "Avanzate"))
self.btn_indietro.setText(_translate("titolo", "Indietro"))
self.btn_avanti.setText(_translate("titolo", "Avanti"))
self.rad_spazio.setText(_translate("titolo", "Spazio"))
self.rad_virgola.setText(_translate("titolo", ","))
self.rad_piu.setText(_translate("titolo", "+"))
self.rad_tratt.setText(_translate("titolo", "-"))
self.rad_trattbass.setText(_translate("titolo", "_"))
self.rad_altro.setText(_translate("titolo", "Altro:"))

View File

@@ -1,29 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>win_main</class>
<widget class="QMainWindow" name="win_main">
<class>mainwin</class>
<widget class="QMainWindow" name="mainwin">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>697</width>
<height>454</height>
<width>678</width>
<height>517</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>MS Shell Dlg 2</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="windowTitle">
<string>MainWindow</string>
<string>bananaSPLIT</string>
</property>
<property name="animated">
<bool>false</bool>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>161</width>
<height>31</height>
</rect>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QTabWidget" name="wgt_main">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<widget class="QWidget" name="wgt_mainPage1">
<attribute name="title">
<string>SelezionaFile</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="4" column="3">
<widget class="QPushButton" name="btn_avanti">
<property name="minimumSize">
<size>
<width>79</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Avanti</string>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<item>
<widget class="QPushButton" name="btn_cartellasorg">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_cartelladest">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="2" colspan="2">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="lbl_sorg">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_dest">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0" colspan="4">
<widget class="QListWidget" name="lst_files"/>
</item>
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lbl_cartellasorg">
<property name="font">
@@ -36,25 +136,6 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_cartellasorg">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget_2">
<property name="geometry">
<rect>
<x>20</x>
<y>60</y>
<width>161</width>
<height>31</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="lbl_cartelladest">
<property name="font">
@@ -67,27 +148,148 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_cartelladest">
</layout>
</item>
<item row="1" column="0" colspan="4">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="2" column="0" colspan="4">
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string/>
<string>File disponibili per la conversione</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="wgt_sub" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>75</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>500</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="lbl_log">
<property name="text">
<string>qui ci va il log ma devo pensare a come farlo in modo non eccessivamente stupido</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>697</width>
<width>678</width>
<height>21</height>
</rect>
</property>
<property name="nativeMenuBar">
<bool>true</bool>
</property>
<widget class="QMenu" name="bar_file">
<property name="title">
<string>File</string>
</property>
<addaction name="actionCarica_Preset"/>
<addaction name="actionSalva_Preset"/>
</widget>
<widget class="QMenu" name="menuOpzioni">
<property name="title">
<string>Opzioni</string>
</property>
<addaction name="actionLingua"/>
<addaction name="actionAvanzate"/>
</widget>
<addaction name="bar_file"/>
<addaction name="menuOpzioni"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<widget class="QToolBar" name="toolBar">
<property name="windowTitle">
<string>toolBar</string>
</property>
<property name="movable">
<bool>false</bool>
</property>
<property name="floatable">
<bool>false</bool>
</property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<action name="actionCarica_Preset">
<property name="text">
<string>Carica Preset</string>
</property>
</action>
<action name="actionSalva_Preset">
<property name="text">
<string>Salva Preset</string>
</property>
</action>
<action name="actionOpzioni">
<property name="text">
<string>Opzioni</string>
</property>
</action>
<action name="actionLingua">
<property name="text">
<string>Lingua Interfaccia</string>
</property>
</action>
<action name="actionAvanzate">
<property name="text">
<string>Avanzate</string>
</property>
</action>
</widget>
<resources/>
<connections/>

View File

@@ -0,0 +1,466 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>advoption</class>
<widget class="QWidget" name="advoption">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>598</width>
<height>602</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QTabWidget" name="tab_opzionipredef">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="currentIndex">
<number>3</number>
</property>
<widget class="QWidget" name="tab_cartelle">
<attribute name="title">
<string>Cartelle</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lbl_sorgente">
<property name="text">
<string>Cartella sorgente</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_destinazione">
<property name="text">
<string>Cartella destinazione</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QToolButton" name="tll_sorgente">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="tll_destinazione">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>172</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>362</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_lingua">
<attribute name="title">
<string>Lingua</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="lbl_lingua">
<property name="text">
<string>Seleziona lingua articoli</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmb_lingua">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<item>
<property name="text">
<string>Inglese</string>
</property>
</item>
<item>
<property name="text">
<string>Italiano</string>
</property>
</item>
<item>
<property name="text">
<string>Russo</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>155</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>396</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_output">
<attribute name="title">
<string>Output</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="lbl_output">
<property name="text">
<string>Seleziona tipo file</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_mainbodyEfile">
<property name="text">
<string>File Singoli + Bodyfile</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_file">
<property name="text">
<string>File Singoli</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_bodyfile">
<property name="text">
<string>Bodyfile</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_nome">
<attribute name="title">
<string>Nome file</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="lbl_titolo">
<property name="text">
<string>Seleziona elementi titolo</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="chk_data">
<property name="text">
<string>Data</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QRadioButton" name="rad_datajpn">
<property name="text">
<string>YYYY MM DD, es. 2000 12 31</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_dataita">
<property name="text">
<string>DD MM YYYY, es. 31 12 2000</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_datausa">
<property name="text">
<string>MM DD YYYY, es. 12 31 2000</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="chk_titolo">
<property name="text">
<string>Titolo</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="lbl_ncaratt">
<property name="text">
<string>Numero caratteri</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spn_ncaratt">
<property name="minimum">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="chk_docnum">
<property name="text">
<string>Numero Documento</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QLabel" name="lbl_separatore">
<property name="text">
<string>Separatore</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="8" column="1">
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QRadioButton" name="rad_spazio">
<property name="text">
<string>Spazio</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="rad_tratt">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="rad_virgola">
<property name="text">
<string>,</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QRadioButton" name="rad_tratbass">
<property name="text">
<string>_</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="rad_piu">
<property name="text">
<string>+</string>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QRadioButton" name="rad_altro">
<property name="text">
<string>Altro:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lin_altro"/>
</item>
</layout>
</item>
</layout>
</item>
<item row="9" column="1">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Qui dobbiamo mettere le avanzate del titolo. </string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Bisogna decidere quale formato ci piace di piu.</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Seleziona le opzioni predefinite</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QPushButton" name="btn_annulla">
<property name="text">
<string>Annulla</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_ok">
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,271 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>selezout</class>
<widget class="QWidget" name="selezout">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>577</width>
<height>400</height>
</rect>
</property>
<property name="windowTitle">
<string>Seleziona Linuga e Output</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="5" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum>
</property>
<item>
<widget class="QRadioButton" name="rad_mainbodyEFile">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Bodyfile + File singoli</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_mainbody">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Bodyfile</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_file">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>File singoli</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="9" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="4">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbl_lingua">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Seleziona la lingua degli articoli</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="4">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="7" column="0" colspan="4">
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="8" column="0" colspan="4">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="chk_removeDuplicates">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Tenta rimozione duplicati</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="chk_includeTitle">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Includi titolo all'interno del file</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="chk_removeBreakWord">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Rimuovi interruzioni parola (a capo)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="chk_cleaDestFolder">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Svuota cartella di destinazione</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Caratteri speciali da rimuovere </string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lin_specialChars"/>
</item>
</layout>
</item>
</layout>
</item>
<item row="9" column="3">
<widget class="QPushButton" name="btn_split">
<property name="minimumSize">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>75</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>SPLITTA!</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lbl_indicazioni">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Seleziona il tipo di file da salvare</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="lbl_indicazioni_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Altre Opzioni </string>
</property>
</widget>
</item>
<item row="9" column="2">
<widget class="QPushButton" name="btn_indietro">
<property name="minimumSize">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>75</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Indietro</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QComboBox" name="cmb_lingua"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,278 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>selezout</class>
<widget class="QWidget" name="selezout">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>577</width>
<height>400</height>
</rect>
</property>
<property name="windowTitle">
<string>Seleziona Linuga e Output</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="5" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum>
</property>
<item>
<widget class="QRadioButton" name="rad_mainbodyEFile">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Bodyfile + File singoli</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_mainbody">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Bodyfile</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_file">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>File singoli</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="9" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="4">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbl_lingua">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Seleziona la lingua degli articoli</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="4">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="7" column="0" colspan="4">
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="8" column="0" colspan="4">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="chk_removeDuplicates">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Tenta rimozione duplicati</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="chk_includeTitle">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Includi titolo all'interno del file</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="chk_removeBreakWord">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Rimuovi interruzioni parola (a capo)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="chk_cleaDestFolder">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Svuota cartella di destinazione</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Caratteri speciali da rimuovere </string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lin_specialChars"/>
</item>
</layout>
</item>
</layout>
</item>
<item row="9" column="3">
<widget class="QPushButton" name="btn_split">
<property name="minimumSize">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>75</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>SPLITTA!</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lbl_indicazioni">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Seleziona il tipo di file da salvare</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="lbl_indicazioni_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Altre Opzioni </string>
</property>
</widget>
</item>
<item row="9" column="2">
<widget class="QPushButton" name="btn_indietro">
<property name="minimumSize">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>75</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Indietro</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QComboBox" name="cmb_lingua">
<property name="frame">
<bool>true</bool>
</property>
<property name="modelColumn">
<number>0</number>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,338 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>titolo</class>
<widget class="QWidget" name="titolo">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>480</width>
<height>443</height>
</rect>
</property>
<property name="windowTitle">
<string>Nomi file di Uscita</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="8" column="0" colspan="2">
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Separatore</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="3">
<layout class="QVBoxLayout" name="lyt_date">
<item>
<widget class="QRadioButton" name="rad_datajpn">
<property name="text">
<string>YYYY MM DD, es. 2000 12 31 (jpn)</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_dataita">
<property name="text">
<string>DD MM YYYY, es. 31 12 2000 (ita)</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_datausa">
<property name="text">
<string>MM DD YYYY, es. 12 31 2000 (us)</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="chk_titolo">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Titolo articolo</string>
</property>
</widget>
</item>
<item row="7" column="0" colspan="3">
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="5" column="0" colspan="3">
<layout class="QHBoxLayout" name="lyt_nchars">
<item>
<widget class="QLabel" name="lbl_ncarat">
<property name="text">
<string>Numero di caratteri</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spn_ncarat">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="wrapping">
<bool>true</bool>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::UpDownArrows</enum>
</property>
<property name="minimum">
<number>3</number>
</property>
<property name="maximum">
<number>32</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="13" column="0" colspan="3">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="0" colspan="3">
<widget class="QLabel" name="lbl_impotit">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Impostazioni nome file</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="chk_docnum">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Numero documento</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="chk_data">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Data</string>
</property>
</widget>
</item>
<item row="14" column="0" colspan="3">
<layout class="QHBoxLayout" name="lyt_buttons">
<item>
<widget class="QPushButton" name="btn_avanzate">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Avanzate</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="btn_indietro">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Indietro</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_avanti">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Avanti</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="9" column="0">
<layout class="QFormLayout" name="lyt_sep">
<item row="0" column="0">
<widget class="QRadioButton" name="rad_spazio">
<property name="text">
<string>Spazio</string>
</property>
<attribute name="buttonGroup">
<string notr="true">btngrp_divisore</string>
</attribute>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="rad_virgola">
<property name="text">
<string>,</string>
</property>
<attribute name="buttonGroup">
<string notr="true">btngrp_divisore</string>
</attribute>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="rad_piu">
<property name="text">
<string>+</string>
</property>
<attribute name="buttonGroup">
<string notr="true">btngrp_divisore</string>
</attribute>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="rad_tratt">
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string>-</string>
</property>
<attribute name="buttonGroup">
<string notr="true">btngrp_divisore</string>
</attribute>
</widget>
</item>
<item row="1" column="1">
<widget class="QRadioButton" name="rad_trattbass">
<property name="text">
<string>_</string>
</property>
<attribute name="buttonGroup">
<string notr="true">btngrp_divisore</string>
</attribute>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QRadioButton" name="rad_altro">
<property name="text">
<string>Altro:</string>
</property>
<attribute name="buttonGroup">
<string notr="true">btngrp_divisore</string>
</attribute>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lin_altro">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="9" column="1">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
<buttongroups>
<buttongroup name="btngrp_divisore"/>
</buttongroups>
</ui>

View File

@@ -0,0 +1,82 @@
{
"version": "v1.1a",
"paths": {
"lastUsed": "defaults.json",
"configurationPath": "D:/Emanuele/Documenti/workspace/bananaSPLIT/bananaSPLIT/conf/",
"INworkPath": "D:/Emanuele/Documenti/workspace/bananaSPLIT/TestFiles",
"OUTworkPath": "D:/Emanuele/Documenti/workspace/bananaSPLIT/TestFiles",
"fileList": [
"GUARDIAN 1993.txt",
"GUARDIAN 1996.txt",
"GUARDIAN 1999.txt",
"GUARDIAN 2002.txt",
"GUARDIAN 2005.txt",
"GUARDIAN 2008.txt",
"GUARDIAN 2012.txt",
"GUARDIAN 2015.txt",
"GUARDIAN 2018.txt",
"NYT 1990.txt",
"NYT 1994.txt",
"NYT 1997.txt",
"NYT 2000.txt",
"NYT 2003.txt",
"NYT 2006.txt",
"NYT 2009.txt",
"NYT 2013.txt",
"NYT 2015.txt",
"NYT 2017.txt",
"README"
]
},
"docStruct": {
"language": "scelto da languageconf.json",
"docSep": "\\s*Copyright [(0-9)]+",
"dateFormat": "{month} {day:d}, {year:d}{}",
"outPrefix": "111",
"outSuffix": "222",
"outExt": ".txt",
"outDateType": "jpn",
"outNameFormat": "",
"outDate": true,
"outTitle": false,
"outNumber": true,
"numberPos": 1,
"datePos": 2,
"titlePos": 3,
"maxTitleLen": 12,
"outNameSep": "+",
"customSep": "=",
"dateFormats": {
"jpn": "{year:04d}{month:02d}{day:02d}",
"it": "{day:02d}{month:02d}{year:04d}",
"usa": "{month:02d}{year:04d}{day:02d}"
}
},
"settings": {
"encoding": "utf-8",
"monthPosition": 0,
"getNewsPaperName": true,
"nameNotFoundStr": "ND",
"includeTitle": true,
"removeDuplicates": true,
"showSkipped": true,
"showRemovedDuplicates": false,
"loadTXT": true,
"loadDOCX": false,
"removeOldFiles": true,
"saveSeparateFiles": true,
"saveBodyFile": true,
"saveBodyNumber": true,
"delLF": false,
"delWordBreak": true,
"delChars": [
"'",
"@",
"#",
"$",
"%",
"^",
"&"
]
}
}

View File

@@ -0,0 +1,76 @@
{
"Italiano": {
"dateWords": [
"Gennaio",
"Febbraio",
"Marzo",
"Aprile",
"Maggio",
"Giugno",
"Luglio",
"Agosto",
"Settembre",
"Ottobre",
"Novembre",
"Dicembre"
],
"headWords": [
"BYLINE:",
"SECTION:",
"LENGTH:",
"DATELINE:",
"HIGHLIGHT:",
"Email:"
],
"tailWords": [
"Newstex ID:",
"NOTES:",
"LANGUAGE:",
"GRAPHIC:",
"TYPE:",
"URL:",
"LOAD-DATE:",
"PUBLICATION-TYPE:",
"DOCUMENT-TYPE:",
"CHARTS:",
"JOURNAL-CODE:"
]
},
"English": {
"dateWords": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"headWords": [
"BYLINE:",
"SECTION:",
"LENGTH:",
"DATELINE:",
"HIGHLIGHT:",
"Email:"
],
"tailWords": [
"Newstex ID:",
"NOTES:",
"LANGUAGE:",
"GRAPHIC:",
"TYPE:",
"URL:",
"LOAD-DATE:",
"PUBLICATION-TYPE:",
"DOCUMENT-TYPE:",
"CHARTS:",
"JOURNAL-CODE:"
]
}
}

View File

@@ -0,0 +1,5 @@
{
"logFile": "D:\\Test\\bananaSPLIT.log",
"logFormat": "%(asctime)s|%(levelname)-8s| %(message)-50s",
"logTimeFormat": "%m-%d %H:%M:%S"
}

488
bananaSPLIT/guimain.py Normal file
View File

@@ -0,0 +1,488 @@
'''
Created on 2 nov 2019
@author: Emanuele Trabattoni
TODO LIST
1- Aggiungere le icone ai tasti (giulia)
'''
import sys
import PyQt5.QtWidgets
from mainwindow import Ui_mainwin
from selezout import Ui_selezout
from titolow import Ui_titolo
from avanzatetitolo3 import Ui_advtitolo3 as Ui_advtitolo
from opzioniavanzate import Ui_advoption
from libfancylogger import fancyLogger
from libconfload import bananaCONF
from libsplit import bananaSPLITTER
from PyQt5.QtCore import QDir
import copy
class bananaMain(PyQt5.QtWidgets.QMainWindow):
def __init__(self):
PyQt5.QtWidgets.QMainWindow.__init__(self)
try:
self.logger = fancyLogger(filepath=r"./conf/loggerconf.json",fileLog=False)
self.conf = bananaCONF(workdir=r"./conf", logger=self.logger)
self.conf.open()
self.conf.use("defaults.json")
self.conf.use(self.conf.getParam('paths', 'lastUsed'))
except:
sys.exit()
# inizializzazione interfaccia
self.ui = Ui_mainwin()
self.ui.setupUi(self)
self.titolo = bananaTitolo(self.conf, self.logger)
self.titoloav = bananaTitoloAvanzate(self.conf, self.logger)
self.selezout = bananaSelezOut(self.conf, self.logger)
self.advopt = bananaAdvOpt(self.conf, self.logger)
#popola le tab con le finestre giuste
self.ui.wgt_main.addTab(self.titolo, "Titolo")
self.ui.wgt_main.addTab(self.selezout, "SelezioneOutput")
# connetti bottoni avanti
self.ui.btn_avanti.clicked.connect(self.nextTab)
self.titolo.titoloui.btn_avanti.clicked.connect(self.nextTab)
self.selezout.selezoutui.btn_avanti.clicked.connect(self.nextTab)
#connetti bottoni indietro
self.titolo.titoloui.btn_indietro.clicked.connect(self.prevTab)
self.selezout.selezoutui.btn_indietro.clicked.connect(self.prevTab)
#connetti bottoni selezione cartelle
self.ui.btn_cartellasorg.clicked.connect(self.selezSorg)
self.ui.btn_cartelladest.clicked.connect(self.selezDest)
#connetti action tab
self.ui.actionLingua.triggered.connect(self.openLanguage)
self.ui.actionAvanzate.triggered.connect(self.openAdvOpt)
self.ui.actionCarica_Preset.triggered.connect(self.openLoadPreset)
self.ui.actionSalva_Preset.triggered.connect(self.openSavePreset)
#riempi pagine di interfaccia
self.fillAllInterfaces()
pass
def fillInterface(self):
#pagina principale
try:
self.ui.lbl_sorg.setText(self.conf.getParam('paths','INworkPath'))
self.ui.lbl_dest.setText(self.conf.getParam('paths','OUTworkPath'))
self.fillFileList()
except:
self.log.critical("MainWindow: Configurazione non accettata")
def fillAllInterfaces(self):
self.fillInterface()
self.titolo.fillInterface()
self.titoloav.fillInterface()
self.selezout.fillInterface()
self.advopt.fillInterface()
def fillFileList(self):
fl = QDir(self.conf.getParam('paths','INworkPath')).entryList(QDir.NoDotAndDotDot | QDir.Files)
self.ui.lst_files.clear()
for f in fl:
self.ui.lst_files.addItem(PyQt5.QtWidgets.QListWidgetItem(f))
self.conf.setParam(('paths', 'fileList'), fl)
def nextTab(self):
self.ui.wgt_main.setCurrentIndex(self.ui.wgt_main.currentIndex()+1)
self.logger.debug("Prossima Tab")
pass
def prevTab(self):
self.ui.wgt_main.setCurrentIndex(self.ui.wgt_main.currentIndex()-1)
self.logger.debug("Tab Precedente")
pass
def openLoadPreset(self):
self.logger.debug("Apri Carica Preset")
lf = PyQt5.QtWidgets.QFileDialog(self,"Carica Preset",self.conf.getParam('paths', 'configurationPath'))
lf.setAcceptMode(PyQt5.QtWidgets.QFileDialog.AcceptOpen)
lf.setFileMode(PyQt5.QtWidgets.QFileDialog.ExistingFile)
lf.setNameFilter("bananaCONF (*.json)")
if lf.exec():
cf = str(lf.selectedFiles()[0].split('/')[-1])
self.logger.debug("Scelto il File: {}".format(cf))
self.conf.open()
self.conf.use(cf)
self.logger.debug("Riempio tutte le tab")
self.fillAllInterfaces()
pass
def openSavePreset(self):
self.logger.debug("Apri Salva Preset")
self.logger.debug("Forzo applica a tutte le tab")
self.applicaTutto()
sf = PyQt5.QtWidgets.QFileDialog(self,"Salva Preset",self.conf.getParam('paths', 'configurationPath'))
sf.setAcceptMode(PyQt5.QtWidgets.QFileDialog.AcceptSave)
sf.setNameFilter("bananaCONF (*.json)")
if sf.exec():
rv=str(sf.selectedFiles()[0].split('/')[-1])
self.conf.setParam(('paths','lastUsed'),rv)
self.logger.debug("Scrivi il File: {}".format(rv))
self.conf.save(fName=rv)
pass
def openAdvOpt(self):
self.logger.debug("Apri Opzioni Avanzate")
pass
def openLanguage(self):
self.logger.debug("Apri Opzioni Lingua")
pass
def selezSorg(self):
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,"Seleziona Cartella Sorgente",self.conf.getParam('paths','INworkPath'))
if rv is not "":
self.conf.setParam(keys=('paths','INworkPath',), val=rv)
self.ui.lbl_sorg.setText(rv)
self.logger.debug("Selezionata Cartella Sorgente: {}".format(rv))
self.fillFileList()
pass
def selezDest(self):
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,"Seleziona Cartella Destinazione",self.conf.getParam('paths','OUTworkPath'))
if rv is not "":
self.conf.setParam(keys=('paths','OUTworkPath',), val=rv)
self.ui.lbl_dest.setText(rv)
self.logger.debug("Selezionata Cartella Destinazione: {}".format(rv))
pass
def openFileDialog(self, name, path):
self.log.debug("Apro in directory: {}".format(path))
return
def applicaTutto(self):
self.titolo.applica()
self.selezout.applica()
self.advopt.applica()
#############################################################
####################### INTERFACES ##########################
#############################################################
class bananaTitolo(PyQt5.QtWidgets.QWidget):
def __init__(self, confloader=None, logger=None):
PyQt5.QtWidgets.QWidget.__init__(self)
self.titoloui = Ui_titolo()
self.titoloui.setupUi(self)
self.conf = confloader
self.log = logger
if self.conf is not None:
self.titoloui.btn_avanzate.clicked.connect(self.spawnAvanzate)
self.titoloui.btn_avanti.clicked.connect(self.applica)
self.advtitolo = bananaTitoloAvanzate(confloader, self.log)
self.fillInterface()
pass
def fillInterface(self):
try:
# imposta predefiniti interfaccia da file
#Data (la piu complicata)
self.titoloui.chk_data.setChecked(self.conf.getParam('docStruct','outDate'))
self.titoloui.rad_datajpn.setChecked(self.conf.getParam('docStruct', 'outDateType') is 'jpn')
self.titoloui.rad_dataita.setChecked(self.conf.getParam('docStruct', 'outDateType') is 'it')
self.titoloui.rad_datausa.setChecked(self.conf.getParam('docStruct', 'outDateType') is 'usa')
#Titolo
self.titoloui.chk_titolo.setChecked(self.conf.getParam('docStruct','outTitle'))
self.titoloui.spn_ncarat.setValue(self.conf.getParam('docStruct', 'maxTitleLen'))
#Numero Documento
self.titoloui.chk_docnum.setChecked(self.conf.getParam('docStruct','outNumber'))
#Separatore
found=False
for itmn in range(self.titoloui.lyt_sep.count()):
itm=self.titoloui.lyt_sep.itemAt(itmn).widget()
if isinstance(itm, PyQt5.QtWidgets.QRadioButton):
if itm.text() == self.conf.getParam('docStruct', 'outNameSep'):
itm.setChecked(True)
found = True
if not found:
self.titoloui.rad_altro.setChecked(True)
self.titoloui.lin_altro.setText(self.conf.getParam('docStruct', 'customSep'))
except:
self.log.critical("Titolo: Configurazione non accettata")
def spawnAvanzate(self):
self.log.debug("Mostro la finestra avanzate titolo")
self.advtitolo.show()
pass
def applica(self):
self.log.info("Applico impostazioni Titolo")
self.conf.setParam(('docStruct','outDate'),self.titoloui.chk_data.isChecked())
self.conf.setParam(('docStruct','outNumber'),self.titoloui.chk_docnum.isChecked())
self.conf.setParam(('docStruct','outTitle'),self.titoloui.chk_titolo.isChecked())
if self.titoloui.rad_dataita.isChecked():
self.conf.setParam(('docStruct','outDateType'),'ita')
elif self.titoloui.rad_datajpn.isChecked():
self.conf.setParam(('docStruct','outDateType'),'jpn')
elif self.titoloui.rad_datausa.isChecked():
self.conf.setParam(('docStruct','outDateType'),'usa')
self.conf.setParam(('docStruct','maxTitleLen'), self.titoloui.spn_ncarat.value())
self.conf.setParam(('docStruct', 'customSep'),self.titoloui.lin_altro.text())
for itmn in range(self.titoloui.lyt_sep.count()):
itm=self.titoloui.lyt_sep.itemAt(itmn).widget()
if isinstance(itm, PyQt5.QtWidgets.QRadioButton):
if len(itm.text())==1 and itm.isChecked():
self.conf.setParam(('docStruct', 'outNameSep'), itm.text())
pass
class bananaTitoloAvanzate(PyQt5.QtWidgets.QWidget):
def __init__(self, confloader=None, logger=None):
PyQt5.QtWidgets.QWidget.__init__(self)
self.titoloavui = Ui_advtitolo()
self.titoloavui.setupUi(self)
self.titoloavui.btn_OK.clicked.connect(self.returnOk)
self.titoloavui.btn_annulla.clicked.connect(self.returnKo)
self.titoloavui.rad_dataprimo.clicked.connect(self.gestisciBottoni)
self.titoloavui.rad_datasecondo.clicked.connect(self.gestisciBottoni)
self.titoloavui.rad_dataterzo.clicked.connect(self.gestisciBottoni)
self.titoloavui.rad_numeroprimo.clicked.connect(self.gestisciBottoni)
self.titoloavui.rad_numerosecondo.clicked.connect(self.gestisciBottoni)
self.titoloavui.rad_numeroterzo.clicked.connect(self.gestisciBottoni)
self.titoloavui.rad_titoloprimo.clicked.connect(self.gestisciBottoni)
self.titoloavui.rad_titolosecondo.clicked.connect(self.gestisciBottoni)
self.titoloavui.rad_titoloterzo.clicked.connect(self.gestisciBottoni)
self.conf = confloader
self.log = logger
self.fillInterface()
pass
def fillInterface(self):
try:
#rimepi interfaccia
self.titoloavui.rad_dataprimo.setChecked(self.conf.getParam('docStruct','datePos')==1)
self.titoloavui.rad_datasecondo.setChecked(self.conf.getParam('docStruct','datePos')==2)
self.titoloavui.rad_dataterzo.setChecked(self.conf.getParam('docStruct','datePos')==3)
self.titoloavui.rad_titoloprimo.setChecked(self.conf.getParam('docStruct','titlePos')==1)
self.titoloavui.rad_titolosecondo.setChecked(self.conf.getParam('docStruct','titlePos')==2)
self.titoloavui.rad_titoloterzo.setChecked(self.conf.getParam('docStruct','titlePos')==3)
self.titoloavui.rad_numeroprimo.setChecked(self.conf.getParam('docStruct','numberPos')==1)
self.titoloavui.rad_numerosecondo.setChecked(self.conf.getParam('docStruct','numberPos')==2)
self.titoloavui.rad_numeroterzo.setChecked(self.conf.getParam('docStruct','numberPos')==3)
self.titoloavui.txt_prefisso.setText(self.conf.getParam('docStruct','outPrefix'))
self.titoloavui.txt_suffisso.setText(self.conf.getParam('docStruct','outSuffix'))
except:
self.log.critical("AvanzateTitolo: Configurazione non accettata")
def gestisciBottoni(self):
#PRIMO
if self.titoloavui.rad_numeroprimo.isChecked():
self.titoloavui.rad_dataprimo.setChecked(False)
self.titoloavui.rad_titoloprimo.setChecked(False)
self.titoloavui.rad_numerosecondo.setChecked(False)
self.titoloavui.rad_numeroterzo.setChecked(False)
if self.titoloavui.rad_dataprimo.isChecked():
self.titoloavui.rad_numeroprimo.setChecked(False)
self.titoloavui.rad_titoloprimo.setChecked(False)
self.titoloavui.rad_datasecondo.setChecked(False)
self.titoloavui.rad_dataterzo.setChecked(False)
if self.titoloavui.rad_titoloprimo.isChecked():
self.titoloavui.rad_numeroprimo.setChecked(False)
self.titoloavui.rad_dataprimo.setChecked(False)
self.titoloavui.rad_titolosecondo.setChecked(False)
self.titoloavui.rad_titoloterzo.setChecked(False)
#secondo
if self.titoloavui.rad_numerosecondo.isChecked():
self.titoloavui.rad_datasecondo.setChecked(False)
self.titoloavui.rad_titolosecondo.setChecked(False)
self.titoloavui.rad_numeroprimo.setChecked(False)
self.titoloavui.rad_numeroterzo.setChecked(False)
if self.titoloavui.rad_datasecondo.isChecked():
self.titoloavui.rad_numerosecondo.setChecked(False)
self.titoloavui.rad_titolosecondo.setChecked(False)
self.titoloavui.rad_dataprimo.setChecked(False)
self.titoloavui.rad_dataterzo.setChecked(False)
if self.titoloavui.rad_titolosecondo.isChecked():
self.titoloavui.rad_numerosecondo.setChecked(False)
self.titoloavui.rad_datasecondo.setChecked(False)
self.titoloavui.rad_titoloprimo.setChecked(False)
self.titoloavui.rad_titoloterzo.setChecked(False)
#terzo
if self.titoloavui.rad_numeroterzo.isChecked():
self.titoloavui.rad_dataterzo.setChecked(False)
self.titoloavui.rad_titoloterzo.setChecked(False)
self.titoloavui.rad_numeroprimo.setChecked(False)
self.titoloavui.rad_numerosecondo.setChecked(False)
if self.titoloavui.rad_dataterzo.isChecked():
self.titoloavui.rad_numeroterzo.setChecked(False)
self.titoloavui.rad_titoloterzo.setChecked(False)
self.titoloavui.rad_dataprimo.setChecked(False)
self.titoloavui.rad_datasecondo.setChecked(False)
if self.titoloavui.rad_titoloterzo.isChecked():
self.titoloavui.rad_numeroterzo.setChecked(False)
self.titoloavui.rad_dataterzo.setChecked(False)
self.titoloavui.rad_titoloprimo.setChecked(False)
self.titoloavui.rad_titolosecondo.setChecked(False)
pass
def returnOk(self):
self.log.debug("Avanzate Titolo Accettate")
self.applica()
self.hide()
pass
def returnKo(self):
self.log.debug("Avanzate Titolo Rifiutate")
self.hide()
pass
def applica(self):
#data
if self.titoloavui.rad_dataprimo.isChecked():
self.conf.setParam(('docStruct', 'datePos'), 1)
elif self.titoloavui.rad_datasecondo.isChecked():
self.conf.setParam(('docStruct', 'datePos'), 2)
elif self.titoloavui.rad_dataterzo.isChecked():
self.conf.setParam(('docStruct', 'datePos'), 3)
else:
self.conf.setParam(('docStruct', 'datePos'), -1)
#numero
if self.titoloavui.rad_numeroprimo.isChecked():
self.conf.setParam(('docStruct', 'numberPos'), 1)
elif self.titoloavui.rad_numerosecondo.isChecked():
self.conf.setParam(('docStruct', 'numberPos'), 2)
elif self.titoloavui.rad_numeroterzo.isChecked():
self.conf.setParam(('docStruct', 'numberPos'), 3)
else:
self.conf.setParam(('docStruct', 'numberPos'), -1)
#titolo
if self.titoloavui.rad_titoloprimo.isChecked():
self.conf.setParam(('docStruct', 'titlePos'), 1)
elif self.titoloavui.rad_titolosecondo.isChecked():
self.conf.setParam(('docStruct', 'titlePos'), 2)
elif self.titoloavui.rad_titoloterzo.isChecked():
self.conf.setParam(('docStruct', 'titlePos'), 3)
else:
self.conf.setParam(('docStruct', 'titlePos'), -1)
#prefisso e suffisso
self.conf.setParam(('docStruct','outPrefix'), self.titoloavui.txt_prefisso.text())
self.conf.setParam(('docStruct','outSuffix'), self.titoloavui.txt_suffisso.text())
print(self.conf)
class bananaSelezOut(PyQt5.QtWidgets.QWidget):
def __init__(self, confloader=None, logger=None):
PyQt5.QtWidgets.QWidget.__init__(self)
self.selezoutui = Ui_selezout()
self.selezoutui.setupUi(self)
self.conf = confloader
self.log = logger
if self.conf is not None:
self.selezoutui.btn_split.clicked.connect(self.splitta)
self.selezoutui.btn_split.clicked.connect(self.applica)
self.fillInterface()
pass
def fillInterface(self):
try:
self.selezoutui.cmb_lingua.clear()
self.selezoutui.cmb_lingua.addItems(self.conf.settingsList['languageconf.json'].keys())
self.selezoutui.rad_mainbodyEFile.setChecked(self.conf.getParam('settings', 'saveBodyFile') and self.conf.getParam('settings', 'saveSeparateFiles'))
self.selezoutui.rad_file.setChecked(self.conf.getParam('settings', 'saveSeparateFiles') and not self.conf.getParam('settings', 'saveBodyFile'))
self.selezoutui.rad_mainbody.setChecked(self.conf.getParam('settings', 'saveBodyFile') and not self.conf.getParam('settings', 'saveSeparateFiles'))
self.selezoutui.chk_removeDuplicates.setChecked(self.conf.getParam('settings', 'removeDuplicates'))
self.selezoutui.chk_includeTitle.setChecked(self.conf.getParam('settings', 'includeTitle'))
self.selezoutui.chk_removeBreakWord.setChecked(self.conf.getParam('settings', 'delWordBreak'))
self.selezoutui.chk_cleaDestFolder.setChecked(self.conf.getParam('settings', 'removeOldFiles'))
self.selezoutui.lin_specialChars.setText(''.join(self.conf.getParam('settings', 'delChars')))
pass
except:
self.log.critical("SelezUscita: Configurazione non accettata")
pass
def applica(self):
self.log.info("Applico Impostazioni Uscita")
self.conf.setParam(('docStruct', 'language'), self.selezoutui.cmb_lingua.currentText())
self.conf.setParam(('settings', 'saveBodyFile'), self.selezoutui.rad_mainbody.isChecked()
| self.selezoutui.rad_mainbodyEFile.isChecked())
self.conf.setParam(('settings', 'saveSeparateFiles'), self.selezoutui.rad_file.isChecked()
| self.selezoutui.rad_mainbodyEFile.isChecked())
self.conf.setParam(('settings', 'removeDuplicates'), self.selezoutui.chk_removeDuplicates.isChecked())
self.conf.setParam(('settings', 'includeTitle'), self.selezoutui.chk_removeDuplicates.isChecked())
self.conf.setParam(('settings', 'delWordBreak'), self.selezoutui.chk_removeBreakWord.isChecked())
self.conf.setParam(('settings', 'removeOldFiles'), self.selezoutui.chk_cleaDestFolder.isChecked())
self.conf.setParam(('settings', 'delChars'), list(self.selezoutui.lin_specialChars.text()))
pass
def splitta(self):
# costruisco il dizionario di configurazione
splconf = copy.deepcopy(self.conf.dump())
lang = copy.deepcopy(self.conf.use('languageconf.json').getParam(splconf['docStruct']['language']))
splconf['language'] = self.conf.use('languageconf.json').getParam(lang)
#formato nome in uscita
nametemp=[]
for i in range(3):
if i == splconf['docStruct']['numberPos'] and splconf['docStruct']['outNumber']:
nametemp.append("docnum")
if i == splconf['docStruct']['datePos'] and splconf['docStruct']['outDate']:
nametemp.append(splconf['docStruct']['dateFormats'][splconf['docStruct']['outDateType']])
if i == splconf['docStruct']['titlePos'] and splconf['docStruct']['outTitle']:
nametemp.append("title")
pass
if splconf['docStruct']['outPrefix'] != '':
nametemp.insert(0, splconf['docStruct']['outPrefix']) #inserisco prefisso e suffisso
if splconf['docStruct']['outSuffix'] != '':
nametemp.append(splconf['docStruct']['outSuffix'])
#unisco i pezzi
splconf['docStruct']['outNameFormat'] = splconf['docStruct']['outNameSep'].join(nametemp)+splconf['docStruct']['outExt']
# costruisco i thread
tDict={}
for f in splconf['paths']['fileList']:
splconf['name']=f
tDict[f] = bananaSPLITTER(fileParams=copy.deepcopy(splconf), logger=self.log)
pass
class bananaAdvOpt(PyQt5.QtWidgets.QWidget):
def __init__(self, confloader=None, logger=None):
PyQt5.QtWidgets.QWidget.__init__(self)
self.advoptui = Ui_advoption()
self.advoptui.setupUi(self)
self.conf = confloader
self.log = logger
if self.conf is not None:
self.fillInterface()
pass
def fillInterface(self):
try:
pass
except:
self.log.critical("AdvancedOptions: Configurazione non accettata")
pass
def applica(self):
pass
class bananaSplitterInterface(PyQt5.QtWidgets.QWidget):
def __init__(self, confloader=None, logger=None):
PyQt5.QtWidgets.QWidget.__init__(self)
pass
#############################################################
####################### MAIN ################################
#############################################################
if __name__ == '__main__':
app = PyQt5.QtWidgets.QApplication(sys.argv)
window = bananaMain()
window.resize(window.sizeHint().width(), window.size().height())
window.show()
rv = app.exec()
print("ExitCode: {}".format(rv))
sys.exit(rv)
pass

View File

View File

@@ -0,0 +1,104 @@
'''
Created on 2 nov 2019
@author: Emanuele Trabattoni
'''
import json,os,glob,copy
class bananaCONF(object):
'''
Carica e Salva file di configurazione per bananaSPLITTER
'''
def __init__(self, workdir=None, logger=None):
self.log = logger
self.fileList = None
self.workdir = None
self.inUse = None
self.settingsList = dict()
if workdir is not None:
self.workdir = workdir
os.chdir(workdir)
self.log.debug("Cerco le configurazioni in: [{}]".format(os.getcwd()))
else:
self.log.error("Non mi e' stata fornita una directory per i file di configurazione")
pass
def open(self):
self.log.info("Carico i file di configurazione")
self.fileList = glob.glob(r"*.json")
if len(self.fileList) > 0:
for f in self.fileList:
try:
fp = open(f)
tf = json.load(fp)
fName = f.split("\\")[-1]
self.settingsList[fName] = copy.deepcopy(tf)
self.log.info("Caricato correttamente: {}".format(fName))
fp.close()
except json.JSONDecodeError as e:
self.log.error("Impossibile leggere la configurazione:{}\n \
Controlla il file a riga: {} e colonna:{}" .format(e.doc, e.lineno, e.colno))
except IOError as ee:
self.log.error("Impossibile aprire il file: {}".format(ee))
except Exception as eee:
self.log.critical("Eccezione inaspettata: {}".format(eee))
else:
self.log.error("Non ho trovato alcun file di configurazione!")
pass
def reload(self):
self.settingsList = None
self.fileList = None
self.inUse = None
self.open()
pass
def use(self, toUse):
self.inUse = toUse
return self
def save(self, fName=None):
if fName is None:
fName=self.inUse
self.log.info("Salvo la configurazione: {}".format(fName))
try:
f=open(fName, 'w')
json.dump(self.settingsList[self.inUse], f, indent='\t')
f.close()
except IOError as e:
self.log.error("Impossibile salvare il file: {} - [{}]".format(fName,e))
except Exception as ei:
self.log.error("Errore imprevisto nella scrittura del file: {}".format(ei))
pass
def getFiles(self):
return self.fileList
def getParam(self, *keys):
rv = self.settingsList[self.inUse]
try:
for k in keys:
rv = rv[k]
return rv
except ValueError as ve:
self.log.error("Parametro di configurazione non valido! [{}]".format(ve))
return False
pass
def setParam(self, keys=(), val=None):
sv = self.settingsList[self.inUse]
try:
for k in keys[:-1]:
sv = sv[k]
sv[keys[-1]] = val
return True
except ValueError as ve:
self.log.error("Parametro di configurazione non valido! [{}]".format(ve))
return False
pass
def dump(self):
return self.settingsList[self.inUse]

View File

@@ -0,0 +1,91 @@
'''
Created on 2 nov 2019
@author: Emanuele Trabattoni
'''
import sys, os
import json
import logging
import colorama
class fancyLogger(object):
'''
Colorizza il logger di python, per un' esperienza stile willy wonka
'''
def __init__(self, filepath=None, name="Logger", consoleLog=True, fileLog=False):
try:
print(os.getcwd())
with open(filepath, 'r') as fp:
settings = json.load(fp)
fp.close()
colorama.init(convert=True)
self.LRED = colorama.Fore.LIGHTRED_EX
self.RED = colorama.Fore.RED
self.LYELLOW = colorama.Fore.LIGHTYELLOW_EX
self.YELLOW = colorama.Fore.YELLOW
self.LBLUE = colorama.Fore.LIGHTBLUE_EX
self.BLUE = colorama.Fore.BLUE
self.LGREEN = colorama.Fore.LIGHTGREEN_EX
self.LGREEN = colorama.Fore.GREEN
self.WHITE = colorama.Fore.LIGHTWHITE_EX
self.RST = colorama.Style.RESET_ALL
# Setup Logger
self.LOGGER = logging.getLogger(name)
self.LOGGER.setLevel(logging.DEBUG)
self.LOGGER.propagate = False
FORMATTER = logging.Formatter((settings["logFormat"]), (settings["logTimeFormat"]))
if fileLog:
# File Logging
fh = logging.FileHandler((settings["logFile"]))
fh.setLevel(logging.DEBUG)
fh.setFormatter(FORMATTER)
self.LOGGER.addHandler(fh)
if consoleLog:
# Console Logging
cl= logging.StreamHandler(sys.stdout)
cl.setLevel(logging.DEBUG)
cl.setFormatter(FORMATTER)
self.LOGGER.addHandler(cl)
except IOError as e:
print("Impossibile caricare la configurazione del logger: [{}]".format(e))
pass
def debug(self, msg="Undefined Debug"):
print(self.LBLUE, end='')
self.LOGGER.debug(msg)
print(self.RST, end='')
pass
def info(self, msg="Undefined Info"):
print(self.LGREEN, end='')
self.LOGGER.info(msg)
print(self.RST, end='')
pass
def warn(self, msg="Undefined Warning"):
print(self.LYELLOW, end='')
self.LOGGER.warning(msg)
print(self.RST, end='')
pass
def error(self, msg="Undefined Error"):
print(self.LRED, end='')
self.LOGGER.error(msg)
print(self.RST, end='')
pass
def critical(self, msg="Undefined Critical"):
print(self.RED, end='')
self.LOGGER.critical(msg)
print(self.RST, end='')
pass
def testColors(self):
self.debug("Test Debug")
self.info("Test Info")
self.warn("Test Warning")
self.error("Test Error")
self.critical("Test Critical")
pass

View File

@@ -0,0 +1,283 @@
'''
Created on 2 nov 2019
@author: Emanuele Trabattoni
'''
from PyQt5.QtCore import QThread
from PyQt5.Qt import pyqtSignal
from slugify import slugify
import time, parse, re, copy, os, threading
class bananaSPLITTER(QThread):
sendStatus = pyqtSignal(str)
def __init__(self, fileParams=None, logger=None):
threading.Thread.__init__(self)
self.fileParams = fileParams
self.log = logger
self.rawFile = None
self.status = "first"
self.contentList = list()
self.bodyCounter=0
self.duplicateNumber=0
if fileParams is not None:
self.log.info("Sto operando sul file: {}..".format(self.fileParams['name']))
self.paths = self.fileParams['paths']
self.docStruct = self.fileParams['docStruct']
self.settings = self.fileParams['settings']
self.fileName = self.fileParams['name']
self.outPath = self.paths['OUTworkPath']+slugify(self.fileName)
self.beginTime = time.time()
pass
else:
self.log.critical("Non e' stato fornito il nome di alcun file da splittare!")
pass
def run(self):
self.log.info("Nuovo SPLITTER su file: {}".format(self.fileName))
try:
self.openFile()
self.remEmptyLines()
self.splitFile()
if self.settings['removeDuplicates']:
self.log.info("Controllo se ci sono dei duplicati..")
self.removeDuplicates()
else:
for idx, ff in enumerate(self.contentList):
ff['duplicate']=False
self.contentList[idx]=ff
self.log.warn('Salto il controllo dei duplicati..')
# se il parse e la rimozione dei duplicati e' andata bene
# preparo e inizio il salvataggio
if os.path.exists(self.outPath):
if self.settings['removeOldFiles']:
os.chdir(self.outPath)
for f in os.listdir(self.outPath):
os.remove(f)
else:
raise FileExistsError("Non posso sovrascrivere i vecchi file, eliminali manualmente!")
else:
os.mkdir(self.outPath)
os.chdir(self.outPath)
if self.settings['saveSeparateFiles']:
self.saveSeparate()
if self.settings['saveBodyFile']:
self.saveBody()
self.log.info("L'elaborazione del file ha richiesto {:4.2f} sec".format(time.time()-self.beginTime))
except UnicodeDecodeError as ee:
self.log.critical("Il file [{}] contiene caratteri non compatibili con la codifica scelta! [{}]"
.format(self.fileParams['name'],ee))
except FileExistsError as fe:
self.log.critical(fe)
except BaseException as ee:
self.log.warning(ee)
pass
def openFile(self):
try:
os.chdir(self.paths["INworkPath"])
self.log.info("Carico il contenuto..")
fp = open(self.fileParams['name'], mode='r', encoding=self.settings['encoding'])
self.rawFile = fp.readlines()
fp.close()
except IOError as e:
self.log.critical("Impossibile aprire il file: {}! [{}]".format(self.fileName,e))
raise BaseException("OpenFile")
os.rmdir(self.outPath)
pass
def remEmptyLines(self):
self.log.info("Elimino righe vuote e caratteri inutili..")
tempContent = []
try:
for ll in self.rawFile:
for c in self.settings['delChars']:
ll = ll.replace(c,'')
if ll not in ['\n', '\r']:
tempContent.append(ll)
self.rawFile = copy.deepcopy(tempContent)
return True
except:
self.log.error("Errore inaspettato durante l'eliminazione delle righe vuote!")
raise BaseException("DelLines")
del tempContent
def splitFile(self): #porting del codice dal programma originale
self.log.info("Individuo il contenuto..")
self.bodyCounter=0
self.duplicateNumber=0
docNumber = 0
docSkipped = 0
docDate = {}
title = ''
prevLine = ''
newsPaperName = ''
titleBegin = False
tempBody = list()
docSep=re.compile(self.docStruct['docSep'])
for l in self.rawFile: #per ogni linea del file
lineWords = l.lstrip().split(' ') #dividi la riga in parole
if self.status == 'first':
#prendo il numero di documento per vedere se ci sono buchi
try:
try:
nn = parse.parse("{current:d} Of {total} Documents",l.strip().capitalize()).named
if nn["current"]-docNumber==1:
pass
else:
if self.settings["showSkipped"]:
self.log.warn("Il conto dei documenti non torna! LexisNexis \
ne ha saltato qualcuno!\nPrecedente:{0}-Attuale:{1}".format(docNumber,nn["current"]))
docSkipped+=1
docNumber = nn["current"]
except:
pass #non segnalare eccezione se il parse fallisce
# ricerco la data
if (lineWords[self.settings['monthPosition']]).capitalize() in self.docStruct['language']['dateWords']:
try:
docDate=parse.parse(self.docStruct['dateFormat'],l).named
docDate['month']=docDate['month'].lstrip().rstrip().capitalize()
docDate['month']=self.docStruct['language']['dateWords'].index(docDate['month'])+1
title = ''
titleBegin=True
# dopo la data inizia il titolo, ma prima si cerca il nome del giornale
if self.settings['getNewsPaperName']:
try:
if prevLine.split(' ')[0].strip().isalpha():
newsPaperName = prevLine.strip()
else:
newsPaperName = self.settings['nameNotFoundStr']
except:
self.log.warn("E' successo qualcosa mentre stavo cercando il nome della pubblicazione,\
controlla i file di uscita! [{}]".format(prevLine.strip()))
else:
newsPaperName = self.settings['nameNotFoundStr']
except:
self.log.warn("Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]". format(l.strip('\r\n')))
pass
elif lineWords[0] in self.docStruct['language']['headWords']:
#cambio stato e inizializzo un nuovo documento da riempire
self.status = 'head'
newDoc=dict()
newDoc['title']=title
newDoc['date']=docDate
newDoc['newsPaperName'] = newsPaperName
titleBegin=False
else:
if titleBegin:
title += l.strip().capitalize()
except IndexError:
self.log.error("Errore inaspettato, contatta il tuo sviluppatore di fiducia!")
pass
elif self.status == 'head':
tempContent = list()
if lineWords[0] not in self.docStruct['language']['headWords']: #se la prima parola non e' tra quelle di inizio
tempBody.append(l) # vuol dire che ho trovato l'articolo e aggiungo la prima riga al contenuto del documento
self.status = 'body'
pass
elif self.status == 'body':
if not lineWords[0] in self.docStruct['language']['tailWords']: #se la prima parola non e' tra quelle di fine
if self.settings['delLF']:
tempBody.append(l.strip('\n')) #allora sto leggendo l'articolo
else:
tempBody.append(l)
else:
self.status = 'tail'
anomaly = False
if docSep.match(l) is not None: #controlla se ci sono articoli che non hanno le parole chiave finali
self.log.warn("Ho individuato una separatore valido prima che si chiusesse l'articolo precedente, controlla i tuoi file in uscita!\n\
L'errore dovrebbe essere intorno all'articolo {} ma non sono sicuro! \n\t\t[{}]".format(docNumber, l.strip()))
self.status = 'tail'
anomaly = True
pass
elif self.status == 'tail':
if docSep.match(l) is not None or anomaly:
self.status = 'first'
anomaly = False
if self.settings['delWordBreak']:
tempContent=[ll.replace('-\n', '') for ll in tempContent]
newDoc['content']=copy.deepcopy(''.join(tempBody))
self.contentList.append(copy.deepcopy(newDoc))
tempBody=list()
self.bodyCounter +=1
pass
else:
self.log.critical("Stato Interno Sconosciuto")
prevLine=l #salva sempre e comunque il contenuto della linea precedente
pass
#ricerca terminata, espongo i risultati
self.log.info("Nel file ho trovato {0} articoli..".format(self.bodyCounter))
if docSkipped > 0:
self.log.warn("Attentione, LexisNexis ne ha saltati {} !!!".format(docSkipped))
pass
pass
def removeDuplicates(self):
titleList=[]
duplicateList=[]
for idx, ff in enumerate(self.contentList):
if ff['title'] not in titleList:
titleList.append(ff['title'])
ff['duplicate']=False
self.contentList[idx]=ff
pass
else:
if ff['title'] not in duplicateList:
duplicateList.append(ff['title'])
if self.settings['showRemovedDuplicates']:
self.log.info("Duplicato: {}".format(ff['title'].strip()))
ff['duplicate'] = True
self.contentList[idx]=ff
self.duplicateNumber+=1
self.log.info("Ho rimosso {} duplicati di {} articoli..". format(self.duplicateNumber, len(duplicateList)))
pass
def saveSeparate(self):
outFileCounter = 0
self.paths['OUTworkPath']=self.paths['OUTworkPath']+slugify(self.fileName)
self.log.info("Salvo gli articoli in file separati...")
self.log.debug("Persorso: {0}".format(self.paths['OUTworkPath'].format('nomeFile')))
for ff in self.contentList:
try:
if ff['duplicate'] == False:
fName=self.paths['OUTnameFormat'].format(title=slugify(ff['title'][:self.settings['maxTitleLen']]),\
filename=slugify(self.fileName),\
docnum=outFileCounter,\
papername=ff['newsPaperName'].strip(),\
**ff['date'])
out=open('{0}'.format(fName),'wb')
if self.settings['includeTitle']:
ff['content'] = ff['title']+os.linesep+ff['content']
out.write(ff['content'].encode(self.settings['encoding']))
out.close()
outFileCounter+=1
except IOError as e:
self.log.error("Qualcosa e\' andato storto, non riesco a scrivere il file: {}".format(e))
continue
if outFileCounter < self.bodyCounter:
raise BaseException("Ho salvato meno file rispetto a quelli trovati!")
pass
def saveBody(self):
self.log.info('Salvo gli articoli in un singolo file vicino agli originali...')
self.log.debug('Persorso: {0}'.format(self.outPath))
os.chdir(self.outPath)
try:
fName=slugify(self.fileName)
fName='BODYFILE_{0}.txt'.format(fName[:self.settings['maxTitleLen']])
fileContent = os.linesep.join([cc['content'] for cc in self.contentList])
out=open('{0}'.format(fName),'wb')
out.write(fileContent.encode(self.settings['encoding']))
out.close()
except IOError as e:
self.log.error("Qualcosa e\' andato storto, non riesco a scrivere il file: {}".format(e))
pass

View File

@@ -0,0 +1,35 @@
'''
Created on 1 dic 2019
@author: Emanuele Trabattoni
'''
import os
from glob import glob
from copy import deepcopy
from libsplit import bananaSPLITTER
from libconfload import bananaCONF
from libfancylogger import fancyLogger
if __name__ == "__main__":
print("CWD-> "+os.getcwd())
logger = fancyLogger(fileLog = False)
confl = bananaCONF(workdir=r"./libbananasplit", logger=logger)
confl.open()
confl.use("testEN.json")
splconf = confl.getParams("splitter")
splist = []
os.chdir(splconf["paths"]["INworkPath"])
for f in glob("*.txt"):
splconf["name"] = f
logger.info("-"*80)
splitter = bananaSPLITTER(fileParams=deepcopy(splconf), logger=logger)
splist.append(splitter)
splitter.start()
splitter.join()
logger.info("\n"+"="*50+"\n\tFINITO!!!\n"+"="*50)

View File

@@ -1,64 +0,0 @@
{
"INworkPath": "D:\\Test\\",
"OUTworkPath": "D:\\Test\\Separati\\",
"OUTnameFormat":"TEST_{docnum}_{year:04d}{month:02d}{day:02d}_{title}.txt",
"docStruct": {
"docSep": "\\s*Copyright [(0-9)]+",
"dateFormat":"{month} {day:d}, {year:d}{}",
"dateWords": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"headWords": [
"BYLINE:",
"SECTION:",
"LENGTH:",
"DATELINE:",
"HIGHLIGHT:",
"Email:"
],
"tailWords": [
"Newstex ID" ,
"NOTES",
"LANGUAGE:",
"GRAPHIC:",
"TYPE:",
"URL:",
"LOAD-DATE:",
"PUBLICATION-TYPE:",
"DOCUMENT-TYPE:",
"CHARTS:",
"JOURNAL-CODE:"
]
},
"settings": {
"encoding": "utf-8",
"monthPosition": 0,
"getNewsPaperName": true,
"nameNotFoundStr" : "--ND--",
"includeTitle" : true,
"removeDuplicates": true,
"showSkipped": false,
"showRemovedDuplicates": true,
"maxTitleLen": 32,
"loadTXT": true,
"loadDOCX": false,
"removeOldFiles":true,
"saveSeparateFiles": true,
"saveBodyFile": true,
"saveBodyNumber":true,
"delLF": false,
"delWordBreak": true,
"delChars": "'|@|#"
}
}

View File

@@ -1,61 +0,0 @@
{
"INworkPath": "C:\\Test\\",
"OUTworkPath": "C:\\Test\\Separati\\",
"OUTnameFormat":"TEST_{docnum}_{year:04d}{month:02d}{day:02d}_{papername}_{title}.txt",
"docStruct": {
"docSep": "Copyright [(0-9)]+",
"dateFormat":"{day:d} {month} {year:d} {}",
"dateWords": [
"Gennaio",
"Febbraio",
"Marzo",
"Aprile",
"Maggio",
"Giugno",
"Luglio",
"Agosto",
"Settembre",
"Ottobre",
"Novembre",
"Dicembre"
],
"headWords": [
"BYLINE:",
"SECTION:",
"LENGTH:",
"DATELINE:",
"HIGHLIGHT:",
"Email:"
],
"tailWords": [
"LANGUAGE:",
"GRAPHIC:",
"TYPE:",
"URL:",
"LOAD-DATE:",
"PUBLICATION-TYPE:",
"DOCUMENT-TYPE:",
"CHARTS:"
]
},
"settings": {
"encoding": "utf-8",
"monthPosition": 0,
"getNewsPaperName": true,
"nameNotFoundStr" : "--ND--",
"includeTitle" : true,
"removeDuplicates": true,
"showSkipped": false,
"showRemovedDuplicates": true,
"maxTitleLen": 32,
"loadTXT": true,
"loadDOCX": false,
"removeOldFiles":true,
"saveSeparateFiles": true,
"saveBodyFile": true,
"saveBodyNumber":true,
"delLF": false,
"delWordBreak": true,
"delChars": "'|@|#"
}
}