163 Commits

Author SHA1 Message Date
05fdd158c9 cambiato script compilazine risorse 2020-04-10 11:23:48 +02:00
4df965745b aggiunta cartella script 2020-04-10 11:13:52 +02:00
96684996bc tr anche sui fle di libreria 2020-04-09 14:23:08 +02:00
606571de2c tr su tutto guimain 2020-04-09 14:11:22 +02:00
518b1441e8 inizio lavoro per traduzione interfacce e messaggi di debug
cosa lunghissima
2020-04-07 15:42:51 +02:00
9eab141909 modifiche compilatore interfaccia 2020-04-07 15:05:45 +02:00
01e16f62db ricostruito file risorse e ricompilate interfacce 2020-04-07 15:00:01 +02:00
2444de7816 nuova riorganizzazione file 2020-04-07 14:51:03 +02:00
cbd4432596 primo tentativo di traduzione 2020-04-07 14:47:43 +02:00
40df527f3a riorganizzazione dei file 2020-04-07 14:47:29 +02:00
0977d72506 aggiunte icone e finestra about, testo da integrare 2020-04-07 12:46:16 +02:00
emanuele
223e7cd9e1 rilascio versione 1.3b Linux 2020-04-03 10:56:43 +02:00
emanuele
3352b47dc7 aggiornato gitignore 2020-04-03 10:54:16 +02:00
38c12a27fa rilascio versione 1.3b Windows 2020-04-03 10:44:14 +02:00
ca32e12f43 aggiornato pydevproject 2020-04-03 10:40:56 +02:00
f47282bb29 corretto problema versione file e ricompilate interfacce 2020-04-03 10:40:18 +02:00
b83e978303 corrette ancora configurazione 2020-04-02 18:56:59 +02:00
a43d6c172f corretto file configurazione linux 2020-04-02 18:54:41 +02:00
emanuele
94b7ab59d5 buildata versione 1.3 per linux 2020-04-02 18:37:20 +02:00
emanuele
1cd4490275 pulite cartelle tuxbuild 2020-04-02 18:34:49 +02:00
18597dfbbf Compilata versione 1.3 pronta alla release 2020-04-02 18:28:55 +02:00
7ffce8cdfd Merge branch 'gui-devel' of https://git.etss.it/12Parsec/bananaSPLIT.git into gui-devel 2020-04-02 18:26:29 +02:00
7237a8be40 versione definitiva interfaccia, pronta per buildare i pacchetti 2020-04-02 18:26:06 +02:00
emanuele
b3cc5689aa ricompilato eseguible linux 2020-04-02 17:38:33 +02:00
0e1697d98b ridotto ancora 2020-04-02 17:34:53 +02:00
6d6e3aa7c5 provo a ridurre dimensioni verticali interfaccia 2020-04-02 17:32:13 +02:00
emanuele
6314efb5f5 corretto linux builfile 2020-04-02 17:30:45 +02:00
emanuele
4884f2659e Merge branch 'gui-devel' of https://git.etss.it/12Parsec/bananaSPLIT.git into gui-devel 2020-04-02 16:51:14 +02:00
emanuele
029860f2f2 ricompilato eseguibile linux 2020-04-02 16:51:00 +02:00
140e24edce ricompilato .exe 2020-04-02 15:45:43 +02:00
6eed7b25df eliminata icona sbagliata 2020-04-02 15:43:57 +02:00
emanuele
e000b438ec corretto path di uscita 2020-04-02 15:40:40 +02:00
200565e4c7 non va bene tenere nella stessa cartella le build win e linux mannaggina 2020-04-02 15:17:50 +02:00
emanuele
e994e3850c buildfiles per linux 2020-04-02 15:11:03 +02:00
e1ac0f05a0 cosine 2020-04-02 14:39:45 +02:00
7eb7c0f4a4 aggiunti i file buildati come exe unico 2020-04-01 16:10:18 +02:00
45cb777024 i build tools funzionano! 2020-04-01 16:08:15 +02:00
c149d97e8b corretti livelli debug 2020-04-01 14:56:12 +02:00
fbf8719591 spaziate giuste le cose 2020-04-01 14:52:36 +02:00
44f358a08b finestra dei messaggi attiva con il log 2020-04-01 14:49:44 +02:00
ca21aa3d44 cose 2020-04-01 13:15:31 +02:00
31accbd0b8 correzioni interfaccia 2020-04-01 12:27:07 +02:00
d2c77e4da3 elimate configurazioni farlocche 2020-04-01 12:13:23 +02:00
00ed797b24 ricompilate interfacce titolo 2020-04-01 12:07:15 +02:00
186ce10a3e opzioni avanzate globali funzionanti 2020-04-01 12:06:58 +02:00
187df248dd integrate la finestra opzioni avanzate 2020-03-31 12:48:00 +02:00
0cf019be47 sostituita finestra opzioni avanzate 2020-03-31 12:36:40 +02:00
cbc097a4d2 marcata release 1.2 2020-03-31 12:28:51 +02:00
2f95c01a78 ricompilate interfacce 2020-03-31 12:27:19 +02:00
8ace2fb17d tutte le finestre hanno le icone al loro posto 2020-03-31 12:27:06 +02:00
5fad4be476 aggiunti file di risorse e icone 2020-03-31 11:54:12 +02:00
14590b511f modifica file configurazione default 2020-03-31 11:53:24 +02:00
038b838c04 aggiornato gitignore 2020-03-31 11:53:12 +02:00
07641d702c prima versione funzionante con i file nuovi
corretto errore unicode, rimosso body dal contenuto del file, potrebbe
rimanere il problema della chiave 'year'
2020-03-30 18:12:53 +02:00
65bb3a925d aggiornato .gitignore per escludere build 2020-03-30 17:30:08 +02:00
174a8f7e9c errore unicode 2020-03-30 17:25:12 +02:00
3978569e35 prima versione funzionante con il nuovo tipo di file!! yuppi! 2020-03-30 16:15:59 +02:00
955ac56e34 porca mucca! era solo una lettera accentata nel commento di python che
mandava in crisi l'interprete!!!!
2020-03-30 15:08:19 +02:00
6d43c564b8 non riesco a provare le modifiche, il debugger di python mi prende per
il culo
2020-03-30 14:52:09 +02:00
989aa755dd ricompilate interfacce 2020-03-30 13:17:08 +02:00
5725c14b83 selezione della versione del file, filtraggio tipo per txt 2020-03-30 13:16:56 +02:00
83f3a1f629 prima della prima prova della nuova versione 2020-03-30 13:01:32 +02:00
33fd392725 prima della prima prova per la nuova versione 2020-03-30 13:01:12 +02:00
af7e783f35 prima versione per parsare il nuovo file 2020-03-30 12:39:03 +02:00
9cc01bd911 aggiunto convertitore di docx 2020-03-30 12:25:14 +02:00
3e9088389b piccola modifica interfaccia 2020-03-27 16:47:33 +01:00
397c631c2a cosine 2020-03-27 16:47:17 +01:00
0093026d49 funziona con i runnable che non sono dei veri thread ma vanno bene lo
stesso


unico problema e' che non si possono inviare i segnali dai runnable, ci
devo guardare
2020-03-25 17:42:21 +01:00
bd6b6421ec funziona senza os.chdir 2020-03-25 16:35:33 +01:00
232108a6f4 forse tolti tutti i os.chdir 2020-03-25 16:28:07 +01:00
a2400ccdbc continua a funzionare ma solo con un thread per volta
devo togliere os.chdir e usare i percorsi assoluti, altrimenti si
confonde perche' cambia la dir globalmente
2020-03-25 16:20:02 +01:00
d9bea99092 FUNZIONAAAAAAAAAA!!!!! 2020-03-25 15:18:51 +01:00
d06cb0c7c4 cose 2020-03-25 12:30:15 +01:00
8f1a67c608 fixati bug minori
pronto per il test.. ma dopo pranzo
2020-03-25 12:30:02 +01:00
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
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
Giulia
da0eb61e2d inizio pagina avanzate per ordine nome file 2019-11-24 15:11:35 +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
9e62197eba sistemato dettagli opzioni 2019-11-10 14:16:24 +01:00
e3934c06d1 sistemato layout 2019-11-10 14:10:20 +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
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
94 changed files with 6482 additions and 16071 deletions

11
.gitignore vendored
View File

@@ -1,6 +1,7 @@
/.DS_Store
/.project
/.pydevproject
/org.eclipse.core.resources.prefs
.DS_Store
.settings
bananaSPLIT/build
/TestFiles/
bananaSPLIT/conf/_*.json
TestFiles
.pydevproject
.project

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 interpreter</pydev_property>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">python37</pydev_property>
</pydev_project>

View File

@@ -0,0 +1,10 @@
eclipse.preferences.version=1
encoding//bananaSPLIT/UserInterface/compiledUI/about.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/advopt.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/avanzatetitolo.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/avanzatetitolo2.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/avanzatetitolo3.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/mainwindow.py=utf-8
encoding//bananaSPLIT/UserInterface/compiledUI/resources_rc.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

View File

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

BIN
TuxBuild/bananaSPLIT Executable file

Binary file not shown.

BIN
TuxBuild/bananasplit.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,67 @@
{
"version": "v1.3b",
"paths": {
"lastUsed": "defaults.json",
"configurationPath": "./conf/",
"INworkPath": "/home/",
"OUTworkPath": "/home/",
"fileList": []
},
"docStruct": {
"fileVersNew": false,
"language": "English",
"languageIdx": 1,
"docSep": "\\s*Copyright [(0-9)]+",
"beginOfDocument": "\\s*Body",
"endOfDocument": "\\s*End of Document",
"dateFormat": "{month} {day:d}, {year:d}{}",
"outPrefix": "",
"outSuffix": "",
"outExt": ".txt",
"outDateType": "jpn",
"outNameFormat": "",
"outDate": true,
"outTitle": true,
"outNumber": true,
"numberPos": 1,
"datePos": 2,
"titlePos": 3,
"maxTitleLen": 16,
"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": {
"winW": 800,
"winH": 700,
"encoding": "windows-1252",
"monthPosition": 0,
"getNewsPaperName": true,
"nameNotFoundStr": "ND",
"includeTitle": true,
"removeDuplicates": true,
"showSkipped": false,
"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"
}

BIN
WinBuild/bananaSPLIT.exe Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,210 +0,0 @@
('D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\dist\\bananaSPLIT.exe',
True,
False,
False,
'banana.ico',
None,
False,
False,
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"><assemblyIdentity name="bananaSPLIT.exe" processorArchitecture="amd64" type="win32" version="1.0.0.0"/><dependency><dependentAssembly><assemblyIdentity language="*" name="Microsoft.Windows.Common-Controls" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" type="win32" version="6.0.0.0"/><compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"/></dependentAssembly></dependency><compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"><application><supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/><supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/><supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/><supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/><supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/></application></compatibility></assembly>',
True,
'bananaSPLIT.pkg',
[('PYZ-00.pyz',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\PYZ-00.pyz',
'PYZ'),
('struct',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\localpycos\\struct.pyo',
'PYMODULE'),
('pyimod01_os_path',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\loader\\pyimod01_os_path.pyc',
'PYMODULE'),
('pyimod02_archive',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\loader\\pyimod02_archive.pyc',
'PYMODULE'),
('pyimod03_importers',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\loader\\pyimod03_importers.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\loader\\pyiboot01_bootstrap.py',
'PYSOURCE'),
('main',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\main.py',
'PYSOURCE'),
('api-ms-win-crt-stdio-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-stdio-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-runtime-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-runtime-l1-1-0.dll',
'BINARY'),
('VCRUNTIME140.dll',
'c:\\program files\\python37\\VCRUNTIME140.dll',
'BINARY'),
('api-ms-win-crt-heap-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-heap-l1-1-0.dll',
'BINARY'),
('python37.dll', 'c:\\program files\\python37\\python37.dll', 'BINARY'),
('api-ms-win-crt-locale-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-locale-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-math-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-math-l1-1-0.dll',
'BINARY'),
('ucrtbase.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\ucrtbase.dll',
'BINARY'),
('api-ms-win-crt-string-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-string-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-convert-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-convert-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-environment-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-environment-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-filesystem-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-filesystem-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-process-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-process-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-conio-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-conio-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-time-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-time-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-namedpipe-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-namedpipe-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-rtlsupport-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-rtlsupport-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-string-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-string-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-libraryloader-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-libraryloader-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-timezone-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-timezone-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-errorhandling-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-errorhandling-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-memory-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-memory-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-processthreads-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-processthreads-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-profile-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-profile-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-file-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-file-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-console-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-console-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-file-l2-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-file-l2-1-0.dll',
'BINARY'),
('api-ms-win-core-interlocked-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-interlocked-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-localization-l1-2-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-localization-l1-2-0.dll',
'BINARY'),
('api-ms-win-core-processthreads-l1-1-1.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-processthreads-l1-1-1.dll',
'BINARY'),
('api-ms-win-core-sysinfo-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-sysinfo-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-heap-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-heap-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-synch-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-synch-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-datetime-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-datetime-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-synch-l1-2-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-synch-l1-2-0.dll',
'BINARY'),
('api-ms-win-core-handle-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-handle-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-file-l1-2-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-file-l1-2-0.dll',
'BINARY'),
('api-ms-win-core-util-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-util-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-debug-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-debug-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-processenvironment-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-processenvironment-l1-1-0.dll',
'BINARY'),
('_ssl', 'c:\\program files\\python37\\DLLs\\_ssl.pyd', 'EXTENSION'),
('unicodedata',
'c:\\program files\\python37\\DLLs\\unicodedata.pyd',
'EXTENSION'),
('pyexpat', 'c:\\program files\\python37\\DLLs\\pyexpat.pyd', 'EXTENSION'),
('_hashlib', 'c:\\program files\\python37\\DLLs\\_hashlib.pyd', 'EXTENSION'),
('_bz2', 'c:\\program files\\python37\\DLLs\\_bz2.pyd', 'EXTENSION'),
('_lzma', 'c:\\program files\\python37\\DLLs\\_lzma.pyd', 'EXTENSION'),
('_socket', 'c:\\program files\\python37\\DLLs\\_socket.pyd', 'EXTENSION'),
('select', 'c:\\program files\\python37\\DLLs\\select.pyd', 'EXTENSION'),
('_ctypes', 'c:\\program files\\python37\\DLLs\\_ctypes.pyd', 'EXTENSION'),
('_contextvars',
'c:\\program files\\python37\\DLLs\\_contextvars.pyd',
'EXTENSION'),
('_decimal', 'c:\\program files\\python37\\DLLs\\_decimal.pyd', 'EXTENSION'),
('libcrypto-1_1-x64.dll',
'c:\\program files\\python37\\DLLs\\libcrypto-1_1-x64.dll',
'BINARY'),
('libssl-1_1-x64.dll',
'c:\\program files\\python37\\DLLs\\libssl-1_1-x64.dll',
'BINARY'),
('api-ms-win-crt-utility-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-utility-l1-1-0.dll',
'BINARY'),
('text_unidecode\\data.bin',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\text_unidecode\\data.bin',
'DATA'),
('base_library.zip',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\base_library.zip',
'DATA'),
('bananaSPLIT.exe.manifest',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\bananaSPLIT.exe.exe.manifest',
'BINARY'),
('pyi-windows-manifest-filename bananaSPLIT.exe.manifest', '', 'OPTION')],
[],
False,
False,
1563704332,
[('run.exe',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\bootloader\\Windows-64bit\\run.exe',
'EXECUTABLE')])

View File

@@ -1,202 +0,0 @@
('D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\PKG-00.pkg',
{'BINARY': 1,
'DATA': 1,
'EXECUTABLE': 1,
'EXTENSION': 1,
'PYMODULE': 1,
'PYSOURCE': 1,
'PYZ': 0},
[('PYZ-00.pyz',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\PYZ-00.pyz',
'PYZ'),
('struct',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\localpycos\\struct.pyo',
'PYMODULE'),
('pyimod01_os_path',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\loader\\pyimod01_os_path.pyc',
'PYMODULE'),
('pyimod02_archive',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\loader\\pyimod02_archive.pyc',
'PYMODULE'),
('pyimod03_importers',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\loader\\pyimod03_importers.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\PyInstaller\\loader\\pyiboot01_bootstrap.py',
'PYSOURCE'),
('main',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\main.py',
'PYSOURCE'),
('api-ms-win-crt-stdio-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-stdio-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-runtime-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-runtime-l1-1-0.dll',
'BINARY'),
('VCRUNTIME140.dll',
'c:\\program files\\python37\\VCRUNTIME140.dll',
'BINARY'),
('api-ms-win-crt-heap-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-heap-l1-1-0.dll',
'BINARY'),
('python37.dll', 'c:\\program files\\python37\\python37.dll', 'BINARY'),
('api-ms-win-crt-locale-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-locale-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-math-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-math-l1-1-0.dll',
'BINARY'),
('ucrtbase.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\ucrtbase.dll',
'BINARY'),
('api-ms-win-crt-string-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-string-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-convert-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-convert-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-environment-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-environment-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-filesystem-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-filesystem-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-process-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-process-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-conio-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-conio-l1-1-0.dll',
'BINARY'),
('api-ms-win-crt-time-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-time-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-namedpipe-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-namedpipe-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-rtlsupport-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-rtlsupport-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-string-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-string-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-libraryloader-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-libraryloader-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-timezone-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-timezone-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-errorhandling-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-errorhandling-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-memory-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-memory-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-processthreads-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-processthreads-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-profile-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-profile-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-file-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-file-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-console-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-console-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-file-l2-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-file-l2-1-0.dll',
'BINARY'),
('api-ms-win-core-interlocked-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-interlocked-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-localization-l1-2-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-localization-l1-2-0.dll',
'BINARY'),
('api-ms-win-core-processthreads-l1-1-1.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-processthreads-l1-1-1.dll',
'BINARY'),
('api-ms-win-core-sysinfo-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-sysinfo-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-heap-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-heap-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-synch-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-synch-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-datetime-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-datetime-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-synch-l1-2-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-synch-l1-2-0.dll',
'BINARY'),
('api-ms-win-core-handle-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-handle-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-file-l1-2-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-file-l1-2-0.dll',
'BINARY'),
('api-ms-win-core-util-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-util-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-debug-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-core-debug-l1-1-0.dll',
'BINARY'),
('api-ms-win-core-processenvironment-l1-1-0.dll',
'C:/Program '
'Files/Java/jre1.8.0_211/bin\\api-ms-win-core-processenvironment-l1-1-0.dll',
'BINARY'),
('_ssl', 'c:\\program files\\python37\\DLLs\\_ssl.pyd', 'EXTENSION'),
('unicodedata',
'c:\\program files\\python37\\DLLs\\unicodedata.pyd',
'EXTENSION'),
('pyexpat', 'c:\\program files\\python37\\DLLs\\pyexpat.pyd', 'EXTENSION'),
('_hashlib', 'c:\\program files\\python37\\DLLs\\_hashlib.pyd', 'EXTENSION'),
('_bz2', 'c:\\program files\\python37\\DLLs\\_bz2.pyd', 'EXTENSION'),
('_lzma', 'c:\\program files\\python37\\DLLs\\_lzma.pyd', 'EXTENSION'),
('_socket', 'c:\\program files\\python37\\DLLs\\_socket.pyd', 'EXTENSION'),
('select', 'c:\\program files\\python37\\DLLs\\select.pyd', 'EXTENSION'),
('_ctypes', 'c:\\program files\\python37\\DLLs\\_ctypes.pyd', 'EXTENSION'),
('_contextvars',
'c:\\program files\\python37\\DLLs\\_contextvars.pyd',
'EXTENSION'),
('_decimal', 'c:\\program files\\python37\\DLLs\\_decimal.pyd', 'EXTENSION'),
('libcrypto-1_1-x64.dll',
'c:\\program files\\python37\\DLLs\\libcrypto-1_1-x64.dll',
'BINARY'),
('libssl-1_1-x64.dll',
'c:\\program files\\python37\\DLLs\\libssl-1_1-x64.dll',
'BINARY'),
('api-ms-win-crt-utility-l1-1-0.dll',
'C:/Program Files/Java/jre1.8.0_211/bin\\api-ms-win-crt-utility-l1-1-0.dll',
'BINARY'),
('text_unidecode\\data.bin',
'C:\\Users\\Emanuele '
'Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\text_unidecode\\data.bin',
'DATA'),
('base_library.zip',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\base_library.zip',
'DATA'),
('bananaSPLIT.exe.manifest',
'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT\\build\\bananaSPLIT.exe\\bananaSPLIT.exe.exe.manifest',
'BINARY'),
('pyi-windows-manifest-filename bananaSPLIT.exe.manifest', '', 'OPTION')],
False,
False,
False)

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity name="bananaSPLIT.exe" processorArchitecture="amd64" type="win32" version="1.0.0.0"/>
<dependency>
<dependentAssembly>
<assemblyIdentity language="*" name="Microsoft.Windows.Common-Controls" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" type="win32" version="6.0.0.0"/>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"/>
</dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

View File

@@ -1,33 +0,0 @@
This file lists modules PyInstaller was not able to find. This does not
necessarily mean this module is required for running you program. Python and
Python 3rd-party packages include a lot of conditional or optional module. For
example the module 'ntpath' only exists on Windows, whereas the module
'posixpath' only exists on Posix systems.
Types if import:
* top-level: imported at the top-level - look at these first
* conditional: imported within an if-statement
* delayed: imported from within a function
* optional: imported within a try-except-statement
IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
yourself tracking down the missing module. Thanks!
missing module named resource - imported by posix (top-level), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named posix - imported by os (conditional, optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named _posixsubprocess - imported by subprocess (conditional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named org - imported by pickle (optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named readline - imported by cmd (delayed, conditional, optional), code (delayed, conditional, optional), pdb (delayed, optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named _winreg - imported by platform (delayed, optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named _scproxy - imported by urllib.request (conditional)
missing module named java - imported by platform (delayed), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named 'java.lang' - imported by platform (delayed, optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level), xml.sax._exceptions (conditional)
missing module named vms_lib - imported by platform (delayed, conditional, optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named termios - imported by tty (top-level), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level), getpass (optional)
missing module named grp - imported by shutil (optional), tarfile (optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level)
missing module named pwd - imported by posixpath (delayed, conditional), shutil (optional), tarfile (optional), http.server (delayed, optional), webbrowser (delayed), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level), netrc (delayed, conditional), getpass (delayed)
missing module named 'org.python' - imported by copy (optional), D:\Emanuele\Documenti\workspace\bananaSPLIT\bananaSPLIT\main.py (top-level), xml.sax (delayed, conditional)
missing module named htmlentitydefs - imported by slugify.slugify (optional)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,67 @@
{
"version": "v1.3b",
"paths": {
"lastUsed": "defaults.json",
"configurationPath": "./conf/",
"INworkPath": "C://",
"OUTworkPath": "C://",
"fileList": []
},
"docStruct": {
"fileVersNew": false,
"language": "English",
"languageIdx": 1,
"docSep": "\\s*Copyright [(0-9)]+",
"beginOfDocument": "\\s*Body",
"endOfDocument": "\\s*End of Document",
"dateFormat": "{month} {day:d}, {year:d}{}",
"outPrefix": "",
"outSuffix": "",
"outExt": ".txt",
"outDateType": "jpn",
"outNameFormat": "",
"outDate": true,
"outTitle": true,
"outNumber": true,
"numberPos": 1,
"datePos": 2,
"titlePos": 3,
"maxTitleLen": 16,
"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": {
"winW": 800,
"winH": 700,
"encoding": "windows-1252",
"monthPosition": 0,
"getNewsPaperName": true,
"nameNotFoundStr": "ND",
"includeTitle": true,
"removeDuplicates": true,
"showSkipped": false,
"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"
}

Binary file not shown.

View File

@@ -1,64 +0,0 @@
{
"INworkPath": "D:\\Test\\",
"OUTworkPath": "D:\\Test\\Separati\\",
"OUTnameFormat":"BLOG_{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,62 +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":
"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,2 +1,6 @@
*.py[ocd]
build
dist
/bananaSPLIT.exe.spec
.project
.pyproject

View File

@@ -1,121 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>509</width>
<height>303</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>509</width>
<height>303</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>20</x>
<y>80</y>
<width>251</width>
<height>141</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QRadioButton" name="rad_MainbodyEFile">
<property name="text">
<string>Main body + File singoli</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_Mainbody">
<property name="text">
<string>Main body</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QLabel" name="lbl_indicazioni">
<property name="geometry">
<rect>
<x>30</x>
<y>20</y>
<width>401</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>Seleziona i file che il programma ti deve fare*chiaramente da cambiare le parole</string>
</property>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>330</x>
<y>230</y>
<width>160</width>
<height>51</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<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="text">
<string>Indietro</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_Avanti">
<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="text">
<string>Avanti</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>about</class>
<widget class="QDialog" name="about">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>768</width>
<height>640</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>768</width>
<height>640</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>768</width>
<height>640</height>
</size>
</property>
<property name="windowTitle">
<string>About SPEx</string>
</property>
<property name="windowIcon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-info-80.png</normaloff>:/ico/icons/icons8-info-80.png</iconset>
</property>
<property name="modal">
<bool>true</bool>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>128</width>
<height>128</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="resources/resources.qrc">:/ico/icons/logo.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>150</x>
<y>10</y>
<width>601</width>
<height>621</height>
</rect>
</property>
<property name="text">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:7pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:20pt; font-weight:600;&quot;&gt;About SPEx&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;Versione {ver}&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;SPEx (Split Parse &amp;amp; Extract) e' un tool, utile ai linguisti che devono costruire un corpus, che ha come funzione principale dividere e ripulire da elementi non necessari raccolte di &amp;quot;articoli&amp;quot; scaricati da database online quali &lt;/span&gt;&lt;span style=&quot; font-size:12pt; font-style:italic;&quot;&gt;LexisNexis&lt;/span&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;Pui tranquillamente suggerire SPEx ad un tuo collega, ci fa molto piacere! Ricordati solo di mandarci (o farci mandare) una mail con scopo e impressioni di utilizzo: questo ci aiuta a tenere traccia di quanti ricercatori stanno usando SPEx e pensare a sviluppi futuri di questo tool. &lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;SPEx non e' soggetto ad alcun tipo di licenza e viene distribuito senza alcuna garanzia.&lt;br /&gt;Essendo un progetto &amp;quot;del tempo libero&amp;quot;, bug e proposte di espansione verranno sicuramente presi in considerazione ma non possiamo dirvi nulla riguardo alle tempistiche.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;Contatti:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;12parsec.software@gmail.com&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;Download:&lt;br /&gt;&lt;/span&gt;&lt;a href=&quot;https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</widget>
<resources>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>editconf</class>
<widget class="QDialog" name="editconf">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>500</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>500</height>
</size>
</property>
<property name="windowTitle">
<string>Opzioni Avanzate</string>
</property>
<property name="windowIcon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-smartphone-ram-100.png</normaloff>:/ico/icons/icons8-smartphone-ram-100.png</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>ATTENZIONE!! Quello che scrivi qui potrebbe rompere tutto!</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::NoTextInteraction</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Da grandi poteri derivano grandi responsabilita'</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPlainTextEdit" name="txt_confFile">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<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>
<widget class="QPushButton" name="btn_cancel">
<property name="text">
<string>Cancel</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>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

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,259 @@
<?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>524</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>
<property name="windowIcon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-smartphone-ram-100.png</normaloff>:/ico/icons/icons8-smartphone-ram-100.png</iconset>
</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>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -0,0 +1,66 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'about.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_about(object):
def setupUi(self, about):
about.setObjectName("about")
about.setEnabled(True)
about.resize(768, 640)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(about.sizePolicy().hasHeightForWidth())
about.setSizePolicy(sizePolicy)
about.setMinimumSize(QtCore.QSize(768, 640))
about.setMaximumSize(QtCore.QSize(768, 640))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-info-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
about.setWindowIcon(icon)
about.setModal(True)
self.label = QtWidgets.QLabel(about)
self.label.setGeometry(QtCore.QRect(10, 10, 128, 128))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
self.label.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label.setText("")
self.label.setPixmap(QtGui.QPixmap(":/ico/icons/logo.png"))
self.label.setScaledContents(True)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(about)
self.label_2.setGeometry(QtCore.QRect(150, 10, 601, 621))
self.label_2.setTextFormat(QtCore.Qt.RichText)
self.label_2.setWordWrap(True)
self.label_2.setObjectName("label_2")
self.retranslateUi(about)
QtCore.QMetaObject.connectSlotsByName(about)
def retranslateUi(self, about):
_translate = QtCore.QCoreApplication.translate
about.setWindowTitle(_translate("about", "About SPEx"))
self.label_2.setText(_translate("about", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:20pt; font-weight:600;\">About SPEx<br /></span><span style=\" font-size:12pt;\">Versione {ver}</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">SPEx (Split Parse &amp; Extract) e\' un tool, utile ai linguisti che devono costruire un corpus, che ha come funzione principale dividere e ripulire da elementi non necessari raccolte di &quot;articoli&quot; scaricati da database online quali </span><span style=\" font-size:12pt; font-style:italic;\">LexisNexis</span><span style=\" font-size:12pt;\">.</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">Pui tranquillamente suggerire SPEx ad un tuo collega, ci fa molto piacere! Ricordati solo di mandarci (o farci mandare) una mail con scopo e impressioni di utilizzo: questo ci aiuta a tenere traccia di quanti ricercatori stanno usando SPEx e pensare a sviluppi futuri di questo tool. </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">SPEx non e\' soggetto ad alcun tipo di licenza e viene distribuito senza alcuna garanzia.<br />Essendo un progetto &quot;del tempo libero&quot;, bug e proposte di espansione verranno sicuramente presi in considerazione ma non possiamo dirvi nulla riguardo alle tempistiche.</span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">Contatti:</span><br /><span style=\" font-size:10pt;\">12parsec.software@gmail.com</span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">Download:<br /></span><a href=\"https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8\"><span style=\" text-decoration: underline; color:#0000ff;\">https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8</span></a></p></body></html>"))
import resources_rc

View File

@@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'advopt.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_editconf(object):
def setupUi(self, editconf):
editconf.setObjectName("editconf")
editconf.resize(600, 500)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(editconf.sizePolicy().hasHeightForWidth())
editconf.setSizePolicy(sizePolicy)
editconf.setMinimumSize(QtCore.QSize(600, 500))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-smartphone-ram-100.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
editconf.setWindowIcon(icon)
self.verticalLayout = QtWidgets.QVBoxLayout(editconf)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(editconf)
font = QtGui.QFont()
font.setPointSize(12)
self.label.setFont(font)
self.label.setTextFormat(QtCore.Qt.PlainText)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setWordWrap(True)
self.label.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.label_2 = QtWidgets.QLabel(editconf)
font = QtGui.QFont()
font.setPointSize(10)
self.label_2.setFont(font)
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName("label_2")
self.verticalLayout.addWidget(self.label_2)
self.txt_confFile = QtWidgets.QPlainTextEdit(editconf)
font = QtGui.QFont()
font.setPointSize(11)
self.txt_confFile.setFont(font)
self.txt_confFile.setObjectName("txt_confFile")
self.verticalLayout.addWidget(self.txt_confFile)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.btn_cancel = QtWidgets.QPushButton(editconf)
self.btn_cancel.setObjectName("btn_cancel")
self.horizontalLayout.addWidget(self.btn_cancel)
self.btn_ok = QtWidgets.QPushButton(editconf)
self.btn_ok.setObjectName("btn_ok")
self.horizontalLayout.addWidget(self.btn_ok)
self.verticalLayout.addLayout(self.horizontalLayout)
self.retranslateUi(editconf)
QtCore.QMetaObject.connectSlotsByName(editconf)
def retranslateUi(self, editconf):
_translate = QtCore.QCoreApplication.translate
editconf.setWindowTitle(_translate("editconf", "Opzioni Avanzate"))
self.label.setText(_translate("editconf", "ATTENZIONE!! Quello che scrivi qui potrebbe rompere tutto!"))
self.label_2.setText(_translate("editconf", "Da grandi poteri derivano grandi responsabilita\'"))
self.btn_cancel.setText(_translate("editconf", "Cancel"))
self.btn_ok.setText(_translate("editconf", "OK"))
import resources_rc

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,160 @@
# -*- 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, 524)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(advtitolo3.sizePolicy().hasHeightForWidth())
advtitolo3.setSizePolicy(sizePolicy)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-smartphone-ram-100.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
advtitolo3.setWindowIcon(icon)
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"))
import resources_rc

View File

@@ -0,0 +1,314 @@
# -*- 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(680, 620)
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)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/ico/icons/logo2.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
mainwin.setWindowIcon(icon)
mainwin.setAnimated(False)
mainwin.setDockOptions(QtWidgets.QMainWindow.AllowTabbedDocks)
self.centralwidget = QtWidgets.QWidget(mainwin)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.label_4.setObjectName("label_4")
self.horizontalLayout_3.addWidget(self.label_4)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem)
self.label_3 = QtWidgets.QLabel(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
self.label_3.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.horizontalLayout_3.addWidget(self.label_3)
self.lbl_preset = QtWidgets.QLabel(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_preset.sizePolicy().hasHeightForWidth())
self.lbl_preset.setSizePolicy(sizePolicy)
self.lbl_preset.setObjectName("lbl_preset")
self.horizontalLayout_3.addWidget(self.lbl_preset)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem1)
self.gridLayout_2.addLayout(self.horizontalLayout_3, 2, 0, 1, 1)
self.txt_log = QtWidgets.QTextEdit(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.txt_log.sizePolicy().hasHeightForWidth())
self.txt_log.setSizePolicy(sizePolicy)
self.txt_log.setMaximumSize(QtCore.QSize(16777215, 100))
self.txt_log.setAcceptDrops(False)
self.txt_log.setAutoFillBackground(False)
self.txt_log.setStyleSheet("background-color: rgb(0,0,0);")
self.txt_log.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse)
self.txt_log.setObjectName("txt_log")
self.gridLayout_2.addWidget(self.txt_log, 4, 0, 1, 1)
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.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)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-add-folder-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_cartellasorg.setIcon(icon1)
self.btn_cartellasorg.setIconSize(QtCore.QSize(30, 30))
self.btn_cartellasorg.setFlat(True)
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)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-downloads-folder-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_cartelladest.setIcon(icon2)
self.btn_cartelladest.setIconSize(QtCore.QSize(30, 30))
self.btn_cartelladest.setFlat(True)
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 = 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.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, 1)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem2, 0, 3, 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.lst_files = QtWidgets.QListWidget(self.wgt_mainPage1)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lst_files.sizePolicy().hasHeightForWidth())
self.lst_files.setSizePolicy(sizePolicy)
self.lst_files.setMinimumSize(QtCore.QSize(0, 180))
self.lst_files.setObjectName("lst_files")
self.gridLayout.addWidget(self.lst_files, 3, 0, 1, 4)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.label_2 = QtWidgets.QLabel(self.wgt_mainPage1)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
self.label_2.setSizePolicy(sizePolicy)
self.label_2.setObjectName("label_2")
self.horizontalLayout_2.addWidget(self.label_2)
self.rad_fileNew = QtWidgets.QRadioButton(self.wgt_mainPage1)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_fileNew.sizePolicy().hasHeightForWidth())
self.rad_fileNew.setSizePolicy(sizePolicy)
self.rad_fileNew.setChecked(True)
self.rad_fileNew.setObjectName("rad_fileNew")
self.horizontalLayout_2.addWidget(self.rad_fileNew)
self.rad_fileOld = QtWidgets.QRadioButton(self.wgt_mainPage1)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_fileOld.sizePolicy().hasHeightForWidth())
self.rad_fileOld.setSizePolicy(sizePolicy)
self.rad_fileOld.setObjectName("rad_fileOld")
self.horizontalLayout_2.addWidget(self.rad_fileOld)
self.btn_avanti = QtWidgets.QPushButton(self.wgt_mainPage1)
self.btn_avanti.setMinimumSize(QtCore.QSize(100, 40))
self.btn_avanti.setMaximumSize(QtCore.QSize(80, 16777215))
font = QtGui.QFont()
font.setPointSize(11)
self.btn_avanti.setFont(font)
self.btn_avanti.setLayoutDirection(QtCore.Qt.LeftToRight)
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-arrow-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_avanti.setIcon(icon3)
self.btn_avanti.setIconSize(QtCore.QSize(25, 25))
self.btn_avanti.setFlat(False)
self.btn_avanti.setObjectName("btn_avanti")
self.horizontalLayout_2.addWidget(self.btn_avanti)
self.gridLayout.addLayout(self.horizontalLayout_2, 4, 0, 1, 4)
self.wgt_main.addTab(self.wgt_mainPage1, "")
self.gridLayout_2.addWidget(self.wgt_main, 1, 0, 1, 1)
mainwin.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(mainwin)
self.menubar.setGeometry(QtCore.QRect(0, 0, 680, 26))
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")
self.menuAbout = QtWidgets.QMenu(self.menubar)
self.menuAbout.setObjectName("menuAbout")
mainwin.setMenuBar(self.menubar)
self.actionCarica_Preset = QtWidgets.QAction(mainwin)
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-documents-folder-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionCarica_Preset.setIcon(icon4)
self.actionCarica_Preset.setIconVisibleInMenu(True)
self.actionCarica_Preset.setObjectName("actionCarica_Preset")
self.actionSalva_Preset = QtWidgets.QAction(mainwin)
icon5 = QtGui.QIcon()
icon5.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-save-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionSalva_Preset.setIcon(icon5)
self.actionSalva_Preset.setObjectName("actionSalva_Preset")
self.actionOpzioni = QtWidgets.QAction(mainwin)
self.actionOpzioni.setObjectName("actionOpzioni")
self.actionLingua = QtWidgets.QAction(mainwin)
self.actionLingua.setEnabled(False)
icon6 = QtGui.QIcon()
icon6.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-globe-earth-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionLingua.setIcon(icon6)
self.actionLingua.setObjectName("actionLingua")
self.actionAvanzate = QtWidgets.QAction(mainwin)
icon7 = QtGui.QIcon()
icon7.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-smartphone-ram-100.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionAvanzate.setIcon(icon7)
self.actionAvanzate.setObjectName("actionAvanzate")
self.actionManuale = QtWidgets.QAction(mainwin)
self.actionManuale.setEnabled(False)
icon8 = QtGui.QIcon()
icon8.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-user-manual-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionManuale.setIcon(icon8)
self.actionManuale.setObjectName("actionManuale")
self.actionAbout_SPEx = QtWidgets.QAction(mainwin)
icon9 = QtGui.QIcon()
icon9.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-info-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionAbout_SPEx.setIcon(icon9)
self.actionAbout_SPEx.setObjectName("actionAbout_SPEx")
self.bar_file.addAction(self.actionCarica_Preset)
self.bar_file.addAction(self.actionSalva_Preset)
self.menuOpzioni.addAction(self.actionAvanzate)
self.menuOpzioni.addAction(self.actionLingua)
self.menuAbout.addAction(self.actionAbout_SPEx)
self.menuAbout.addAction(self.actionManuale)
self.menubar.addAction(self.bar_file.menuAction())
self.menubar.addAction(self.menuOpzioni.menuAction())
self.menubar.addAction(self.menuAbout.menuAction())
self.retranslateUi(mainwin)
QtCore.QMetaObject.connectSlotsByName(mainwin)
def retranslateUi(self, mainwin):
_translate = QtCore.QCoreApplication.translate
mainwin.setWindowTitle(_translate("mainwin", "bananaSPLIT"))
self.label_4.setText(_translate("mainwin", "Finestra dei messaggi"))
self.label_3.setText(_translate("mainwin", "Preset corrente: "))
self.lbl_preset.setText(_translate("mainwin", "..."))
self.txt_log.setHtml(_translate("mainwin", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:6.6pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:7pt;\"><br /></p></body></html>"))
self.btn_cartellasorg.setText(_translate("mainwin", "-> "))
self.btn_cartelladest.setText(_translate("mainwin", "-> "))
self.lbl_cartellasorg.setText(_translate("mainwin", "Cartella sorgente"))
self.lbl_cartelladest.setText(_translate("mainwin", "Cartella destinazione"))
self.lbl_sorg.setText(_translate("mainwin", "..."))
self.lbl_dest.setText(_translate("mainwin", "..."))
self.label.setText(_translate("mainwin", "File disponibili per la conversione"))
self.label_2.setText(_translate("mainwin", "Versione dei File"))
self.rad_fileNew.setText(_translate("mainwin", "Nuova"))
self.rad_fileOld.setText(_translate("mainwin", "Vecchia"))
self.btn_avanti.setText(_translate("mainwin", "Avanti"))
self.wgt_main.setTabText(self.wgt_main.indexOf(self.wgt_mainPage1), _translate("mainwin", "Selezione Input"))
self.bar_file.setTitle(_translate("mainwin", "File"))
self.menuOpzioni.setTitle(_translate("mainwin", "Opzioni"))
self.menuAbout.setTitle(_translate("mainwin", "Help"))
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"))
self.actionManuale.setText(_translate("mainwin", "Manuale"))
self.actionAbout_SPEx.setText(_translate("mainwin", "About SPEx"))
import resources_rc

View File

@@ -0,0 +1,222 @@
# -*- 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(718, 573)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(selezout)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.lbl_lingua = QtWidgets.QLabel(selezout)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_lingua.sizePolicy().hasHeightForWidth())
self.lbl_lingua.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(10)
self.lbl_lingua.setFont(font)
self.lbl_lingua.setObjectName("lbl_lingua")
self.verticalLayout_2.addWidget(self.lbl_lingua)
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.verticalLayout_2.addWidget(self.line_2)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.cmb_lingua = QtWidgets.QComboBox(selezout)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.cmb_lingua.sizePolicy().hasHeightForWidth())
self.cmb_lingua.setSizePolicy(sizePolicy)
self.cmb_lingua.setFrame(True)
self.cmb_lingua.setModelColumn(0)
self.cmb_lingua.setObjectName("cmb_lingua")
self.horizontalLayout_3.addWidget(self.cmb_lingua)
spacerItem = QtWidgets.QSpacerItem(40, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem)
self.verticalLayout_2.addLayout(self.horizontalLayout_3)
self.lbl_indicazioni = QtWidgets.QLabel(selezout)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
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.verticalLayout_2.addWidget(self.lbl_indicazioni)
self.line = QtWidgets.QFrame(selezout)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.verticalLayout_2.addWidget(self.line)
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.verticalLayout_2.addLayout(self.verticalLayout)
self.lbl_indicazioni_2 = QtWidgets.QLabel(selezout)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
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.verticalLayout_2.addWidget(self.lbl_indicazioni_2)
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.verticalLayout_2.addWidget(self.line_3)
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.chk_removeDuplicates = QtWidgets.QCheckBox(selezout)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.chk_removeDuplicates.sizePolicy().hasHeightForWidth())
self.chk_removeDuplicates.setSizePolicy(sizePolicy)
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)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem1)
self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 2)
self.verticalLayout_2.addLayout(self.gridLayout)
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem2)
self.line_4 = QtWidgets.QFrame(selezout)
self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_4.setObjectName("line_4")
self.verticalLayout_2.addWidget(self.line_4)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.btn_indietro = QtWidgets.QPushButton(selezout)
self.btn_indietro.setMinimumSize(QtCore.QSize(100, 40))
self.btn_indietro.setMaximumSize(QtCore.QSize(75, 16777215))
font = QtGui.QFont()
font.setPointSize(11)
self.btn_indietro.setFont(font)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-arrow-80-back.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_indietro.setIcon(icon)
self.btn_indietro.setIconSize(QtCore.QSize(25, 25))
self.btn_indietro.setObjectName("btn_indietro")
self.horizontalLayout_2.addWidget(self.btn_indietro)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem3)
self.btn_split = QtWidgets.QPushButton(selezout)
self.btn_split.setMinimumSize(QtCore.QSize(100, 0))
self.btn_split.setMaximumSize(QtCore.QSize(16777215, 40))
font = QtGui.QFont()
font.setPointSize(12)
self.btn_split.setFont(font)
self.btn_split.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.btn_split.setLayoutDirection(QtCore.Qt.LeftToRight)
self.btn_split.setAutoFillBackground(False)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/ico/icons/logo4.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_split.setIcon(icon1)
self.btn_split.setIconSize(QtCore.QSize(40, 40))
self.btn_split.setFlat(False)
self.btn_split.setObjectName("btn_split")
self.horizontalLayout_2.addWidget(self.btn_split)
self.verticalLayout_2.addLayout(self.horizontalLayout_2)
self.retranslateUi(selezout)
QtCore.QMetaObject.connectSlotsByName(selezout)
selezout.setTabOrder(self.cmb_lingua, self.rad_mainbodyEFile)
selezout.setTabOrder(self.rad_mainbodyEFile, self.rad_mainbody)
selezout.setTabOrder(self.rad_mainbody, self.rad_file)
selezout.setTabOrder(self.rad_file, self.chk_removeDuplicates)
selezout.setTabOrder(self.chk_removeDuplicates, self.chk_includeTitle)
selezout.setTabOrder(self.chk_includeTitle, self.chk_removeBreakWord)
selezout.setTabOrder(self.chk_removeBreakWord, self.chk_cleaDestFolder)
selezout.setTabOrder(self.chk_cleaDestFolder, self.lin_specialChars)
selezout.setTabOrder(self.lin_specialChars, self.btn_split)
selezout.setTabOrder(self.btn_split, self.btn_indietro)
def retranslateUi(self, selezout):
_translate = QtCore.QCoreApplication.translate
selezout.setWindowTitle(_translate("selezout", "Seleziona Linuga e Output"))
self.lbl_lingua.setText(_translate("selezout", "Seleziona la lingua degli articoli"))
self.lbl_indicazioni.setText(_translate("selezout", "Seleziona il tipo di file da salvare"))
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_indicazioni_2.setText(_translate("selezout", "Altre Opzioni "))
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_indietro.setText(_translate("selezout", "Indietro"))
self.btn_split.setText(_translate("selezout", "SPLITTA!"))
import resources_rc

View File

@@ -0,0 +1,340 @@
# -*- 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(715, 567)
self.gridLayout = QtWidgets.QGridLayout(titolo)
self.gridLayout.setObjectName("gridLayout")
self.lyt_nchars = QtWidgets.QHBoxLayout()
self.lyt_nchars.setSizeConstraint(QtWidgets.QLayout.SetNoConstraint)
self.lyt_nchars.setObjectName("lyt_nchars")
self.lbl_ncarat = QtWidgets.QLabel(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_ncarat.sizePolicy().hasHeightForWidth())
self.lbl_ncarat.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.lbl_ncarat.setFont(font)
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, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.lyt_nchars.addItem(spacerItem)
self.gridLayout.addLayout(self.lyt_nchars, 5, 0, 1, 3)
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.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.lyt_buttons = QtWidgets.QHBoxLayout()
self.lyt_buttons.setObjectName("lyt_buttons")
self.btn_avanzate = QtWidgets.QPushButton(titolo)
self.btn_avanzate.setMinimumSize(QtCore.QSize(120, 40))
font = QtGui.QFont()
font.setPointSize(11)
self.btn_avanzate.setFont(font)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-smartphone-ram-100.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_avanzate.setIcon(icon)
self.btn_avanzate.setIconSize(QtCore.QSize(30, 30))
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)
self.btn_indietro.setMinimumSize(QtCore.QSize(100, 40))
font = QtGui.QFont()
font.setPointSize(11)
self.btn_indietro.setFont(font)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-arrow-80-back.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_indietro.setIcon(icon1)
self.btn_indietro.setIconSize(QtCore.QSize(25, 25))
self.btn_indietro.setObjectName("btn_indietro")
self.horizontalLayout_2.addWidget(self.btn_indietro)
self.btn_avanti = QtWidgets.QPushButton(titolo)
self.btn_avanti.setMinimumSize(QtCore.QSize(100, 40))
font = QtGui.QFont()
font.setPointSize(11)
self.btn_avanti.setFont(font)
self.btn_avanti.setLayoutDirection(QtCore.Qt.LeftToRight)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-arrow-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_avanti.setIcon(icon2)
self.btn_avanti.setIconSize(QtCore.QSize(25, 25))
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, 15, 0, 1, 3)
self.lyt_date = QtWidgets.QVBoxLayout()
self.lyt_date.setObjectName("lyt_date")
self.rad_datajpn = QtWidgets.QRadioButton(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_datajpn.sizePolicy().hasHeightForWidth())
self.rad_datajpn.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.rad_datajpn.setFont(font)
self.rad_datajpn.setChecked(True)
self.rad_datajpn.setObjectName("rad_datajpn")
self.lyt_date.addWidget(self.rad_datajpn)
self.rad_dataita = QtWidgets.QRadioButton(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_dataita.sizePolicy().hasHeightForWidth())
self.rad_dataita.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.rad_dataita.setFont(font)
self.rad_dataita.setObjectName("rad_dataita")
self.lyt_date.addWidget(self.rad_dataita)
self.rad_datausa = QtWidgets.QRadioButton(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_datausa.sizePolicy().hasHeightForWidth())
self.rad_datausa.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.rad_datausa.setFont(font)
self.rad_datausa.setObjectName("rad_datausa")
self.lyt_date.addWidget(self.rad_datausa)
self.gridLayout.addLayout(self.lyt_date, 3, 0, 1, 3)
self.lbl_impotit = QtWidgets.QLabel(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_impotit.sizePolicy().hasHeightForWidth())
self.lbl_impotit.setSizePolicy(sizePolicy)
self.lbl_impotit.setMinimumSize(QtCore.QSize(0, 0))
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.chk_data = QtWidgets.QCheckBox(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.chk_data.sizePolicy().hasHeightForWidth())
self.chk_data.setSizePolicy(sizePolicy)
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)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem2, 9, 1, 1, 1)
self.chk_titolo = QtWidgets.QCheckBox(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.chk_titolo.sizePolicy().hasHeightForWidth())
self.chk_titolo.setSizePolicy(sizePolicy)
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.lyt_sep = QtWidgets.QFormLayout()
self.lyt_sep.setObjectName("lyt_sep")
self.rad_spazio = QtWidgets.QRadioButton(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_spazio.sizePolicy().hasHeightForWidth())
self.rad_spazio.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.rad_spazio.setFont(font)
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)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_virgola.sizePolicy().hasHeightForWidth())
self.rad_virgola.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.rad_virgola.setFont(font)
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)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_piu.sizePolicy().hasHeightForWidth())
self.rad_piu.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.rad_piu.setFont(font)
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)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_tratt.sizePolicy().hasHeightForWidth())
self.rad_tratt.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
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)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_trattbass.sizePolicy().hasHeightForWidth())
self.rad_trattbass.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.rad_trattbass.setFont(font)
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)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.rad_altro.sizePolicy().hasHeightForWidth())
self.rad_altro.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.rad_altro.setFont(font)
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)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lin_altro.sizePolicy().hasHeightForWidth())
self.lin_altro.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(9)
self.lin_altro.setFont(font)
self.lin_altro.setText("")
self.lin_altro.setObjectName("lin_altro")
self.horizontalLayout_4.addWidget(self.lin_altro)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_4.addItem(spacerItem3)
self.lyt_sep.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_4)
self.gridLayout.addLayout(self.lyt_sep, 9, 0, 1, 1)
self.label = QtWidgets.QLabel(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(10)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 8, 0, 1, 2)
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, 14, 0, 1, 3)
self.chk_docnum = QtWidgets.QCheckBox(titolo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.chk_docnum.sizePolicy().hasHeightForWidth())
self.chk_docnum.setSizePolicy(sizePolicy)
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)
spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem4, 13, 0, 1, 1)
self.retranslateUi(titolo)
QtCore.QMetaObject.connectSlotsByName(titolo)
titolo.setTabOrder(self.chk_data, self.rad_datajpn)
titolo.setTabOrder(self.rad_datajpn, self.rad_dataita)
titolo.setTabOrder(self.rad_dataita, self.rad_datausa)
titolo.setTabOrder(self.rad_datausa, self.chk_titolo)
titolo.setTabOrder(self.chk_titolo, self.spn_ncarat)
titolo.setTabOrder(self.spn_ncarat, self.chk_docnum)
titolo.setTabOrder(self.chk_docnum, self.rad_spazio)
titolo.setTabOrder(self.rad_spazio, self.rad_tratt)
titolo.setTabOrder(self.rad_tratt, self.rad_virgola)
titolo.setTabOrder(self.rad_virgola, self.rad_trattbass)
titolo.setTabOrder(self.rad_trattbass, self.rad_piu)
titolo.setTabOrder(self.rad_piu, self.rad_altro)
titolo.setTabOrder(self.rad_altro, self.lin_altro)
titolo.setTabOrder(self.lin_altro, self.btn_avanzate)
titolo.setTabOrder(self.btn_avanzate, self.btn_avanti)
titolo.setTabOrder(self.btn_avanti, self.btn_indietro)
def retranslateUi(self, titolo):
_translate = QtCore.QCoreApplication.translate
titolo.setWindowTitle(_translate("titolo", "Nomi file di Uscita"))
self.lbl_ncarat.setText(_translate("titolo", "Numero di caratteri"))
self.btn_avanzate.setText(_translate("titolo", "Avanzate Titolo"))
self.btn_indietro.setText(_translate("titolo", "Indietro"))
self.btn_avanti.setText(_translate("titolo", "Avanti"))
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.lbl_impotit.setText(_translate("titolo", "Impostazioni nome file in uscita"))
self.chk_data.setText(_translate("titolo", "Data"))
self.chk_titolo.setText(_translate("titolo", "Titolo articolo"))
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:"))
self.label.setText(_translate("titolo", "Separatore"))
self.chk_docnum.setText(_translate("titolo", "Numero documento"))
import resources_rc

View File

@@ -1,164 +1,533 @@
<?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>519</width>
<height>391</height>
<width>680</width>
<height>620</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="windowIcon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/logo2.png</normaloff>:/ico/icons/logo2.png</iconset>
</property>
<property name="animated">
<bool>false</bool>
</property>
<property name="dockOptions">
<set>QMainWindow::AllowTabbedDocks</set>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>20</x>
<y>110</y>
<width>131</width>
<height>71</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lbl_cartellasorg">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Cartella sorgente</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Finestra dei messaggi</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<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>
<item>
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Preset corrente: </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_preset">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>...</string>
</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="4" column="0">
<widget class="QTextEdit" name="txt_log">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>100</height>
</size>
</property>
<property name="acceptDrops">
<bool>false</bool>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(0,0,0);</string>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:6.6pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:7pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textInteractionFlags">
<set>Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QTabWidget" name="wgt_main">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<widget class="QWidget" name="wgt_mainPage1">
<attribute name="title">
<string>Selezione Input</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<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>-&gt; </string>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-add-folder-80.png</normaloff>:/ico/icons/icons8-add-folder-80.png</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="flat">
<bool>true</bool>
</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>-&gt; </string>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-downloads-folder-80.png</normaloff>:/ico/icons/icons8-downloads-folder-80.png</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lbl_cartellasorg">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Cartella sorgente</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_cartelladest">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Cartella destinazione</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="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="0" column="3">
<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="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>File disponibili per la conversione</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="3" column="0" colspan="4">
<widget class="QListWidget" name="lst_files">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>180</height>
</size>
</property>
</widget>
</item>
<item row="4" column="0" colspan="4">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Versione dei File</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_fileNew">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Nuova</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rad_fileOld">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Vecchia</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_avanti">
<property name="minimumSize">
<size>
<width>100</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>Avanti</string>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-arrow-80.png</normaloff>:/ico/icons/icons8-arrow-80.png</iconset>
</property>
<property name="iconSize">
<size>
<width>25</width>
<height>25</height>
</size>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_cartelladest">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Cartella destinazione</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_2">
<property name="geometry">
<rect>
<x>150</x>
<y>110</y>
<width>34</width>
<height>71</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QPushButton" name="btn_cartellasorg">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_cartelladest">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>491</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>20</x>
<y>180</y>
<width>421</width>
<height>80</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QCheckBox" name="chk_predefinita">
<property name="text">
<string>Rendi predefinite le cartelle</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_avanti">
<property name="minimumSize">
<size>
<width>79</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>79</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Avanti</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QPushButton" name="btn_opzioni">
<property name="geometry">
<rect>
<x>420</x>
<y>300</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>Opzioni</string>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>519</width>
<height>21</height>
<width>680</width>
<height>26</height>
</rect>
</property>
<widget class="QMenu" name="menuBananaSplit">
<property name="nativeMenuBar">
<bool>true</bool>
</property>
<widget class="QMenu" name="bar_file">
<property name="title">
<string>BananaSplit</string>
<string>File</string>
</property>
<addaction name="actionCarica_Preset"/>
<addaction name="actionSalva_Preset"/>
</widget>
<addaction name="menuBananaSplit"/>
<widget class="QMenu" name="menuOpzioni">
<property name="title">
<string>Opzioni</string>
</property>
<addaction name="actionAvanzate"/>
<addaction name="actionLingua"/>
</widget>
<widget class="QMenu" name="menuAbout">
<property name="title">
<string>Help</string>
</property>
<addaction name="actionAbout_SPEx"/>
<addaction name="actionManuale"/>
</widget>
<addaction name="bar_file"/>
<addaction name="menuOpzioni"/>
<addaction name="menuAbout"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionCarica_Preset">
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-documents-folder-80.png</normaloff>:/ico/icons/icons8-documents-folder-80.png</iconset>
</property>
<property name="text">
<string>Carica Preset</string>
</property>
<property name="iconVisibleInMenu">
<bool>true</bool>
</property>
</action>
<action name="actionSalva_Preset">
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-save-80.png</normaloff>:/ico/icons/icons8-save-80.png</iconset>
</property>
<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="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-globe-earth-80.png</normaloff>:/ico/icons/icons8-globe-earth-80.png</iconset>
</property>
<property name="text">
<string>Lingua Interfaccia</string>
</property>
</action>
<action name="actionAvanzate">
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-smartphone-ram-100.png</normaloff>:/ico/icons/icons8-smartphone-ram-100.png</iconset>
</property>
<property name="text">
<string>Avanzate</string>
</property>
</action>
<action name="actionManuale">
<property name="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-user-manual-80.png</normaloff>:/ico/icons/icons8-user-manual-80.png</iconset>
</property>
<property name="text">
<string>Manuale</string>
</property>
</action>
<action name="actionAbout_SPEx">
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-info-80.png</normaloff>:/ico/icons/icons8-info-80.png</iconset>
</property>
<property name="text">
<string>About SPEx</string>
</property>
</action>
</widget>
<resources/>
<resources>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

View File

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,208 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="Layer_1"
enable-background="new 0 0 128 128"
height="512"
viewBox="0 0 128 128"
width="512"
wtx-context="F86C4D92-0EC1-47EF-86DD-02B0FF6FC0F2"
version="1.1"
sodipodi:docname="logo.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
inkscape:export-filename="D:\Emanuele\Desktop\logo.png"
inkscape:export-xdpi="16.113119"
inkscape:export-ydpi="16.113119">
<metadata
id="metadata3841">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3839" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2048"
inkscape:window-height="1089"
id="namedview3837"
showgrid="false"
inkscape:zoom="1.65625"
inkscape:cx="166.98005"
inkscape:cy="273.36472"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer4"
fit-margin-left="4"
fit-margin-right="4"
fit-margin-top="4"
fit-margin-bottom="4"
inkscape:showpageshadow="true"
borderlayer="false"
inkscape:pagecheckerboard="false" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Base"
transform="translate(-3.0544992,13.8475)" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
style="display:inline"
transform="translate(-3.0544992,13.8475)" />
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="cornice"
transform="translate(-3.0544992,13.8475)">
<g
id="g5072"
transform="matrix(1.0516192,0,0,1.0516192,-0.24913006,-17.151129)">
<g
transform="translate(2.0004992,2.0005)"
id="g3784"
style="fill:#b3b3b3">
<path
d="m 20.599,34.749 c -3.314,0 -6,2.686 -6,6 v 59.526 H 28.133 V 34.749 Z"
id="path3780"
inkscape:connector-curvature="0"
style="fill:#b3b3b3" />
<path
d="m 103.4,34.749 h -7.533 v 65.526 H 109.4 V 40.749 c 0,-3.314 -2.686,-6 -6,-6 z"
id="path3782"
inkscape:connector-curvature="0"
style="fill:#b3b3b3" />
</g>
<g
transform="translate(2.0004992,2.0005)"
id="g3790"
style="fill:#d4fbff">
<path
d="m 23.627,43.586 c -1.105,0 -2,0.895 -2,2 v 54.688 h 6.506 V 43.586 Z"
id="path3786"
inkscape:connector-curvature="0" />
<path
d="m 100.372,43.586 h -4.505 v 56.688 h 6.505 V 45.586 c 0,-1.105 -0.896,-2 -2,-2 z"
id="path3788"
inkscape:connector-curvature="0" />
</g>
<path
d="m 5.0544992,102.2745 v 3.933 c 0,3.283 2.662,5.945 5.9449998,5.945 H 116.9995 c 3.284,0 5.946,-2.662 5.946,-5.945 v -3.933 z"
id="path3792"
inkscape:connector-curvature="0"
style="fill:#b3b3b3" />
<path
d="m 44.948499,102.2745 v 1.991 c 0,1.662 1.347,3.009 3.009,3.009 h 32.083 c 1.662,0 3.01,-1.348 3.01,-3.009 v -1.991 z"
id="path3794"
inkscape:connector-curvature="0"
style="fill:#333333" />
<path
style="fill:#000000"
d="m 23.627499,88.7865 c 0.552,0 1,-0.447 1,-1 v -8.583 c 0,-0.553 -0.448,-1 -1,-1 -0.552,0 -1,0.447 -1,1 v 8.583 c 0,0.553 0.448,1 1,1 z"
id="path3812"
inkscape:connector-curvature="0" />
<g
transform="translate(2.0009982,2.0015)"
id="g4900"
style="display:inline">
<path
style="fill:#fff6d5"
inkscape:connector-curvature="0"
id="path3798"
d="m 95.866501,100.274 h -67.734 V 15.847 c 0,-1.105 0.895,-2 2,-2 h 63.734 c 1.105,0 2,0.895 2,2 z" />
<path
style="fill:#ffffff"
inkscape:connector-curvature="0"
id="path3810"
d="M 93.867,13.847 H 30.133 c -1.105,0 -2,0.896 -2,2 v 3 c 0,-1.104 0.895,-2 2,-2 h 63.734 c 1.105,0 2,0.896 2,2 v -3 c 0,-1.105 -0.895,-2 -2,-2 z" />
<g
inkscape:transform-center-y="-0.90566035"
inkscape:transform-center-x="-0.15094336"
id="g4755"
transform="rotate(-27.912106,55.191764,87.13912)">
<g
id="g3808">
<path
d="m 35.335,86.238 12.218,6.498 v -13 z"
id="path3800"
inkscape:connector-curvature="0"
style="fill:#ffd7e5" />
<g
id="g3804">
<path
d="m 47.553,92.736 v -13 h 38.353 c 1.524,0 2.759,1.235 2.759,2.759 v 7.483 c 0,1.524 -1.235,2.759 -2.759,2.759 z"
id="path3802"
inkscape:connector-curvature="0"
style="fill:#0089ef" />
</g>
<path
d="m 82.256,92.736 h 3.65 c 1.524,0 2.759,-1.235 2.759,-2.759 v -7.483 c 0,-1.524 -1.235,-2.759 -2.759,-2.759 h -3.65 z"
id="path3806"
inkscape:connector-curvature="0"
style="fill:#fa759e" />
</g>
<path
inkscape:connector-curvature="0"
id="path3818"
d="M 85.906,78.736 H 47.553 c -0.164,0 -0.325,0.04 -0.47,0.117 l -12.218,6.502 c -0.326,0.174 -0.53,0.514 -0.53,0.883 0,0.37 0.204,0.709 0.53,0.883 l 12.218,6.498 c 0.145,0.077 0.306,0.117 0.47,0.117 h 38.353 c 2.073,0 3.759,-1.687 3.759,-3.759 v -7.482 c 0,-2.072 -1.686,-3.759 -3.759,-3.759 z m -46.663,6.556 7.31,-3.89 v 9.67 l -7.31,-3.888 z m 9.31,-4.556 h 32.703 v 11 H 48.553 Z m 39.112,9.242 c 0,0.97 -0.789,1.759 -1.759,1.759 h -2.65 v -11 h 2.65 c 0.97,0 1.759,0.789 1.759,1.759 z"
style="fill:#000000" />
</g>
<path
style="fill:#000000"
d="m 88.664501,59.69168 h -53.33 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 53.33 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 z"
id="path3820"
inkscape:connector-curvature="0" />
<path
style="fill:#000000"
d="m 88.664501,52.18224 h -53.33 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 53.33 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 z"
id="path3822"
inkscape:connector-curvature="0" />
<path
style="fill:#000000"
d="m 88.664501,44.672812 h -53.33 c -0.552,0 -1,0.447 -1,1 0,0.553 0.448,1 1,1 h 53.33 c 0.552,0 1,-0.447 1,-1 0,-0.553 -0.448,-1 -1,-1 z"
id="path3824"
inkscape:connector-curvature="0" />
<flowRoot
xml:space="preserve"
id="flowRoot4741"
style="font-style:normal;font-weight:normal;font-size:80px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(0.31783415,0,0,0.34751085,-16.965817,-12.556068)"><flowRegion
id="flowRegion4743"
style="font-size:85.33333588px;text-align:center;text-anchor:middle"><rect
id="rect4745"
width="234.26414"
height="97.20755"
x="129.81133"
y="76.679245"
style="font-size:85.33333588px;text-align:center;text-anchor:middle" /></flowRegion><flowPara
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Comic Sans MS';-inkscape-font-specification:'Comic Sans MS'"
id="flowPara4747">SPEx</flowPara></flowRoot> </g>
<path
style="fill:#000000"
d="m 122.9465,101.2745 h -10.546 v -58.525 c 0,-3.859 -3.14,-7 -7,-7 h -6.533001 v -17.902 c 0,-1.654 -1.346,-3 -3,-3 h -63.734 c -1.654,0 -3,1.346 -3,3 v 17.902 h -6.534 c -3.86,0 -7,3.141 -7,7 v 58.525 H 5.0544992 c -0.552,0 -1,0.447 -1,1 v 3.934 c 0,3.829 3.116,6.944 6.9449998,6.944 H 116.9995 c 3.83,0 6.946,-3.115 6.946,-6.944 v -3.934 c 0.001,-0.552 -0.447,-1 -0.999,-1 z m -17.546,-63.525 c 2.757,0 5,2.243 5,5 v 58.525 h -5.028 v -53.688 c 0,-1.654 -1.346,-3 -3,-3 h -3.504001 v -6.837 z m -6.533001,63.525 v -54.688 h 3.504001 c 0.551,0 1,0.448 1,1 v 53.688 z m -67.734,-83.427 c 0,-0.552 0.449,-1 1,-1 h 63.734 c 0.551,0 1,0.448 1,1 v 83.428 h -65.734 z m -13.534,24.902 c 0,-2.757 2.243,-5 5,-5 h 6.534 v 6.837 h -3.506 c -1.654,0 -3,1.346 -3,3 v 27.284 c 0,0.553 0.448,1 1,1 0.552,0 1,-0.447 1,-1 v -27.284 c 0,-0.552 0.449,-1 1,-1 h 3.506 v 54.688 h -4.506 v -9.321 c 0,-0.553 -0.448,-1 -1,-1 -0.552,0 -1,0.447 -1,1 v 9.321 h -5.028 z m 104.347001,63.459 c 0,2.727 -2.219,4.944 -4.946,4.944 H 11.000499 c -2.7269998,0 -4.9449998,-2.218 -4.9449998,-4.944 v -2.934 H 121.9475 v 2.934 z"
id="path3814"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,246 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="Layer_1"
enable-background="new 0 0 128 128"
height="512"
viewBox="0 0 128 128"
width="512"
wtx-context="F86C4D92-0EC1-47EF-86DD-02B0FF6FC0F2"
version="1.1"
sodipodi:docname="logo2.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
inkscape:export-filename="D:\Emanuele\Desktop\logo.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<metadata
id="metadata3841">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3839">
<marker
inkscape:stockid="Tail"
orient="auto"
refY="0.0"
refX="0.0"
id="Tail"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g5307"
transform="scale(-1.2)"
style="stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1">
<path
id="path5295"
d="M -3.8048674,-3.9585227 L 0.54352094,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5297"
d="M -1.2866832,-3.9585227 L 3.0617053,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5299"
d="M 1.3053582,-3.9585227 L 5.6537466,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5301"
d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5303"
d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5305"
d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleOutL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5401"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8)" />
</marker>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2048"
inkscape:window-height="1089"
id="namedview3837"
showgrid="false"
inkscape:zoom="1.65625"
inkscape:cx="60.627703"
inkscape:cy="262.26623"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer4"
fit-margin-left="4"
fit-margin-right="4"
fit-margin-top="4"
fit-margin-bottom="4"
inkscape:showpageshadow="true"
borderlayer="false"
inkscape:pagecheckerboard="false" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Base"
transform="translate(-3.0544992,13.8475)"
style="display:inline" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
style="display:inline"
transform="translate(-3.0544992,13.8475)" />
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="cornice"
transform="translate(-3.0544992,13.8475)"
style="display:inline">
<g
style="fill:#b3b3b3"
id="g3784"
transform="matrix(1.0516192,0,0,1.0516192,1.8546333,-15.047365)">
<path
style="fill:#b3b3b3"
inkscape:connector-curvature="0"
id="path3780"
d="m 20.599,34.749 c -3.314,0 -6,2.686 -6,6 v 59.526 H 28.133 V 34.749 Z" />
<path
style="fill:#b3b3b3"
inkscape:connector-curvature="0"
id="path3782"
d="m 103.4,34.749 h -7.533 v 65.526 H 109.4 V 40.749 c 0,-3.314 -2.686,-6 -6,-6 z" />
</g>
<g
style="fill:#d4fbff"
id="g3790"
transform="matrix(1.0516192,0,0,1.0516192,1.8546333,-15.047365)">
<path
inkscape:connector-curvature="0"
id="path3786"
d="m 23.627,43.586 c -1.105,0 -2,0.895 -2,2 v 54.688 h 6.506 V 43.586 Z" />
<path
inkscape:connector-curvature="0"
id="path3788"
d="m 100.372,43.586 h -4.505 v 56.688 h 6.505 V 45.586 c 0,-1.105 -0.896,-2 -2,-2 z" />
</g>
<path
style="fill:#b3b3b3;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3792"
d="m 5.0662783,90.402699 v 4.136018 c 0,3.452466 2.7994104,6.251873 6.2518757,6.251873 H 122.78979 c 3.45352,0 6.25293,-2.799407 6.25293,-6.251873 v -4.136018 z" />
<path
style="fill:#333333;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3794"
d="m 47.019574,90.402699 v 2.093774 c 0,1.747791 1.416532,3.164322 3.164323,3.164322 h 33.739098 c 1.747792,0 3.165374,-1.417583 3.165374,-3.164322 v -2.093774 z" />
<path
inkscape:connector-curvature="0"
id="path3812"
d="m 24.598002,76.218459 c 0.580493,0 1.051619,-0.470074 1.051619,-1.051619 v -9.026048 c 0,-0.581545 -0.471126,-1.051619 -1.051619,-1.051619 -0.580494,0 -1.05162,0.470074 -1.05162,1.051619 v 9.026048 c 0,0.581545 0.471126,1.051619 1.05162,1.051619 z"
style="fill:#000000;stroke-width:1.05161917" />
<path
style="fill:#fff6d5;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3798"
d="M 103.78075,90.403751 H 32.550379 V 1.6186965 c 0,-1.16203925 0.941199,-2.10323844 2.103239,-2.10323844 h 67.023892 c 1.16204,0 2.10324,0.94119919 2.10324,2.10323844 z" />
<path
style="fill:#ffffff;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3810"
d="M 100.5675,-0.48454194 H 33.543599 c -1.162039,0 -2.103238,0.94225081 -2.103238,2.10323844 v 3.1548576 c 0,-1.1609876 0.941199,-2.1032384 2.103238,-2.1032384 H 100.5675 c 1.16204,0 2.10324,0.9422508 2.10324,2.1032384 V 1.6186965 c 0,-1.16203925 -0.9412,-2.10323844 -2.10324,-2.10323844 z" />
<path
inkscape:connector-curvature="0"
id="path3814"
d="M 129.04377,89.35108 H 117.95339 V 27.805066 c 0,-4.058199 -3.30208,-7.361334 -7.36133,-7.361334 h -6.87023 V 1.6176447 c 0,-1.73937818 -1.41548,-3.1548576 -3.15486,-3.1548576 H 33.543074 c -1.739378,0 -3.154857,1.41547942 -3.154857,3.1548576 V 20.443732 h -6.87128 c -4.05925,0 -7.361334,3.303135 -7.361334,7.361334 V 89.35108 H 5.0662783 c -0.5804938,0 -1.0516192,0.470073 -1.0516192,1.051619 v 4.13707 c 0,4.02665 3.2768455,7.302441 7.3034949,7.302441 H 122.78979 c 4.0277,0 7.30455,-3.275791 7.30455,-7.302441 v -4.13707 c 0.001,-0.580494 -0.47008,-1.051619 -1.05057,-1.051619 z M 110.59206,22.54697 c 2.89931,0 5.2581,2.358782 5.2581,5.258096 V 89.35108 h -5.28755 V 32.891748 c 0,-1.739378 -1.41548,-3.154858 -3.15485,-3.154858 h -3.68488 v -7.18992 z m -6.87023,66.80411 V 31.840129 h 3.68487 c 0.57945,0 1.05162,0.471125 1.05162,1.051619 V 89.35108 Z M 32.491455,1.6176447 c 0,-0.5804938 0.472177,-1.05161923 1.051619,-1.05161923 h 67.023896 c 0.57944,0 1.05162,0.47112543 1.05162,1.05161923 V 89.352131 H 32.491455 Z M 18.258841,27.805066 c 0,-2.899314 2.358782,-5.258096 5.258096,-5.258096 h 6.87128 v 7.18992 H 26.70124 c -1.739378,0 -3.154858,1.41548 -3.154858,3.154858 v 28.692378 c 0,0.581546 0.471126,1.05162 1.05162,1.05162 0.580493,0 1.051619,-0.470074 1.051619,-1.05162 V 32.891748 c 0,-0.580494 0.472177,-1.051619 1.051619,-1.051619 h 3.686977 V 89.35108 h -4.738596 v -9.802143 c 0,-0.581545 -0.471126,-1.051619 -1.051619,-1.051619 -0.580494,0 -1.05162,0.470074 -1.05162,1.051619 V 89.35108 H 18.258841 Z M 127.99215,94.539769 c 0,2.867765 -2.33354,5.199205 -5.20131,5.199205 H 11.319206 c -2.8677655,0 -5.2002568,-2.332491 -5.2002568,-5.199205 V 91.454318 H 127.9932 v 3.085451 z"
style="fill:#000000;stroke-width:1.05161917" />
<path
style="opacity:1;fill:none;stroke:#000000;stroke-width:2.49649167;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2.49649167, 4.99298335;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
d="M 32.223715,44.304248 H 101.91448"
id="path5125"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:2.04627848;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 67.054498,3.4852214 59.868359,14.333186 h 14.37228 z"
id="path5646"
inkscape:connector-curvature="0"
inkscape:transform-center-x="-0.18649858"
inkscape:transform-center-y="-0.58474122"
sodipodi:nodetypes="cccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:2.04627848;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 67.0545,85.123281 74.240639,74.275316 H 59.868359 Z"
id="path5646-9"
inkscape:connector-curvature="0"
inkscape:transform-center-x="0.18649842"
inkscape:transform-center-y="0.58474078"
sodipodi:nodetypes="cccc" />
<g
inkscape:transform-center-y="0.31961283"
inkscape:transform-center-x="-1.9014658"
id="g4755"
transform="matrix(0.64709712,-0.82895613,0.82895613,0.64709712,-46.659907,40.916248)">
<g
id="g3808">
<path
d="m 35.335,86.238 12.218,6.498 v -13 z"
id="path3800"
inkscape:connector-curvature="0"
style="fill:#ffd7e5" />
<g
id="g3804">
<path
d="m 47.553,92.736 v -13 h 38.353 c 1.524,0 2.759,1.235 2.759,2.759 v 7.483 c 0,1.524 -1.235,2.759 -2.759,2.759 z"
id="path3802"
inkscape:connector-curvature="0"
style="fill:#0089ef" />
</g>
<path
d="m 82.256,92.736 h 3.65 c 1.524,0 2.759,-1.235 2.759,-2.759 v -7.483 c 0,-1.524 -1.235,-2.759 -2.759,-2.759 h -3.65 z"
id="path3806"
inkscape:connector-curvature="0"
style="fill:#fa759e" />
</g>
<path
inkscape:connector-curvature="0"
id="path3818"
d="M 85.906,78.736 H 47.553 c -0.164,0 -0.325,0.04 -0.47,0.117 l -12.218,6.502 c -0.326,0.174 -0.53,0.514 -0.53,0.883 0,0.37 0.204,0.709 0.53,0.883 l 12.218,6.498 c 0.145,0.077 0.306,0.117 0.47,0.117 h 38.353 c 2.073,0 3.759,-1.687 3.759,-3.759 v -7.482 c 0,-2.072 -1.686,-3.759 -3.759,-3.759 z m -46.663,6.556 7.31,-3.89 v 9.67 l -7.31,-3.888 z m 9.31,-4.556 h 32.703 v 11 H 48.553 Z m 39.112,9.242 c 0,0.97 -0.789,1.759 -1.759,1.759 h -2.65 v -11 h 2.65 c 0.97,0 1.759,0.789 1.759,1.759 z"
style="fill:#000000" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,248 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="Layer_1"
enable-background="new 0 0 128 128"
height="512"
viewBox="0 0 128 128"
width="512"
wtx-context="F86C4D92-0EC1-47EF-86DD-02B0FF6FC0F2"
version="1.1"
sodipodi:docname="logo3.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
inkscape:export-filename="D:\Emanuele\Desktop\logo2.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<metadata
id="metadata3841">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3839">
<marker
inkscape:stockid="Tail"
orient="auto"
refY="0.0"
refX="0.0"
id="Tail"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g5307"
transform="scale(-1.2)"
style="stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1">
<path
id="path5295"
d="M -3.8048674,-3.9585227 L 0.54352094,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5297"
d="M -1.2866832,-3.9585227 L 3.0617053,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5299"
d="M 1.3053582,-3.9585227 L 5.6537466,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5301"
d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5303"
d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5305"
d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleOutL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5401"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8)" />
</marker>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2048"
inkscape:window-height="1089"
id="namedview3837"
showgrid="false"
inkscape:zoom="0.828125"
inkscape:cx="-269.30873"
inkscape:cy="247.65489"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer4"
fit-margin-left="4"
fit-margin-right="4"
fit-margin-top="4"
fit-margin-bottom="4"
inkscape:showpageshadow="true"
borderlayer="false"
inkscape:pagecheckerboard="false" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Base"
transform="translate(-3.0544992,13.8475)"
style="display:inline" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
style="display:inline"
transform="translate(-3.0544992,13.8475)" />
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="cornice"
transform="translate(-3.0544992,13.8475)"
style="display:inline">
<g
style="fill:#b3b3b3"
id="g3784"
transform="matrix(1.0516192,0,0,1.0516192,1.8546333,-15.047365)">
<path
style="fill:#b3b3b3"
inkscape:connector-curvature="0"
id="path3780"
d="m 20.599,34.749 c -3.314,0 -6,2.686 -6,6 v 59.526 H 28.133 V 34.749 Z" />
<path
style="fill:#b3b3b3"
inkscape:connector-curvature="0"
id="path3782"
d="m 103.4,34.749 h -7.533 v 65.526 H 109.4 V 40.749 c 0,-3.314 -2.686,-6 -6,-6 z" />
</g>
<g
style="fill:#d4fbff"
id="g3790"
transform="matrix(1.0516192,0,0,1.0516192,1.8546333,-15.047365)">
<path
inkscape:connector-curvature="0"
id="path3786"
d="m 23.627,43.586 c -1.105,0 -2,0.895 -2,2 v 54.688 h 6.506 V 43.586 Z" />
<path
inkscape:connector-curvature="0"
id="path3788"
d="m 100.372,43.586 h -4.505 v 56.688 h 6.505 V 45.586 c 0,-1.105 -0.896,-2 -2,-2 z" />
</g>
<path
style="fill:#b3b3b3;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3792"
d="m 5.0662783,90.402699 v 4.136018 c 0,3.452466 2.7994104,6.251873 6.2518757,6.251873 H 122.78979 c 3.45352,0 6.25293,-2.799407 6.25293,-6.251873 v -4.136018 z" />
<path
style="fill:#333333;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3794"
d="m 47.019574,90.402699 v 2.093774 c 0,1.747791 1.416532,3.164322 3.164323,3.164322 h 33.739098 c 1.747792,0 3.165374,-1.417583 3.165374,-3.164322 v -2.093774 z" />
<path
inkscape:connector-curvature="0"
id="path3812"
d="m 24.598002,76.218459 c 0.580493,0 1.051619,-0.470074 1.051619,-1.051619 v -9.026048 c 0,-0.581545 -0.471126,-1.051619 -1.051619,-1.051619 -0.580494,0 -1.05162,0.470074 -1.05162,1.051619 v 9.026048 c 0,0.581545 0.471126,1.051619 1.05162,1.051619 z"
style="fill:#000000;stroke-width:1.05161917" />
<path
style="fill:#fff6d5;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3798"
d="M 103.78075,90.403751 H 32.550379 V 1.6186965 c 0,-1.16203925 0.941199,-2.10323844 2.103239,-2.10323844 h 67.023892 c 1.16204,0 2.10324,0.94119919 2.10324,2.10323844 z" />
<path
style="fill:#ffffff;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3810"
d="M 100.5675,-0.48454194 H 33.543599 c -1.162039,0 -2.103238,0.94225081 -2.103238,2.10323844 v 3.1548576 c 0,-1.1609876 0.941199,-2.1032384 2.103238,-2.1032384 H 100.5675 c 1.16204,0 2.10324,0.9422508 2.10324,2.1032384 V 1.6186965 c 0,-1.16203925 -0.9412,-2.10323844 -2.10324,-2.10323844 z" />
<path
inkscape:connector-curvature="0"
id="path3814"
d="M 129.04377,89.35108 H 117.95339 V 27.805066 c 0,-4.058199 -3.30208,-7.361334 -7.36133,-7.361334 h -6.87023 V 1.6176447 c 0,-1.73937818 -1.41548,-3.1548576 -3.15486,-3.1548576 H 33.543074 c -1.739378,0 -3.154857,1.41547942 -3.154857,3.1548576 V 20.443732 h -6.87128 c -4.05925,0 -7.361334,3.303135 -7.361334,7.361334 V 89.35108 H 5.0662783 c -0.5804938,0 -1.0516192,0.470073 -1.0516192,1.051619 v 4.13707 c 0,4.02665 3.2768455,7.302441 7.3034949,7.302441 H 122.78979 c 4.0277,0 7.30455,-3.275791 7.30455,-7.302441 v -4.13707 c 0.001,-0.580494 -0.47008,-1.051619 -1.05057,-1.051619 z M 110.59206,22.54697 c 2.89931,0 5.2581,2.358782 5.2581,5.258096 V 89.35108 h -5.28755 V 32.891748 c 0,-1.739378 -1.41548,-3.154858 -3.15485,-3.154858 h -3.68488 v -7.18992 z m -6.87023,66.80411 V 31.840129 h 3.68487 c 0.57945,0 1.05162,0.471125 1.05162,1.051619 V 89.35108 Z M 32.491455,1.6176447 c 0,-0.5804938 0.472177,-1.05161923 1.051619,-1.05161923 h 67.023896 c 0.57944,0 1.05162,0.47112543 1.05162,1.05161923 V 89.352131 H 32.491455 Z M 18.258841,27.805066 c 0,-2.899314 2.358782,-5.258096 5.258096,-5.258096 h 6.87128 v 7.18992 H 26.70124 c -1.739378,0 -3.154858,1.41548 -3.154858,3.154858 v 28.692378 c 0,0.581546 0.471126,1.05162 1.05162,1.05162 0.580493,0 1.051619,-0.470074 1.051619,-1.05162 V 32.891748 c 0,-0.580494 0.472177,-1.051619 1.051619,-1.051619 h 3.686977 V 89.35108 h -4.738596 v -9.802143 c 0,-0.581545 -0.471126,-1.051619 -1.051619,-1.051619 -0.580494,0 -1.05162,0.470074 -1.05162,1.051619 V 89.35108 H 18.258841 Z M 127.99215,94.539769 c 0,2.867765 -2.33354,5.199205 -5.20131,5.199205 H 11.319206 c -2.8677655,0 -5.2002568,-2.332491 -5.2002568,-5.199205 V 91.454318 H 127.9932 v 3.085451 z"
style="fill:#000000;stroke-width:1.05161917" />
<path
style="opacity:1;fill:none;stroke:#000000;stroke-width:2.49649167;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2.49649167, 4.99298335;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
d="M 32.223715,44.304248 H 101.91448"
id="path5125"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:2.04627848;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 67.054498,3.4852214 59.868359,14.333186 h 14.37228 z"
id="path5646"
inkscape:connector-curvature="0"
inkscape:transform-center-x="-0.18649858"
inkscape:transform-center-y="-0.58474122"
sodipodi:nodetypes="cccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:2.04627848;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 67.0545,85.123281 74.240639,74.275316 H 59.868359 Z"
id="path5646-9"
inkscape:connector-curvature="0"
inkscape:transform-center-x="0.18649842"
inkscape:transform-center-y="0.58474078"
sodipodi:nodetypes="cccc" />
<g
id="g5759"
transform="matrix(1.4525265,-0.89673033,0.89673033,1.4525265,-58.379411,28.460534)">
<circle
r="10"
cy="41.16116"
cx="58.245537"
id="path5684"
style="opacity:1;fill:#55ddff;fill-opacity:0.68016196;stroke:#ae8339;stroke-width:1.33000004;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill" />
<g
transform="translate(0.02122962)"
id="g5750">
<rect
style="opacity:1;fill:#ae8339;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect5692"
width="1.8113208"
height="1.9774349"
x="57.280914"
y="52.190239" />
<rect
style="display:inline;opacity:1;fill:#ae8339;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
id="rect5692-5"
width="2.8088591"
height="16.377359"
x="56.819878"
y="54.265705" />
</g>
<circle
r="10.75"
cy="41.16116"
cx="58.245537"
id="path5752"
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,225 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:export-filename="D:\Emanuele\Desktop\logo4.png"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="logo4.svg"
version="1.1"
wtx-context="F86C4D92-0EC1-47EF-86DD-02B0FF6FC0F2"
width="512"
viewBox="0 0 128 128"
height="512"
enable-background="new 0 0 128 128"
id="Layer_1">
<metadata
id="metadata3841">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3839">
<marker
inkscape:stockid="Tail"
orient="auto"
refY="0.0"
refX="0.0"
id="Tail"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g5307"
transform="scale(-1.2)"
style="stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1">
<path
id="path5295"
d="M -3.8048674,-3.9585227 L 0.54352094,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5297"
d="M -1.2866832,-3.9585227 L 3.0617053,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5299"
d="M 1.3053582,-3.9585227 L 5.6537466,0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5301"
d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5303"
d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
<path
id="path5305"
d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-opacity:1;fill-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleOutL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5401"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8)" />
</marker>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1361"
id="namedview3837"
showgrid="false"
inkscape:zoom="0.828125"
inkscape:cx="108.20166"
inkscape:cy="329.42857"
inkscape:window-x="2391"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="layer4"
fit-margin-left="4"
fit-margin-right="4"
fit-margin-top="4"
fit-margin-bottom="4"
inkscape:showpageshadow="true"
borderlayer="false"
inkscape:pagecheckerboard="false"
inkscape:snap-smooth-nodes="true"
inkscape:snap-object-midpoints="true" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Base"
transform="translate(-3.0544992,13.8475)"
style="display:inline" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
style="display:inline"
transform="translate(-3.0544992,13.8475)" />
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="cornice"
transform="translate(-3.0544992,13.8475)"
style="display:inline">
<g
style="fill:#b3b3b3"
id="g3784"
transform="matrix(1.0516192,0,0,1.0516192,1.8546333,-15.047365)">
<path
style="fill:#b3b3b3"
inkscape:connector-curvature="0"
id="path3780"
d="m 20.599,34.749 c -3.314,0 -6,2.686 -6,6 v 59.526 H 28.133 V 34.749 Z" />
<path
style="fill:#b3b3b3"
inkscape:connector-curvature="0"
id="path3782"
d="m 103.4,34.749 h -7.533 v 65.526 H 109.4 V 40.749 c 0,-3.314 -2.686,-6 -6,-6 z" />
</g>
<g
style="fill:#d4fbff"
id="g3790"
transform="matrix(1.0516192,0,0,1.0516192,1.8546333,-15.047365)">
<path
inkscape:connector-curvature="0"
id="path3786"
d="m 23.627,43.586 c -1.105,0 -2,0.895 -2,2 v 54.688 h 6.506 V 43.586 Z" />
<path
inkscape:connector-curvature="0"
id="path3788"
d="m 100.372,43.586 h -4.505 v 56.688 h 6.505 V 45.586 c 0,-1.105 -0.896,-2 -2,-2 z" />
</g>
<path
style="fill:#b3b3b3;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3792"
d="m 5.0662783,90.402699 v 4.136018 c 0,3.452466 2.7994104,6.251873 6.2518757,6.251873 H 122.78979 c 3.45352,0 6.25293,-2.799407 6.25293,-6.251873 v -4.136018 z" />
<path
style="fill:#333333;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3794"
d="m 47.019574,90.402699 v 2.093774 c 0,1.747791 1.416532,3.164322 3.164323,3.164322 h 33.739098 c 1.747792,0 3.165374,-1.417583 3.165374,-3.164322 v -2.093774 z" />
<path
inkscape:connector-curvature="0"
id="path3812"
d="m 24.598002,76.218459 c 0.580493,0 1.051619,-0.470074 1.051619,-1.051619 v -9.026048 c 0,-0.581545 -0.471126,-1.051619 -1.051619,-1.051619 -0.580494,0 -1.05162,0.470074 -1.05162,1.051619 v 9.026048 c 0,0.581545 0.471126,1.051619 1.05162,1.051619 z"
style="fill:#000000;stroke-width:1.05161917" />
<path
style="fill:#fff6d5;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3798"
d="M 103.78075,90.403751 H 32.550379 V 1.6186965 c 0,-1.16203925 0.941199,-2.10323844 2.103239,-2.10323844 h 67.023892 c 1.16204,0 2.10324,0.94119919 2.10324,2.10323844 z" />
<path
style="fill:#ffffff;stroke-width:1.05161917"
inkscape:connector-curvature="0"
id="path3810"
d="M 100.5675,-0.48454194 H 33.543599 c -1.162039,0 -2.103238,0.94225081 -2.103238,2.10323844 v 3.1548576 c 0,-1.1609876 0.941199,-2.1032384 2.103238,-2.1032384 H 100.5675 c 1.16204,0 2.10324,0.9422508 2.10324,2.1032384 V 1.6186965 c 0,-1.16203925 -0.9412,-2.10323844 -2.10324,-2.10323844 z" />
<path
inkscape:connector-curvature="0"
id="path3814"
d="M 129.04377,89.35108 H 117.95339 V 27.805066 c 0,-4.058199 -3.30208,-7.361334 -7.36133,-7.361334 h -6.87023 V 1.6176447 c 0,-1.73937818 -1.41548,-3.1548576 -3.15486,-3.1548576 H 33.543074 c -1.739378,0 -3.154857,1.41547942 -3.154857,3.1548576 V 20.443732 h -6.87128 c -4.05925,0 -7.361334,3.303135 -7.361334,7.361334 V 89.35108 H 5.0662783 c -0.5804938,0 -1.0516192,0.470073 -1.0516192,1.051619 v 4.13707 c 0,4.02665 3.2768455,7.302441 7.3034949,7.302441 H 122.78979 c 4.0277,0 7.30455,-3.275791 7.30455,-7.302441 v -4.13707 c 0.001,-0.580494 -0.47008,-1.051619 -1.05057,-1.051619 z M 110.59206,22.54697 c 2.89931,0 5.2581,2.358782 5.2581,5.258096 V 89.35108 h -5.28755 V 32.891748 c 0,-1.739378 -1.41548,-3.154858 -3.15485,-3.154858 h -3.68488 v -7.18992 z m -6.87023,66.80411 V 31.840129 h 3.68487 c 0.57945,0 1.05162,0.471125 1.05162,1.051619 V 89.35108 Z M 32.491455,1.6176447 c 0,-0.5804938 0.472177,-1.05161923 1.051619,-1.05161923 h 67.023896 c 0.57944,0 1.05162,0.47112543 1.05162,1.05161923 V 89.352131 H 32.491455 Z M 18.258841,27.805066 c 0,-2.899314 2.358782,-5.258096 5.258096,-5.258096 h 6.87128 v 7.18992 H 26.70124 c -1.739378,0 -3.154858,1.41548 -3.154858,3.154858 v 28.692378 c 0,0.581546 0.471126,1.05162 1.05162,1.05162 0.580493,0 1.051619,-0.470074 1.051619,-1.05162 V 32.891748 c 0,-0.580494 0.472177,-1.051619 1.051619,-1.051619 h 3.686977 V 89.35108 h -4.738596 v -9.802143 c 0,-0.581545 -0.471126,-1.051619 -1.051619,-1.051619 -0.580494,0 -1.05162,0.470074 -1.05162,1.051619 V 89.35108 H 18.258841 Z M 127.99215,94.539769 c 0,2.867765 -2.33354,5.199205 -5.20131,5.199205 H 11.319206 c -2.8677655,0 -5.2002568,-2.332491 -5.2002568,-5.199205 V 91.454318 H 127.9932 v 3.085451 z"
style="fill:#000000;stroke-width:1.05161917" />
<path
style="fill:none;stroke:#000000;stroke-width:2.04627848;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 67.054498,3.4852214 59.868359,14.333186 h 14.37228 z"
id="path5646"
inkscape:connector-curvature="0"
inkscape:transform-center-x="-0.18649858"
inkscape:transform-center-y="-0.58474122"
sodipodi:nodetypes="cccc" />
<path
style="display:inline;fill:none;stroke:#000000;stroke-width:2.04627848;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 67.0545,85.123281 74.240639,74.275316 H 59.868359 Z"
id="path5646-9"
inkscape:connector-curvature="0"
inkscape:transform-center-x="0.18649842"
inkscape:transform-center-y="0.58474078"
sodipodi:nodetypes="cccc" />
<g
id="g4643"
inkscape:label="Gear16"
transform="translate(-37.2531798,276.83566)" />
<path
style="fill:#5599ff;stroke:#000000;stroke-width:1.37054682;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 73.024624,70.291181 c -0.140925,-0.195173 -0.887647,-1.191269 -1.659419,-2.213542 l -1.403194,-1.858683 -0.270045,-2.94273 -0.270045,-2.942734 -1.296658,-0.128321 c -0.713181,-0.07057 -2.398919,-0.246815 -3.746114,-0.391647 -1.347166,-0.144835 -2.488495,-0.251542 -2.536266,-0.237126 -0.04777,0.01441 -0.460867,1.298309 -0.917991,2.853101 -0.457123,1.55479 -1.136929,3.102496 -1.510678,3.439343 -0.373747,0.336846 -1.297904,1.149902 -2.053677,1.806786 l -1.374139,1.194331 -1.550177,-0.665158 -1.550178,-0.665156 0.344897,-2.775451 c 0.327231,-2.633252 0.444013,-2.896769 2.279434,-5.143484 l 1.934536,-2.368035 -2.36812,-2.905406 c -1.430415,-1.754954 -2.532786,-2.839289 -2.783977,-2.738428 -0.22872,0.09185 -1.442165,0.67861 -2.69654,1.303942 -2.223132,1.108277 -2.352784,1.133938 -5.138516,1.017092 l -2.857839,-0.119868 -0.497248,-1.647825 -0.497248,-1.647823 2.356047,-1.71599 2.356048,-1.715989 2.83545,-0.271285 c 1.559498,-0.149206 2.885736,-0.362444 2.947192,-0.473864 0.06145,-0.111432 0.268837,-1.827914 0.460848,-3.814429 l 0.349102,-3.611852 -2.921506,-0.902676 c -2.769495,-0.85571 -3.01596,-1.012625 -4.736835,-3.01575 l -1.815332,-2.11307 0.788385,-1.469824 0.788387,-1.469826 2.837737,0.417655 c 2.673509,0.393485 2.969177,0.528135 5.108922,2.326676 1.249148,1.049961 2.407473,1.794994 2.574052,1.655627 0.166578,-0.139368 1.114425,-0.915277 2.106341,-1.724253 0.991916,-0.808978 2.194995,-1.791577 2.673486,-2.183545 l 0.870029,-0.712681 -1.395983,-2.58825 -1.395983,-2.588244 0.150734,-2.688061 0.150735,-2.688057 1.702674,-0.61598 1.702673,-0.615979 1.626913,2.20431 1.626915,2.204313 0.296557,2.837806 c 0.16308,1.560802 0.431136,2.905772 0.595637,2.988833 0.707213,0.357073 7.384891,0.827049 7.474293,0.526036 0.05416,-0.182396 0.431065,-1.454411 0.83755,-2.826695 0.669238,-2.259251 0.934814,-2.672502 2.809794,-4.372322 l 2.070707,-1.87725 1.536135,0.847626 1.536161,0.847621 -0.370166,2.704766 c -0.347758,2.541248 -0.485736,2.842118 -2.28216,4.976847 -1.393983,1.656493 -1.821173,2.394287 -1.576726,2.723117 0.184423,0.24806 1.265401,1.614113 2.402176,3.035668 1.778219,2.223722 2.148641,2.535643 2.652444,2.233721 0.322072,-0.193014 1.551378,-0.829291 2.731808,-1.413958 2.055179,-1.017929 2.259884,-1.056588 4.824753,-0.911105 l 2.678534,0.151919 0.50342,1.668281 0.503421,1.668278 -2.164589,1.621074 c -2.070661,1.550719 -2.266837,1.634052 -4.520282,1.920086 -1.295636,0.164459 -2.662578,0.313218 -3.037656,0.330577 -0.586716,0.02716 -0.722769,0.49191 -0.974118,3.328071 -0.160691,1.81308 -0.302377,3.532966 -0.314835,3.821964 -0.01564,0.362165 0.811868,0.757116 2.662829,1.270916 2.528851,0.701968 2.800306,0.872177 4.653437,2.917553 l 1.967931,2.172092 -0.826982,1.575869 -0.827008,1.575876 -2.886864,-0.51629 c -2.564302,-0.458607 -3.09507,-0.694176 -4.75025,-2.108327 -1.024857,-0.875618 -1.987838,-1.695618 -2.139992,-1.822213 -0.253217,-0.210725 -5.550847,3.878774 -5.926417,4.574905 -0.08942,0.165747 0.431483,1.439375 1.16011,2.829516 l 1.322679,2.528168 -0.135247,2.720312 -0.135273,2.720321 -1.711725,0.516529 c -1.085244,0.327484 -1.805516,0.386655 -1.967924,0.161661 z M 71.969598,48.13933 c 2.973741,-3.580241 0.739072,-9.318223 -3.850681,-9.887503 -3.362943,-0.417104 -6.369726,1.718637 -6.999673,4.971905 -0.372418,1.923443 0.773952,4.808953 2.368821,5.962328 2.69808,1.95124 6.367587,1.498374 8.481533,-1.04673 z"
id="path6588"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:none;stroke:#000000;stroke-width:2.49649167;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:2.49649167, 4.99298335;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
d="M 32.223715,44.304248 H 101.91448"
id="path5125"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,23 @@
<RCC>
<qresource prefix="ico">
<file>icons/banana.ico</file>
<file>icons/icons8-add-folder-80.png</file>
<file>icons/icons8-arrow-80.png</file>
<file>icons/icons8-arrow-80-back.png</file>
<file>icons/icons8-banana-split-80.png</file>
<file>icons/icons8-documents-folder-80.png</file>
<file>icons/icons8-downloads-folder-80.png</file>
<file>icons/icons8-globe-earth-80.png</file>
<file>icons/icons8-info-80.png</file>
<file>icons/icons8-save-80.png</file>
<file>icons/icons8-smartphone-ram-100.png</file>
<file>icons/icons8-user-manual-80.png</file>
<file>icons/logo.png</file>
<file>icons/logo2.png</file>
<file>icons/logo3.png</file>
<file>icons/logo4.png</file>
</qresource>
<qresource prefix="tr">
<file>translations/mainwindow_en.qm</file>
</qresource>
</RCC>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en" sourcelanguage="it_IT">
<context>
<name>@default</name>
<message>
<location filename="../../../guimain.py" line="41"/>
<source>Impostazioni Titolo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../guimain.py" line="42"/>
<source>Selezione Output</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../guimain.py" line="87"/>
<source>MainWindow: Configurazione non accettata</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../guimain.py" line="107"/>
<source>Prossima Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../guimain.py" line="112"/>
<source>Tab Precedente</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../guimain.py" line="116"/>
<source>Apri Carica Preset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../guimain.py" line="117"/>
<source>Carica Preset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../guimain.py" line="126"/>
<source>Riempio tutte le tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../guimain.py" line="131"/>
<source>Apri Salva Preset</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_150" sourcelanguage="it_IT">
<context>
<name>mainwin</name>
<message>
<location filename="mainwindow.ui" line="32"/>
<source>bananaSPLIT</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="58"/>
<source>Finestra dei messaggi</source>
<translation>Message Box</translation>
</message>
<message>
<location filename="mainwindow.ui" line="93"/>
<source>Preset corrente: </source>
<translation>Current Preset:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="106"/>
<location filename="mainwindow.ui" line="265"/>
<location filename="mainwindow.ui" line="272"/>
<source>...</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="149"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:6.6pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="170"/>
<source>Selezione Input</source>
<translation>Input Select</translation>
</message>
<message>
<location filename="mainwindow.ui" line="187"/>
<location filename="mainwindow.ui" line="213"/>
<source>-&gt; </source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="242"/>
<source>Cartella sorgente</source>
<translation>Source Folder</translation>
</message>
<message>
<location filename="mainwindow.ui" line="254"/>
<source>Cartella destinazione</source>
<translation>Destination Folder</translation>
</message>
<message>
<location filename="mainwindow.ui" line="308"/>
<source>File disponibili per la conversione</source>
<translation>Avalable Files</translation>
</message>
<message>
<location filename="mainwindow.ui" line="342"/>
<source>Versione dei File</source>
<translation>File Version</translation>
</message>
<message>
<location filename="mainwindow.ui" line="355"/>
<source>Nuova</source>
<translation>New</translation>
</message>
<message>
<location filename="mainwindow.ui" line="371"/>
<source>Vecchia</source>
<translation>Old</translation>
</message>
<message>
<location filename="mainwindow.ui" line="398"/>
<source>Avanti</source>
<translation>Next</translation>
</message>
<message>
<location filename="mainwindow.ui" line="437"/>
<source>File</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="444"/>
<location filename="mainwindow.ui" line="483"/>
<source>Opzioni</source>
<translation>Options</translation>
</message>
<message>
<location filename="mainwindow.ui" line="451"/>
<source>Help</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="466"/>
<source>Carica Preset</source>
<translation>Load Preset</translation>
</message>
<message>
<location filename="mainwindow.ui" line="478"/>
<source>Salva Preset</source>
<translation>Save Preset</translation>
</message>
<message>
<location filename="mainwindow.ui" line="495"/>
<source>Lingua Interfaccia</source>
<translation>Interface Language</translation>
</message>
<message>
<location filename="mainwindow.ui" line="504"/>
<source>Avanzate</source>
<translation>Advenced</translation>
</message>
<message>
<location filename="mainwindow.ui" line="516"/>
<source>Manuale</source>
<translation>User Manual</translation>
</message>
<message>
<location filename="mainwindow.ui" line="525"/>
<source>About SPEx</source>
<translation></translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,400 @@
<?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>718</width>
<height>573</height>
</rect>
</property>
<property name="windowTitle">
<string>Seleziona Linuga e Output</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="lbl_lingua">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Seleziona la lingua degli articoli</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QComboBox" name="cmb_lingua">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frame">
<bool>true</bool>
</property>
<property name="modelColumn">
<number>0</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="lbl_indicazioni">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<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>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<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>
<widget class="QLabel" name="lbl_indicazioni_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<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>
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="chk_removeDuplicates">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<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>
<item>
<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>
</item>
</layout>
</item>
<item>
<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>
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="btn_indietro">
<property name="minimumSize">
<size>
<width>100</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>75</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Indietro</string>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-arrow-80-back.png</normaloff>:/ico/icons/icons8-arrow-80-back.png</iconset>
</property>
<property name="iconSize">
<size>
<width>25</width>
<height>25</height>
</size>
</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>
<widget class="QPushButton" name="btn_split">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string>SPLITTA!</string>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/logo4.png</normaloff>:/ico/icons/logo4.png</iconset>
</property>
<property name="iconSize">
<size>
<width>40</width>
<height>40</height>
</size>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<tabstops>
<tabstop>cmb_lingua</tabstop>
<tabstop>rad_mainbodyEFile</tabstop>
<tabstop>rad_mainbody</tabstop>
<tabstop>rad_file</tabstop>
<tabstop>chk_removeDuplicates</tabstop>
<tabstop>chk_includeTitle</tabstop>
<tabstop>chk_removeBreakWord</tabstop>
<tabstop>chk_cleaDestFolder</tabstop>
<tabstop>lin_specialChars</tabstop>
<tabstop>btn_split</tabstop>
<tabstop>btn_indietro</tabstop>
</tabstops>
<resources>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -0,0 +1,591 @@
<?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>715</width>
<height>567</height>
</rect>
</property>
<property name="windowTitle">
<string>Nomi file di Uscita</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="5" column="0" colspan="3">
<layout class="QHBoxLayout" name="lyt_nchars">
<property name="sizeConstraint">
<enum>QLayout::SetNoConstraint</enum>
</property>
<item>
<widget class="QLabel" name="lbl_ncarat">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<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>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</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="1" column="0" colspan="3">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="15" column="0" colspan="3">
<layout class="QHBoxLayout" name="lyt_buttons">
<item>
<widget class="QPushButton" name="btn_avanzate">
<property name="minimumSize">
<size>
<width>120</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Avanzate Titolo</string>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-smartphone-ram-100.png</normaloff>:/ico/icons/icons8-smartphone-ram-100.png</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</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="minimumSize">
<size>
<width>100</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Indietro</string>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-arrow-80-back.png</normaloff>:/ico/icons/icons8-arrow-80-back.png</iconset>
</property>
<property name="iconSize">
<size>
<width>25</width>
<height>25</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_avanti">
<property name="minimumSize">
<size>
<width>100</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>Avanti</string>
</property>
<property name="icon">
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/icons8-arrow-80.png</normaloff>:/ico/icons/icons8-arrow-80.png</iconset>
</property>
<property name="iconSize">
<size>
<width>25</width>
<height>25</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="3" column="0" colspan="3">
<layout class="QVBoxLayout" name="lyt_date">
<item>
<widget class="QRadioButton" name="rad_datajpn">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>MM DD YYYY, es. 12 31 2000 (us)</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0" colspan="3">
<widget class="QLabel" name="lbl_impotit">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Impostazioni nome file in uscita</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="chk_data">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Data</string>
</property>
</widget>
</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>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="chk_titolo">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Titolo articolo</string>
</property>
</widget>
</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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<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>
</layout>
</item>
<item row="8" column="0" colspan="2">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Separatore</string>
</property>
</widget>
</item>
<item row="14" column="0" colspan="3">
<widget class="Line" name="line_2">
<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="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<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="13" 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>
<tabstops>
<tabstop>chk_data</tabstop>
<tabstop>rad_datajpn</tabstop>
<tabstop>rad_dataita</tabstop>
<tabstop>rad_datausa</tabstop>
<tabstop>chk_titolo</tabstop>
<tabstop>spn_ncarat</tabstop>
<tabstop>chk_docnum</tabstop>
<tabstop>rad_spazio</tabstop>
<tabstop>rad_tratt</tabstop>
<tabstop>rad_virgola</tabstop>
<tabstop>rad_trattbass</tabstop>
<tabstop>rad_piu</tabstop>
<tabstop>rad_altro</tabstop>
<tabstop>lin_altro</tabstop>
<tabstop>btn_avanzate</tabstop>
<tabstop>btn_avanti</tabstop>
<tabstop>btn_indietro</tabstop>
</tabstops>
<resources>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
<buttongroups>
<buttongroup name="btngrp_divisore"/>
</buttongroups>
</ui>

View File

@@ -1,10 +1,10 @@
# -*- mode: python -*-
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT'],
a = Analysis(['guimain.py'],
pathex=['./libbananasplit', './UserInterface/CompiledUI', 'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT'],
binaries=[],
datas=[('C:\\Users\\Emanuele Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\text_unidecode\\data.bin', '.\\text_unidecode')],
hiddenimports=[],
@@ -28,5 +28,6 @@ exe = EXE(pyz,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True , icon='banana.ico')
console=True , icon='bananasplit.ico')

View File

@@ -1,32 +1,33 @@
# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT'],
binaries=[],
datas=[('C:\\Users\\Emanuele Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\text_unidecode\\data.bin', '.\\text_unidecode')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='bananaSPLIT.exe',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True , icon='banana.ico')
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['guimain.py'],
pathex=['./libbananasplit', './UserInterface/compiledUI', '/home/emanuele/Documents/LocalEclipseWorkspace/bananaSPLIT/bananaSPLIT'],
binaries=[],
datas=[('/home/emanuele/.local/lib/python3.6/site-packages/text_unidecode/data.bin', './text_unidecode')],
hiddenimports=['mainwindow'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='bananaSPLIT',
debug=False,
bootloader_ignore_signals=False,
strip=True,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True , icon='UserInterface/icons8-banana-split-80.png')

View File

@@ -0,0 +1,68 @@
{
"version": "v1.4",
"paths": {
"lastUsed": "defaults.json",
"configurationPath": "./conf/",
"INworkPath": "C://",
"OUTworkPath": "C://",
"fileList": []
},
"docStruct": {
"fileVersNew": false,
"language": "English",
"languageIdx": 1,
"docSep": "\\s*Copyright [(0-9)]+",
"beginOfDocument": "\\s*Body",
"endOfDocument": "\\s*End of Document",
"dateFormat": "{month} {day:d}, {year:d}{}",
"outPrefix": "",
"outSuffix": "",
"outExt": ".txt",
"outDateType": "jpn",
"outNameFormat": "",
"outDate": true,
"outTitle": true,
"outNumber": true,
"numberPos": 1,
"datePos": 2,
"titlePos": 3,
"maxTitleLen": 16,
"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": {
"uiLang": "it",
"winW": 800,
"winH": 700,
"encoding": "windows-1252",
"monthPosition": 0,
"getNewsPaperName": true,
"nameNotFoundStr": "ND",
"includeTitle": true,
"removeDuplicates": true,
"showSkipped": false,
"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,67 @@
{
"version": "v1.3",
"paths": {
"lastUsed": "linux.json",
"configurationPath": "./conf/",
"INworkPath": "/home/",
"OUTworkPath": "/home/",
"fileList": []
},
"docStruct": {
"fileVersNew": false,
"language": "English",
"languageIdx": 1,
"docSep": "\\s*Copyright [(0-9)]+",
"beginOfDocument": "\\s*Body",
"endOfDocument": "\\s*End of Document",
"dateFormat": "{month} {day:d}, {year:d}{}",
"outPrefix": "",
"outSuffix": "",
"outExt": ".txt",
"outDateType": "jpn",
"outNameFormat": "",
"outDate": true,
"outTitle": true,
"outNumber": true,
"numberPos": 1,
"datePos": 2,
"titlePos": 3,
"maxTitleLen": 16,
"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": {
"winW": 800,
"winH": 700,
"encoding": "windows-1252",
"monthPosition": 0,
"getNewsPaperName": true,
"nameNotFoundStr": "ND",
"includeTitle": true,
"removeDuplicates": true,
"showSkipped": false,
"showRemovedDuplicates": false,
"loadTXT": true,
"loadDOCX": false,
"removeOldFiles": true,
"saveSeparateFiles": true,
"saveBodyFile": true,
"saveBodyNumber": true,
"delLF": false,
"delWordBreak": true,
"delChars": [
"'",
"@",
"#",
"$",
"%",
"^",
"&"
]
}
}

View File

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

View File

@@ -0,0 +1,67 @@
{
"version": "v1.3",
"paths": {
"lastUsed": "spiripacchio.json",
"configurationPath": "./conf/",
"INworkPath": "D:/Emanuele/Documenti/workspace/bananaSPLIT/TestFiles/FileBastardi",
"OUTworkPath": "H:/",
"fileList": []
},
"docStruct": {
"fileVersNew": true,
"language": "English",
"languageIdx": 1,
"docSep": "\\s*Copyright [(0-9)]+",
"beginOfDocument": "\\s*Body",
"endOfDocument": "\\s*End of Document",
"dateFormat": "{month} {day:d}, {year:d}{}",
"outPrefix": "",
"outSuffix": "",
"outExt": ".txt",
"outDateType": "jpn",
"outNameFormat": "",
"outDate": true,
"outTitle": true,
"outNumber": true,
"numberPos": 1,
"datePos": 2,
"titlePos": 3,
"maxTitleLen": 16,
"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": {
"winW": 800,
"winH": 700,
"encoding": "windows-1252",
"monthPosition": 0,
"getNewsPaperName": true,
"nameNotFoundStr": "ND",
"includeTitle": true,
"removeDuplicates": true,
"showSkipped": false,
"showRemovedDuplicates": false,
"loadTXT": true,
"loadDOCX": false,
"removeOldFiles": true,
"saveSeparateFiles": true,
"saveBodyFile": true,
"saveBodyNumber": true,
"delLF": false,
"delWordBreak": true,
"delChars": [
"'",
"@",
"#",
"$",
"%",
"^",
"&"
]
}
}

Binary file not shown.

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": "'|@|#"
}
}

593
bananaSPLIT/guimain.py Normal file
View File

@@ -0,0 +1,593 @@
'''
Created on 2 nov 2019
@author: Emanuele Trabattoni
TODO LIST
'''
import sys, copy, json
import PyQt5.QtWidgets
import PyQt5.QtGui
from mainwindow import Ui_mainwin
from selezout import Ui_selezout
from titolow import Ui_titolo
from avanzatetitolo3 import Ui_advtitolo3 as Ui_advtitolo
from advopt import Ui_editconf
from about import Ui_about
from libfancylogger import fancyLogger
from libconfload import bananaCONF
from libsplit import bananaSPLITTER
from PyQt5.QtCore import QDir, QSize, QTranslator, pyqtSlot, pyqtSignal
from PyQt5.QtWidgets import QMessageBox, QSizePolicy
class bananaMain(PyQt5.QtWidgets.QMainWindow):
def __init__(self, logger=None, confloader=None):
PyQt5.QtWidgets.QMainWindow.__init__(self)
self.logger = logger
self.conf = confloader
# 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, tr("Impostazioni Titolo"))
self.ui.wgt_main.addTab(self.selezout, tr("Selezione Output"))
# connetti bottoni avanti
self.ui.btn_avanti.clicked.connect(self.nextTab)
self.titolo.titoloui.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)
self.ui.actionAbout_SPEx.triggered.connect(self.openAbout)
#connetti i radbutton versione
self.ui.rad_fileNew.clicked.connect(self.selezVers)
self.ui.rad_fileOld.clicked.connect(self.selezVers)
#connetti segnali delle sottointerfacce
self.advopt.update.connect(self.fillAllInterfaces)
self.logger.sendLog.connect(self.appendLog)
#riempi pagine di interfaccia
self.fillAllInterfaces()
self.setSizePolicy(QSizePolicy.Fixed,QSizePolicy.Fixed)
self.setFixedSize(QSize(self.conf.getParam('settings','winW'), self.conf.getParam('settings','winH')))
pass
def fillInterface(self):
#pagina principale
try:
self.ui.lbl_preset.setText(self.conf.inUse.replace('.json',''))
self.ui.lbl_sorg.setText(self.conf.getParam('paths','INworkPath'))
self.ui.lbl_dest.setText(self.conf.getParam('paths','OUTworkPath'))
self.ui.rad_fileNew.setChecked(self.conf.getParam('docStruct', 'fileVersNew'))
self.ui.rad_fileOld.setChecked(not self.conf.getParam('docStruct', 'fileVersNew'))
self.fillFileList()
except:
self.log.critical(tr("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'))
fl.setNameFilters(['*.txt','*.TXT'])
fl = fl.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(tr("Prossima Tab"))
pass
def prevTab(self):
self.ui.wgt_main.setCurrentIndex(self.ui.wgt_main.currentIndex()-1)
self.logger.debug(tr("Tab Precedente"))
pass
def openLoadPreset(self):
self.logger.debug(tr("Apri Carica Preset"))
lf = PyQt5.QtWidgets.QFileDialog(self,tr("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.info(tr(f"Apro la configurazione: {cf}"))
self.conf.open()
self.conf.use(cf)
self.logger.debug(tr("Riempio tutte le tab"))
self.fillAllInterfaces()
pass
def openSavePreset(self):
self.logger.debug(tr("Apri Salva Preset"))
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)
#scrivi quale file e' stato usato per ultimo nel default
prev=self.conf.inUse
self.conf.use("defaults.json")
self.conf.setParam(('paths','lastUsed'),rv)
self.conf.save(fName="defaults.json")
self.conf.use(prev)
##
self.logger.debug(tr(f"Scrivo la configurazione: {rv}"))
self.conf.save(fName=rv)
pass
def openAdvOpt(self):
self.logger.debug(tr("Apri Opzioni Avanzate"))
self.advopt.fillInterface()
self.advopt.show()
pass
def openLanguage(self):
self.logger.debug(tr("Apri Opzioni Lingua"))
pass
def openAbout(self):
self.logger.debug(tr("Apri Finestra About"))
self.spxabt=spexAbout()
def selezSorg(self):
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,tr("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.info(tr("Selezionata Cartella Sorgente: {}").format(rv+"/"))
self.fillFileList()
pass
def selezDest(self):
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,tr("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.info(tr("Selezionata Cartella Destinazione: {}").format(rv+"/"))
pass
def selezVers(self):
self.conf.setParam(('docStruct','fileVersNew'), self.ui.rad_fileNew.isChecked())
self.logger.debug(tr(f"Selezionata Versione File"))
def openFileDialog(self, name, path):
self.log.debug(tr("Apro in directory: {}").format(path))
return
def applicaTutto(self):
self.titolo.applica()
self.selezout.applica()
def appendLog(self, msg):
self.ui.txt_log.append(msg)
#############################################################
####################### 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'))
#finestra avanzate
self.advtitolo.fillInterface()
except:
self.log.critical(tr("Titolo: Configurazione non accettata"))
def spawnAvanzate(self):
self.log.debug(tr("Mostro la finestra avanzate titolo"))
self.advtitolo.show()
pass
def applica(self):
self.log.info(tr("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())
self.advtitolo.applica()
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(tr("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.info(tr("Avanzate Titolo Accettate"))
self.applica()
self.hide()
pass
def returnKo(self):
self.log.info(tr("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())
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.applica)
self.selezoutui.btn_split.clicked.connect(self.splitta)
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.cmb_lingua.setCurrentIndex(self.conf.getParam('docStruct','languageIdx'))
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(tr("SelezUscita: Configurazione non accettata"))
pass
def applica(self):
self.log.info(tr("Applico Impostazioni File Uscita"))
self.conf.setParam(('docStruct', 'language'), self.selezoutui.cmb_lingua.currentText())
self.conf.setParam(('docStruct', 'languageIdx'), self.selezoutui.cmb_lingua.currentIndex())
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
prefile = self.conf.inUse
splconf = copy.deepcopy(self.conf.dump())
lang = copy.deepcopy(self.conf.use('languageconf.json').getParam(splconf['docStruct']['language']))
splconf['docStruct']['language'] = lang
self.conf.use(prefile)
#formato nome in uscita
nametemp=[]
for i in range(1,4):
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 messageBox
msgb = QMessageBox(parent=self, icon=QMessageBox.Warning, text=tr("Sto SPLITTANDO, attendi.."))
msgb.setWindowTitle(tr("Sto Splittando.."))
msgb.show()
@pyqtSlot()
def updateState(msg):
msgb.setText(msg)
# costruisco i thread
tDict={}
try:
for f in splconf['paths']['fileList']:
splconf['name']=f
tDict[f] = bananaSPLITTER(fileParams=copy.deepcopy(splconf), logger=self.log)
tDict[f].sendStatus.connect(updateState)
tDict[f].run()
#QThreadPool.globalInstance().start(tDict[f])
except Exception as e:
self.log.error(tr(f"Impossibile avviare lo splitter: {e}"))
msgb.setText(tr("FINITO!"))
pass
class bananaAdvOpt(PyQt5.QtWidgets.QWidget):
update = pyqtSignal()
def __init__(self, confloader=None, logger=None):
PyQt5.QtWidgets.QWidget.__init__(self)
self.advoptui = Ui_editconf()
self.advoptui.setupUi(self)
self.conf = confloader
self.log = logger
self.errmsg=None
if self.conf is not None:
self.advoptui.btn_ok.clicked.connect(self.accetta)
self.advoptui.btn_cancel.clicked.connect(self.rifiuta)
self.fillInterface()
pass
def fillInterface(self):
try:
self.advoptui.txt_confFile.setPlainText(json.dumps(self.conf.dump(),indent=2))
except:
self.log.critical(tr("AdvancedOptions: Configurazione non accettata"))
pass
def accetta(self):
self.errmsg = QMessageBox()
self.errmsg.setModal(True)
self.errmsg.setWindowTitle(tr("Avanzate Globali"))
icon = PyQt5.QtGui.QIcon()
icon.addPixmap(PyQt5.QtGui.QPixmap(":/icons/icons8-smartphone-ram-100.png"), PyQt5.QtGui.QIcon.Normal, PyQt5.QtGui.QIcon.Off)
self.errmsg.setWindowIcon(icon)
try:
self.conf.loads(self.advoptui.txt_confFile.toPlainText())
self.log.info(tr("Parametri inseriti validi, configurazione accettata"))
self.errmsg.setIcon(QMessageBox.Information)
self.errmsg.setText(tr("Parametri inseriti validi, configurazione accettata"))
self.errmsg.show()
self.update.emit()
self.hide()
except Exception as e:
self.log.error(tr(f"Errore nei parametri! {e}"))
self.errmsg.setIcon(QMessageBox.Critical)
self.errmsg.setText(tr(f"Errore nei parametri!\n{e}"))
self.errmsg.show()
pass
def rifiuta(self):
self.log.info(f"AdvancedOptions: Configurazione Rifiutata")
self.hide()
pass
class bananaSplitterInterface(PyQt5.QtWidgets.QWidget):
def __init__(self, confloader=None, logger=None):
PyQt5.QtWidgets.QWidget.__init__(self)
pass
class spexAbout(PyQt5.QtWidgets.QDialog):
def __init__(self, confloader=None, logger=None):
PyQt5.QtWidgets.QDialog.__init__(self)
self.abt = Ui_about()
self.abt.setupUi(self)
self.show()
pass
#############################################################
####################### MAIN ################################
#############################################################
def except_hook(cls, exception, traceback):
sys.__excepthook__(cls, exception, traceback)
if __name__ == '__main__':
app = PyQt5.QtWidgets.QApplication(sys.argv)
sys.excepthook = except_hook
try:
LOGGER = fancyLogger(filepath=r"./conf/loggerconf.json",fileLog=False)
conf = bananaCONF(workdir=r"./conf", logger=LOGGER)
conf.open()
conf.use("defaults.json")
conf.use(conf.getParam('paths', 'lastUsed'))
iflan = conf.getParam('settings','uiLang')
if iflan != 'it':
t = QTranslator()
t.load(f":/tr/translations/mainwindow_{iflan}.qm")
app.installTranslator(t)
except Exception as e:
print(e)
sys.exit()
window = bananaMain(logger=LOGGER, confloader=conf)
window.show()
rv = app.exec()
print("ExitCode: {}".format(rv))
sys.exit(rv)
pass

View File

@@ -18,13 +18,13 @@ class bananaCONF(object):
if workdir is not None:
self.workdir = workdir
os.chdir(workdir)
self.log.debug("Cerco le configurazioni in: [{}]".format(os.getcwd()))
self.log.debug(tr("Cerco le configurazioni in: [{}]").format(os.getcwd()))
else:
self.log.error("Non mi e' stata fornita una directory per i file di configurazione")
self.log.error(tr("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.log.info(tr("Carico i file di configurazione"))
self.fileList = glob.glob(r"*.json")
if len(self.fileList) > 0:
for f in self.fileList:
@@ -33,17 +33,17 @@ class bananaCONF(object):
tf = json.load(fp)
fName = f.split("\\")[-1]
self.settingsList[fName] = copy.deepcopy(tf)
self.log.info("Caricato correttamente: {}".format(fName))
self.log.info(tr("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))
self.log.error(tr("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))
self.log.error(tr("Impossibile aprire il file: {}").format(ee))
except Exception as eee:
self.log.critical("Eccezione inaspettata: {}".format(eee))
self.log.critical(tr("Eccezione inaspettata: {}").format(eee))
else:
self.log.error("Non ho trovato alcun file di configurazione!")
self.log.error(tr("Non ho trovato alcun file di configurazione!"))
pass
def reload(self):
@@ -55,29 +55,54 @@ class bananaCONF(object):
def use(self, toUse):
self.inUse = toUse
pass
return self
def save(self):
self.log.info("Salvo la configurazione: {}".format(self.inUse))
def save(self, fName=None):
if fName is None:
fName=self.inUse
self.log.info(tr("Salvo la configurazione: {}").format(fName))
try:
os.chdir(self.workdir)
f=open(self.inUse)
json.dump(self.settingsList[self.inUse], f)
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(self.inUse,e))
self.log.error(tr("Impossibile salvare il file: {} - [{}]").format(fName,e))
except Exception as ei:
self.log.error(tr("Errore imprevisto nella scrittura del file: {}").format(ei))
pass
def getFiles(self):
return self.fileList
def getParams(self, k):
return self.settingsList[self.inUse][k]
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(tr("Parametro di configurazione non valido! [{}]").format(ve))
return False
pass
def setParams(self, k, v):
self.settingsList[self.inUse][k]=dict(v)
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(tr("Parametro di configurazione non valido! [{}]").format(ve))
return False
pass
def dump(self):
return self.settingsList[self.inUse]
def loads(self, conf):
jconf = json.loads(conf)
self.settingsList[self.inUse]=jconf

View File

@@ -3,76 +3,90 @@ Created on 2 nov 2019
@author: Emanuele Trabattoni
'''
import sys, os
import sys
import json
import logging
import colorama
from PyQt5.QtCore import QObject, pyqtSignal
class fancyLogger(object):
class fancyLogger(QObject):
'''
Colorizza il logger di python, per un' esperienza stile willy wonka
'''
def __init__(self, name="Logger", consoleLog=True, fileLog=True):
settings = json.load(open(os.getcwd()+r"\libbananasplit\testEN.json"))["logger"]
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)
sendLog = pyqtSignal(str)
def __init__(self, filepath=None, name="Logger", consoleLog=True, fileLog=False):
QObject.__init__(self)
try:
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='')
self.sendLog.emit(f"<FONT COLOR='#03c2fc'>DEBUG | {msg} </br>")
pass
def info(self, msg="Undefined Info"):
print(self.LGREEN, end='')
self.LOGGER.info(msg)
print(self.RST, end='')
self.sendLog.emit(f"<FONT COLOR='#6bfc03'>INFO | {msg} </br>")
pass
def warn(self, msg="Undefined Warning"):
print(self.LYELLOW, end='')
self.LOGGER.warning(msg)
print(self.RST, end='')
self.sendLog.emit(f"<FONT COLOR='#fc9403'>WARNING | {msg} </br>")
pass
def error(self, msg="Undefined Error"):
print(self.LRED, end='')
self.LOGGER.error(msg)
print(self.RST, end='')
self.sendLog.emit(f"<FONT COLOR='#ff0000'>ERROR | {msg} </br>")
pass
def critical(self, msg="Undefined Critical"):
print(self.RED, end='')
self.LOGGER.critical(msg)
print(self.RST, end='')
self.sendLog.emit(f"<FONT COLOR='#fc03ce'>CRITICAL | {msg} </br>")
pass
def testColors(self):

View File

@@ -3,105 +3,226 @@ Created on 2 nov 2019
@author: Emanuele Trabattoni
'''
from slugify.slugify import slugify
import time, parse, re, copy, os, threading
from PyQt5.QtCore import QObject, pyqtSignal
class bananaSPLITTER(threading.Thread):
from slugify import slugify
import time, parse, re, copy, os, json
import traceback
class bananaSPLITTER(QObject):
sendStatus = pyqtSignal(str)
def __init__(self, fileParams=None, logger=None):
threading.Thread.__init__(self)
QObject.__init__(self)
self.fileParams = fileParams
self.log = logger
self.rawFile = None
self.status = "first"
self.fileList = list()
self.contentList = list()
self.bodyCounter=0
self.duplicateNumber=0
#self.log.debug(f"Configurazione: \n {json.dumps(fileParams, indent=2)}")
if fileParams is not None:
self.log.info("Sto operando sul file: {}..".format(self.fileParams['name']))
self.log.debug(tr("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.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!")
self.log.critical(tr("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))
self.log.info(tr("Nuovo SPLITTER su file: {}").format(self.fileName))
self.sendStatus.emit(tr(f"Inizio {self.fileName}"))
try:
self.openFile()
self.remEmptyLines()
self.splitFile()
if self.docStruct['fileVersNew']:
self.newSplitFile()
else:
self.splitFile()
if self.settings['removeDuplicates']:
self.log.info("Controllo se ci sono dei duplicati..")
self.log.info(tr("Controllo se ci sono dei duplicati.."))
self.removeDuplicates()
else:
for idx, ff in enumerate(self.fileList):
for idx, ff in enumerate(self.contentList):
ff['duplicate']=False
self.fileList[idx]=ff
self.log.warn('Salto il controllo dei duplicati..')
self.contentList[idx]=ff
self.log.warn(tr("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)
#os.chdir(self.outPath)
for f in os.listdir(self.outPath):
os.remove(f)
os.remove(self.outPath+f)
else:
raise FileExistsError("Non posso sovrascrivere i vecchi file, eliminali manualmente!")
raise FileExistsError(tr("Non posso sovrascrivere i vecchi file, eliminali manualmente!"))
else:
os.mkdir(self.outPath)
os.chdir(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))
self.log.info(tr("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! [{}]"
self.log.critical(tr("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)
except Exception as ee:
traceback.print_exc()
self.log.warn(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'])
#os.chdir(self.paths["INworkPath"])
self.log.info(tr("Carico il contenuto.."))
fp = open(self.paths["INworkPath"]+'/'+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))
self.log.critical(tr("Impossibile aprire il file: {}! [{}]").format(self.fileName,e))
raise BaseException("OpenFile")
os.rmdir(self.outPath)
except Exception as ee:
print(ee)
pass
def remEmptyLines(self):
self.log.info("Elimino righe vuote e caratteri inutili..")
self.log.info(tr("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']:
if ll not in ['\n', '\r', '\r\n']:
tempContent.append(ll)
self.rawFile = copy.deepcopy(tempContent)
self.rawFile.append('\n') #linea vuota finale per essere sicuri di parsare bene
return True
except:
self.log.error("Errore inaspettato durante l'eliminazione delle righe vuote!")
self.log.error(tr("Errore inaspettato durante l'eliminazione delle righe vuote!"))
raise BaseException("DelLines")
del tempContent
def newSplitFile(self): #porting del codice dal programma originale
self.log.info(tr("Individuo il contenuto.."))
self.bodyCounter=0
self.duplicateNumber=0
docNumber = 0
docSkipped = 0
docDate = {}
title = ''
prevLine = ''
newsPaperName = ''
titleBegin = True
newsName = False
tempBody = list()
for l in self.rawFile: #per ogni linea del file
l=l.replace('\xa0', ' ')
lineWords = l.lstrip().split(' ') #dividi la riga in parole
if self.status == 'first':
try:
# 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
# dopo la data inizia il titolo, ma prima si cerca il nome del giornale
except:
self.log.warn(tr("Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]"). format(l.strip('\r\n')))
pass
elif lineWords[0].upper() 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
newsName = False
else:
if titleBegin:
title = l.strip().capitalize()
titleBegin = False
newsName = True
elif newsName:
if self.settings['getNewsPaperName']:
try:
if l.strip():
newsPaperName = l.strip()
else:
newsPaperName = self.settings['nameNotFoundStr']
except:
self.log.warn(tr("E' successo qualcosa mentre stavo cercando il nome della pubblicazione,\
controlla i file di uscita! [{}]").format(l.strip()))
else:
newsPaperName = self.settings['nameNotFoundStr']
newsName = False
except IndexError:
self.log.error(tr("Errore inaspettato, contatta il tuo sviluppatore di fiducia!"))
pass
elif self.status == 'head':
tempContent = list()
#doppio check per trovare l'inizio del corpo documento
if re.match(self.docStruct['beginOfDocument'],l):
self.status='body'
#if lineWords[0].upper() 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'
elif self.status == 'body':
if re.match(self.docStruct['endOfDocument'],l) is not None: #controlla se ci sono articoli che non hanno le parole chiave finali
self.log.warn(tr("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\t[{}]").format(docNumber, l.strip()))
self.status = 'tail'
anomaly = True
elif not lineWords[0].upper() 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
pass
elif self.status == 'tail':
if anomaly or (re.match(self.docStruct['endOfDocument'],l) is not None):
self.status = 'first'
anomaly = False
titleBegin = True
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(tr("Stato Interno Sconosciuto"))
prevLine=l #salva sempre e comunque il contenuto della linea precedente
pass
#ricerca terminata, espongo i risultati
self.log.info(tr("Nel file ho trovato {0} articoli..").format(self.bodyCounter))
if docSkipped > 0:
self.log.warn(tr("Attentione, LexisNexis ne ha saltati {} !!!").format(docSkipped))
pass
pass
def splitFile(self): #porting del codice dal programma originale
self.log.info("Individuo il contenuto..")
self.log.info(tr("Individuo il contenuto.."))
self.bodyCounter=0
self.duplicateNumber=0
docNumber = 0
@@ -125,18 +246,17 @@ class bananaSPLITTER(threading.Thread):
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"]))
self.log.warn(tr("Il conto dei documenti non torna! LexisNexis ne ha saltato qualcuno!\n Precedente:{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['dateWords']:
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['dateWords'].index(docDate['month'])+1
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
@@ -147,14 +267,14 @@ class bananaSPLITTER(threading.Thread):
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()))
self.log.warn(tr("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')))
self.log.warn(tr("Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]").format(l.strip('\r\n')))
pass
elif lineWords[0] in self.docStruct['headWords']:
elif lineWords[0] in self.docStruct['language']['headWords']:
#cambio stato e inizializzo un nuovo documento da riempire
self.status = 'head'
newDoc=dict()
@@ -166,16 +286,16 @@ class bananaSPLITTER(threading.Thread):
if titleBegin:
title += l.strip().capitalize()
except IndexError:
self.log.error("Errore inaspettato, contatta il tuo sviluppatore di fiducia!")
self.log.error(tr("Errore inaspettato, contatta il tuo sviluppatore di fiducia!"))
pass
elif self.status == 'head':
tempContent = list()
if lineWords[0] not in self.docStruct['headWords']: #se la prima parola non e' tra quelle di inizio
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['tailWords']: #se la prima parola non e' tra quelle di fine
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:
@@ -184,8 +304,8 @@ class bananaSPLITTER(threading.Thread):
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.log.warn(tr("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
@@ -196,80 +316,87 @@ class bananaSPLITTER(threading.Thread):
if self.settings['delWordBreak']:
tempContent=[ll.replace('-\n', '') for ll in tempContent]
newDoc['content']=copy.deepcopy(''.join(tempBody))
self.fileList.append(copy.deepcopy(newDoc))
self.contentList.append(copy.deepcopy(newDoc))
tempBody=list()
self.bodyCounter +=1
pass
else:
self.log.critical("Stato Interno Sconosciuto")
self.log.critical(tr("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))
self.log.info(tr("Nel file ho trovato {0} articoli..").format(self.bodyCounter))
if docSkipped > 0:
self.log.warn("Attentione, LexisNexis ne ha saltati {} !!!".format(docSkipped))
self.log.warn(tr("Attentione, LexisNexis ne ha saltati {} !!!").format(docSkipped))
pass
pass
def removeDuplicates(self):
titleList=[]
duplicateList=[]
for idx, ff in enumerate(self.fileList):
for idx, ff in enumerate(self.contentList):
if ff['title'] not in titleList:
titleList.append(ff['title'])
ff['duplicate']=False
self.fileList[idx]=ff
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()))
self.log.info(tr("Duplicato: {}").format(ff['title'].strip()))
ff['duplicate'] = True
self.fileList[idx]=ff
self.contentList[idx]=ff
self.duplicateNumber+=1
self.log.info("Ho rimosso {} duplicati di {} articoli..". format(self.duplicateNumber, len(duplicateList)))
self.log.info(tr("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.fileList:
self.log.info(tr("Salvo gli articoli in file separati..."))
self.log.debug(tr("Persorso: {0}").format(self.outPath))
for ff in self.contentList:
try:
if ff['duplicate'] == False:
fName=self.paths['OUTnameFormat'].format(title=slugify(ff['title'][:self.settings['maxTitleLen']]),\
fName=self.docStruct['outNameFormat'].format(title=slugify(ff['title'][:self.docStruct['maxTitleLen']]),\
filename=slugify(self.fileName),\
docnum=outFileCounter,\
papername=ff['newsPaperName'].strip(),\
**ff['date'])
out=open('{0}'.format(fName),'wb')
out=open(self.outPath+'{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))
self.log.error(tr("Qualcosa e\' andato storto, non riesco a scrivere il file: {}").format(e))
continue
except KeyError as ke:
self.log.error(tr(f"Chiave {ke} non trovata per:{outFileCounter} {ff['title']} "))
except Exception as ee:
traceback.print_exc()
self.log.error(tr(f"Errore generale nel salvataggio: {ee}"))
if outFileCounter < self.bodyCounter:
raise BaseException("Ho salvato meno file rispetto a quelli trovati!")
self.log.error(tr("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)
self.log.info(tr('Salvo gli articoli in un singolo file vicino agli originali...'))
self.log.debug(tr('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.fileList])
out=open('{0}'.format(fName),'wb')
fName='BODYFILE_{0}.txt'.format(fName[:self.docStruct['maxTitleLen']])
fileContent = os.linesep.join([cc['content'] for cc in self.contentList])
out=open(self.outPath+'{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))
self.log.error(tr("Qualcosa e\' andato storto, non riesco a scrivere il file: {}").format(e))
except Exception as ee:
self.log.error(tr(f"Errore generale nel salvataggio: {ee}"))
pass

View File

@@ -1,83 +0,0 @@
{
"version": "v1.1a",
"logger": {
"logFile": "D:\\Test\\bananaSPLIT.log",
"logFormat": "%(asctime)s|%(levelname)-8s| %(message)-50s",
"logTimeFormat": "%m-%d %H:%M:%S"
},
"splitter": {
"name": "",
"paths": {
"INworkPath": "D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\TestFiles\\",
"OUTworkPath": "H:\\",
"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": true,
"showRemovedDuplicates": false,
"maxTitleLen": 32,
"loadTXT": true,
"loadDOCX": false,
"removeOldFiles": true,
"saveSeparateFiles": true,
"saveBodyFile": true,
"saveBodyNumber": true,
"delLF": false,
"delWordBreak": true,
"delChars": [
"'",
"@",
"#",
"$",
"%",
"^",
"&"
]
}
}
}

View File

@@ -1,80 +0,0 @@
{
"version": "v1.1a",
"logger": {
"logFile": "D:\\Test\\bananaSPLIT.log",
"logFormat": "%(asctime)s|%(levelname)-8s| %(message)-50s",
"logTimeFormat": "%m-%d %H:%M:%S"
},
"splitter": {
"name": "",
"paths": {
"INworkPath": "D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\TestFiles\\",
"OUTworkPath": "H:\\",
"OUTnameFormat": "TEST_{docnum}_{year:04d}{month:02d}{day:02d}_{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": [
"'",
"@",
"#",
"$",
"%",
"^",
"&"
]
}
}
}

View File

@@ -1,35 +0,0 @@
'''
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

@@ -0,0 +1,25 @@
'''
Created on 24 nov 2019
@author: Emanuele Trabattoni
'''
import os, glob, subprocess
if __name__ == '__main__':
os.chdir("..\\UserInterface")
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()
command = r'pyrcc5.exe '+'.resources\\resources.qrc'
print (command)
rv = subprocess.run(command, capture_output=True)
fp = open(r".\\compiledUI\\resources_rc.py", 'w')
fp.write(str(rv.stdout, encoding='utf-8').replace('\r', ''))
fp.close()
pass

View File

@@ -0,0 +1,21 @@
'''
Created on 30 mar 2020
@author: Emanuele Trabattoni
'''
import glob, docx2txt
if __name__ == '__main__':
fList = glob.iglob("../TestFiles/File nuovo formato/*.docx")
for f in fList:
#os.remove(f.replace('.docx', '.txt'))
print(f)
try:
txt=docx2txt.process(f)
with open(f.replace('.docx', '.txt'), 'wb') as fp:
fp.write(txt.encode('ansi'))
fp.close()
except Exception as e:
print(e)
pass
pass

View File

@@ -0,0 +1,21 @@
'''
Created on 1 dic 2019
@author: Emanuele Trabattoni
'''
import json
from libsplit import bananaSPLITTER
from libfancylogger import fancyLogger
if __name__ == "__main__":
logger = fancyLogger(filepath=r"./conf/loggerconf.json",fileLog=False)
fp = open('./conf/conftest.json', 'r')
splitter = bananaSPLITTER(fileParams=json.load(fp), logger=logger)
fp.close()
splitter.run()
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": "'|@|#"
}
}