11 Commits

Author SHA1 Message Date
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
48 changed files with 9844 additions and 1469 deletions

7
.gitignore vendored
View File

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

View File

@@ -1,4 +1,5 @@
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

Binary file not shown.

BIN
TuxBuild/bananasplit.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,5 +1,5 @@
{
"version": "v1.3",
"version": "v1.3b",
"paths": {
"lastUsed": "defaults.json",
"configurationPath": "./conf/",

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

@@ -26,8 +26,8 @@
<string>Opzioni Avanzate</string>
</property>
<property name="windowIcon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-smartphone-ram-100.png</normaloff>:/icons/icons8-smartphone-ram-100.png</iconset>
<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>
@@ -112,7 +112,7 @@
</layout>
</widget>
<resources>
<include location="resources.qrc"/>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -23,8 +23,8 @@
<string>Avanzate Titolo</string>
</property>
<property name="windowIcon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-smartphone-ram-100.png</normaloff>:/icons/icons8-smartphone-ram-100.png</iconset>
<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">
@@ -253,7 +253,7 @@
</layout>
</widget>
<resources>
<include location="resources.qrc"/>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -15,7 +15,7 @@ if __name__ == '__main__':
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.qrc'
command = r'pyrcc5.exe '+'resources/resources.qrc'
print (command)
rv = subprocess.run(command, capture_output=True)
fp = open(r".\compiledUI\\resources_rc.py", 'w')

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

@@ -20,7 +20,7 @@ class Ui_editconf(object):
editconf.setSizePolicy(sizePolicy)
editconf.setMinimumSize(QtCore.QSize(600, 500))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icons/icons8-smartphone-ram-100.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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")

View File

@@ -20,7 +20,7 @@ class Ui_advtitolo3(object):
sizePolicy.setHeightForWidth(advtitolo3.sizePolicy().hasHeightForWidth())
advtitolo3.setSizePolicy(sizePolicy)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icons/icons8-smartphone-ram-100.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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")

View File

@@ -25,7 +25,7 @@ class Ui_mainwin(object):
mainwin.setFont(font)
mainwin.setFocusPolicy(QtCore.Qt.NoFocus)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icons/icons8-banana-split-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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)
@@ -103,7 +103,7 @@ class Ui_mainwin(object):
sizePolicy.setHeightForWidth(self.btn_cartellasorg.sizePolicy().hasHeightForWidth())
self.btn_cartellasorg.setSizePolicy(sizePolicy)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/icons/icons8-add-folder-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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)
@@ -116,7 +116,7 @@ class Ui_mainwin(object):
sizePolicy.setHeightForWidth(self.btn_cartelladest.sizePolicy().hasHeightForWidth())
self.btn_cartelladest.setSizePolicy(sizePolicy)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/icons/icons8-downloads-folder-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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)
@@ -207,7 +207,7 @@ class Ui_mainwin(object):
self.btn_avanti.setFont(font)
self.btn_avanti.setLayoutDirection(QtCore.Qt.LeftToRight)
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap(":/icons/icons8-arrow-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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)
@@ -225,36 +225,53 @@ class Ui_mainwin(object):
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(":/icons/icons8-documents-folder-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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(":/icons/icons8-save-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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(":/icons/icons8-globe-earth-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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(":/icons/icons8-smartphone-ram-100.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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.actionLingua)
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)
@@ -268,8 +285,8 @@ class Ui_mainwin(object):
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:7.8pt; 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:10pt;\"><br /></p></body></html>"))
"</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"))
@@ -284,11 +301,14 @@ class Ui_mainwin(object):
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

File diff suppressed because it is too large Load Diff

View File

@@ -163,7 +163,7 @@ class Ui_selezout(object):
font.setPointSize(11)
self.btn_indietro.setFont(font)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icons/icons8-arrow-80-back.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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")
@@ -180,7 +180,7 @@ class Ui_selezout(object):
self.btn_split.setLayoutDirection(QtCore.Qt.LeftToRight)
self.btn_split.setAutoFillBackground(False)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/icons/icons8-banana-split-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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)

View File

@@ -63,7 +63,7 @@ class Ui_titolo(object):
font.setPointSize(11)
self.btn_avanzate.setFont(font)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icons/icons8-smartphone-ram-100.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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")
@@ -78,7 +78,7 @@ class Ui_titolo(object):
font.setPointSize(11)
self.btn_indietro.setFont(font)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/icons/icons8-arrow-80-back.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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")
@@ -90,7 +90,7 @@ class Ui_titolo(object):
self.btn_avanti.setFont(font)
self.btn_avanti.setLayoutDirection(QtCore.Qt.LeftToRight)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/icons/icons8-arrow-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
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")

View File

@@ -32,8 +32,8 @@
<string>bananaSPLIT</string>
</property>
<property name="windowIcon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-banana-split-80.png</normaloff>:/icons/icons8-banana-split-80.png</iconset>
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/logo2.png</normaloff>:/ico/icons/logo2.png</iconset>
</property>
<property name="animated">
<bool>false</bool>
@@ -149,8 +149,8 @@
<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:7.8pt; 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;</string>
&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>
@@ -187,8 +187,8 @@ p, li { white-space: pre-wrap; }
<string>-&gt; </string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-add-folder-80.png</normaloff>:/icons/icons8-add-folder-80.png</iconset>
<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>
@@ -213,8 +213,8 @@ p, li { white-space: pre-wrap; }
<string>-&gt; </string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-downloads-folder-80.png</normaloff>:/icons/icons8-downloads-folder-80.png</iconset>
<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>
@@ -398,8 +398,8 @@ p, li { white-space: pre-wrap; }
<string>Avanti</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-arrow-80.png</normaloff>:/icons/icons8-arrow-80.png</iconset>
<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>
@@ -443,16 +443,24 @@ p, li { white-space: pre-wrap; }
<property name="title">
<string>Opzioni</string>
</property>
<addaction name="actionLingua"/>
<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>
<action name="actionCarica_Preset">
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-documents-folder-80.png</normaloff>:/icons/icons8-documents-folder-80.png</iconset>
<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>
@@ -463,8 +471,8 @@ p, li { white-space: pre-wrap; }
</action>
<action name="actionSalva_Preset">
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-save-80.png</normaloff>:/icons/icons8-save-80.png</iconset>
<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>
@@ -476,9 +484,12 @@ p, li { white-space: pre-wrap; }
</property>
</action>
<action name="actionLingua">
<property name="enabled">
<bool>false</bool>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-globe-earth-80.png</normaloff>:/icons/icons8-globe-earth-80.png</iconset>
<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>
@@ -486,16 +497,37 @@ p, li { white-space: pre-wrap; }
</action>
<action name="actionAvanzate">
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-smartphone-ram-100.png</normaloff>:/icons/icons8-smartphone-ram-100.png</iconset>
<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>
<include location="resources.qrc"/>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -1,14 +0,0 @@
<RCC>
<qresource prefix="icons">
<file>icons8-arrow-80-back.png</file>
<file>icons8-smartphone-ram-100.png</file>
<file>icons8-globe-earth-80.png</file>
<file>icons8-save-80.png</file>
<file>icons8-arrow-80.png</file>
<file>banana.ico</file>
<file>icons8-add-folder-80.png</file>
<file>icons8-banana-split-80.png</file>
<file>icons8-documents-folder-80.png</file>
<file>icons8-downloads-folder-80.png</file>
</qresource>
</RCC>

View File

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 584 B

After

Width:  |  Height:  |  Size: 584 B

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 645 B

After

Width:  |  Height:  |  Size: 645 B

View File

Before

Width:  |  Height:  |  Size: 957 B

After

Width:  |  Height:  |  Size: 957 B

View File

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 862 B

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

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

@@ -306,8 +306,8 @@
<string>Indietro</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-arrow-80-back.png</normaloff>:/icons/icons8-arrow-80-back.png</iconset>
<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>
@@ -362,8 +362,8 @@
<string>SPLITTA!</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-banana-split-80.png</normaloff>:/icons/icons8-banana-split-80.png</iconset>
<iconset resource="resources/resources.qrc">
<normaloff>:/ico/icons/logo4.png</normaloff>:/ico/icons/logo4.png</iconset>
</property>
<property name="iconSize">
<size>
@@ -394,7 +394,7 @@
<tabstop>btn_indietro</tabstop>
</tabstops>
<resources>
<include location="resources.qrc"/>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
</ui>

View File

@@ -113,8 +113,8 @@
<string>Avanzate Titolo</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-smartphone-ram-100.png</normaloff>:/icons/icons8-smartphone-ram-100.png</iconset>
<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>
@@ -156,8 +156,8 @@
<string>Indietro</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-arrow-80-back.png</normaloff>:/icons/icons8-arrow-80-back.png</iconset>
<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>
@@ -187,8 +187,8 @@
<string>Avanti</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icons/icons8-arrow-80.png</normaloff>:/icons/icons8-arrow-80.png</iconset>
<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>
@@ -582,7 +582,7 @@
<tabstop>btn_indietro</tabstop>
</tabstops>
<resources>
<include location="resources.qrc"/>
<include location="resources/resources.qrc"/>
</resources>
<connections/>
<buttongroups>

View File

@@ -1,5 +1,5 @@
{
"version": "v1.3",
"version": "v1.4",
"paths": {
"lastUsed": "defaults.json",
"configurationPath": "./conf/",
@@ -36,6 +36,7 @@
}
},
"settings": {
"uiLang": "it",
"winW": 800,
"winH": 700,
"encoding": "windows-1252",

View File

@@ -13,26 +13,20 @@ 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, pyqtSlot, pyqtSignal
from PyQt5.QtCore import QDir, QSize, QTranslator, pyqtSlot, pyqtSignal
from PyQt5.QtWidgets import QMessageBox, QSizePolicy
class bananaMain(PyQt5.QtWidgets.QMainWindow):
def __init__(self):
def __init__(self, logger=None, confloader=None):
PyQt5.QtWidgets.QMainWindow.__init__(self)
try:
self.logger = fancyLogger(filepath=r"./conf/loggerconf.json",fileLog=False)
self.conf = bananaCONF(workdir=r"./conf", logger=self.logger)
self.conf.open()
self.conf.use("defaults.json")
self.conf.use(self.conf.getParam('paths', 'lastUsed'))
except Exception as e:
print(e)
sys.exit()
self.logger = logger
self.conf = confloader
# inizializzazione interfaccia
self.ui = Ui_mainwin()
@@ -44,8 +38,8 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
#popola le tab con le finestre giuste
self.ui.wgt_main.addTab(self.titolo, "Impostazioni Titolo")
self.ui.wgt_main.addTab(self.selezout, "Selezione Output")
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)
@@ -64,6 +58,7 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
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)
@@ -82,14 +77,14 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
def fillInterface(self):
#pagina principale
try:
self.ui.lbl_preset.setText(self.conf.inUse.replace(".json",""))
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("MainWindow: Configurazione non accettata")
self.log.critical(tr("MainWindow: Configurazione non accettata"))
def fillAllInterfaces(self):
self.fillInterface()
@@ -109,32 +104,31 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
def nextTab(self):
self.ui.wgt_main.setCurrentIndex(self.ui.wgt_main.currentIndex()+1)
self.logger.debug("Prossima Tab")
self.logger.debug(tr("Prossima Tab"))
pass
def prevTab(self):
self.ui.wgt_main.setCurrentIndex(self.ui.wgt_main.currentIndex()-1)
self.logger.debug("Tab Precedente")
self.logger.debug(tr("Tab Precedente"))
pass
def openLoadPreset(self):
self.logger.debug("Apri Carica Preset")
lf = PyQt5.QtWidgets.QFileDialog(self,"Carica Preset",self.conf.getParam('paths', 'configurationPath'))
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("Apro la configurazione: {}".format(cf))
self.logger.info(tr(f"Apro la configurazione: {cf}"))
self.conf.open()
self.conf.use(cf)
self.logger.debug("Riempio tutte le tab")
self.logger.debug(tr("Riempio tutte le tab"))
self.fillAllInterfaces()
pass
def openSavePreset(self):
self.logger.debug("Apri Salva Preset")
self.logger.debug("Forzo applica a tutte le tab")
self.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)
@@ -149,43 +143,47 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
self.conf.save(fName="defaults.json")
self.conf.use(prev)
##
self.logger.debug("Scrivo la configurazione: {}".format(rv))
self.logger.debug(tr(f"Scrivo la configurazione: {rv}"))
self.conf.save(fName=rv)
pass
def openAdvOpt(self):
self.logger.debug("Apri Opzioni Avanzate")
self.logger.debug(tr("Apri Opzioni Avanzate"))
self.advopt.fillInterface()
self.advopt.show()
pass
def openLanguage(self):
self.logger.debug("Apri Opzioni Lingua")
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,"Seleziona Cartella Sorgente",self.conf.getParam('paths','INworkPath'))
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("Selezionata Cartella Sorgente: {}".format(rv+"/"))
self.logger.info(tr("Selezionata Cartella Sorgente: {}").format(rv+"/"))
self.fillFileList()
pass
def selezDest(self):
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,"Seleziona Cartella Destinazione",self.conf.getParam('paths','OUTworkPath'))
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("Selezionata Cartella Destinazione: {}".format(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(f"Selezionata Versione File")
self.logger.debug(tr(f"Selezionata Versione File"))
def openFileDialog(self, name, path):
self.log.debug("Apro in directory: {}".format(path))
self.log.debug(tr("Apro in directory: {}").format(path))
return
def applicaTutto(self):
@@ -240,15 +238,15 @@ class bananaTitolo(PyQt5.QtWidgets.QWidget):
#finestra avanzate
self.advtitolo.fillInterface()
except:
self.log.critical("Titolo: Configurazione non accettata")
self.log.critical(tr("Titolo: Configurazione non accettata"))
def spawnAvanzate(self):
self.log.debug("Mostro la finestra avanzate titolo")
self.log.debug(tr("Mostro la finestra avanzate titolo"))
self.advtitolo.show()
pass
def applica(self):
self.log.info("Applico impostazioni Titolo")
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())
@@ -305,7 +303,7 @@ class bananaTitoloAvanzate(PyQt5.QtWidgets.QWidget):
self.titoloavui.txt_prefisso.setText(self.conf.getParam('docStruct','outPrefix'))
self.titoloavui.txt_suffisso.setText(self.conf.getParam('docStruct','outSuffix'))
except:
self.log.critical("AvanzateTitolo: Configurazione non accettata")
self.log.critical(tr("AvanzateTitolo: Configurazione non accettata"))
def gestisciBottoni(self):
#PRIMO
@@ -359,13 +357,13 @@ class bananaTitoloAvanzate(PyQt5.QtWidgets.QWidget):
pass
def returnOk(self):
self.log.info("Avanzate Titolo Accettate")
self.log.info(tr("Avanzate Titolo Accettate"))
self.applica()
self.hide()
pass
def returnKo(self):
self.log.info("Avanzate Titolo Rifiutate")
self.log.info(tr("Avanzate Titolo Rifiutate"))
self.hide()
pass
@@ -430,11 +428,11 @@ class bananaSelezOut(PyQt5.QtWidgets.QWidget):
self.selezoutui.lin_specialChars.setText(''.join(self.conf.getParam('settings', 'delChars')))
pass
except:
self.log.critical("SelezUscita: Configurazione non accettata")
self.log.critical(tr("SelezUscita: Configurazione non accettata"))
pass
def applica(self):
self.log.info("Applico Impostazioni File Uscita")
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()
@@ -474,8 +472,8 @@ class bananaSelezOut(PyQt5.QtWidgets.QWidget):
splconf['docStruct']['outNameFormat'] = splconf['docStruct']['outNameSep'].join(nametemp)+splconf['docStruct']['outExt']
#costruisco messageBox
msgb = QMessageBox(parent=self, icon=QMessageBox.Warning, text="Sto SPLITTANDO, attendi..")
msgb.setWindowTitle("Sto Splittando..")
msgb = QMessageBox(parent=self, icon=QMessageBox.Warning, text=tr("Sto SPLITTANDO, attendi.."))
msgb.setWindowTitle(tr("Sto Splittando.."))
msgb.show()
@pyqtSlot()
@@ -492,9 +490,9 @@ class bananaSelezOut(PyQt5.QtWidgets.QWidget):
tDict[f].run()
#QThreadPool.globalInstance().start(tDict[f])
except Exception as e:
self.log.error(f"Impossibile avviare lo splitter: {e}")
self.log.error(tr(f"Impossibile avviare lo splitter: {e}"))
msgb.setText('FINITO!')
msgb.setText(tr("FINITO!"))
pass
class bananaAdvOpt(PyQt5.QtWidgets.QWidget):
@@ -518,28 +516,28 @@ class bananaAdvOpt(PyQt5.QtWidgets.QWidget):
try:
self.advoptui.txt_confFile.setPlainText(json.dumps(self.conf.dump(),indent=2))
except:
self.log.critical("AdvancedOptions: Configurazione non accettata")
self.log.critical(tr("AdvancedOptions: Configurazione non accettata"))
pass
def accetta(self):
self.errmsg = QMessageBox()
self.errmsg.setModal(True)
self.errmsg.setWindowTitle("Avanzate Globali")
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("Parametri inseriti validi, configurazione accettata")
self.log.info(tr("Parametri inseriti validi, configurazione accettata"))
self.errmsg.setIcon(QMessageBox.Information)
self.errmsg.setText("Parametri inseriti validi, configurazione accettata")
self.errmsg.setText(tr("Parametri inseriti validi, configurazione accettata"))
self.errmsg.show()
self.update.emit()
self.hide()
except Exception as e:
self.log.error(f"Errore nei parametri! {e}")
self.log.error(tr(f"Errore nei parametri! {e}"))
self.errmsg.setIcon(QMessageBox.Critical)
self.errmsg.setText(f"Errore nei parametri!\n{e}")
self.errmsg.setText(tr(f"Errore nei parametri!\n{e}"))
self.errmsg.show()
pass
@@ -553,6 +551,13 @@ class bananaSplitterInterface(PyQt5.QtWidgets.QWidget):
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 ################################
#############################################################
@@ -562,8 +567,25 @@ def except_hook(cls, exception, traceback):
if __name__ == '__main__':
app = PyQt5.QtWidgets.QApplication(sys.argv)
sys.excepthook = except_hook
window = bananaMain()
window.resize(window.sizeHint().width(), window.size().height())
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))

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):
@@ -60,15 +60,15 @@ class bananaCONF(object):
def save(self, fName=None):
if fName is None:
fName=self.inUse
self.log.info("Salvo la configurazione: {}".format(fName))
self.log.info(tr("Salvo la configurazione: {}").format(fName))
try:
f=open(fName, 'w')
json.dump(self.settingsList[self.inUse], f, indent='\t')
f.close()
except IOError as e:
self.log.error("Impossibile salvare il file: {} - [{}]".format(fName,e))
self.log.error(tr("Impossibile salvare il file: {} - [{}]").format(fName,e))
except Exception as ei:
self.log.error("Errore imprevisto nella scrittura del file: {}".format(ei))
self.log.error(tr("Errore imprevisto nella scrittura del file: {}").format(ei))
pass
def getFiles(self):
@@ -81,7 +81,7 @@ class bananaCONF(object):
rv = rv[k]
return rv
except ValueError as ve:
self.log.error("Parametro di configurazione non valido! [{}]".format(ve))
self.log.error(tr("Parametro di configurazione non valido! [{}]").format(ve))
return False
pass
@@ -93,7 +93,7 @@ class bananaCONF(object):
sv[keys[-1]] = val
return True
except ValueError as ve:
self.log.error("Parametro di configurazione non valido! [{}]".format(ve))
self.log.error(tr("Parametro di configurazione non valido! [{}]").format(ve))
return False
pass

View File

@@ -24,7 +24,7 @@ class bananaSPLITTER(QObject):
self.duplicateNumber=0
#self.log.debug(f"Configurazione: \n {json.dumps(fileParams, indent=2)}")
if fileParams is not None:
self.log.debug("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']
@@ -33,12 +33,12 @@ class bananaSPLITTER(QObject):
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.sendStatus.emit(f"Inizio {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()
@@ -48,13 +48,13 @@ class bananaSPLITTER(QObject):
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.contentList):
ff['duplicate']=False
self.contentList[idx]=ff
self.log.warn('Salto il controllo dei duplicati..')
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):
@@ -63,7 +63,7 @@ class bananaSPLITTER(QObject):
for f in os.listdir(self.outPath):
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)
@@ -71,10 +71,10 @@ class bananaSPLITTER(QObject):
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)
@@ -86,12 +86,12 @@ class bananaSPLITTER(QObject):
def openFile(self):
try:
#os.chdir(self.paths["INworkPath"])
self.log.info("Carico il contenuto..")
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:
@@ -99,7 +99,7 @@ class bananaSPLITTER(QObject):
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:
@@ -111,12 +111,12 @@ class bananaSPLITTER(QObject):
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("Individuo il contenuto..")
self.log.info(tr("Individuo il contenuto.."))
self.bodyCounter=0
self.duplicateNumber=0
docNumber = 0
@@ -142,7 +142,7 @@ class bananaSPLITTER(QObject):
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("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].upper() in self.docStruct['language']['headWords']:
#cambio stato e inizializzo un nuovo documento da riempire
@@ -166,13 +166,13 @@ class bananaSPLITTER(QObject):
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(l.strip()))
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("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()
@@ -184,8 +184,8 @@ class bananaSPLITTER(QObject):
#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("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.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
@@ -211,18 +211,18 @@ class bananaSPLITTER(QObject):
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 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
@@ -246,7 +246,7 @@ class bananaSPLITTER(QObject):
pass
else:
if self.settings["showSkipped"]:
self.log.warn("Il conto dei documenti non torna! LexisNexis ne ha saltato qualcuno!\n Precedente:{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:
@@ -267,12 +267,12 @@ class bananaSPLITTER(QObject):
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['language']['headWords']:
#cambio stato e inizializzo un nuovo documento da riempire
@@ -286,7 +286,7 @@ class bananaSPLITTER(QObject):
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()
@@ -304,8 +304,8 @@ class bananaSPLITTER(QObject):
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
@@ -321,13 +321,13 @@ class bananaSPLITTER(QObject):
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
@@ -344,18 +344,18 @@ class bananaSPLITTER(QObject):
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.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.outPath))
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:
@@ -371,20 +371,20 @@ class bananaSPLITTER(QObject):
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(f"Chiave {ke} non trovata per:{outFileCounter} {ff['title']} ")
self.log.error(tr(f"Chiave {ke} non trovata per:{outFileCounter} {ff['title']} "))
except Exception as ee:
traceback.print_exc()
self.log.error(f"Errore generale nel salvataggio: {ee}")
self.log.error(tr(f"Errore generale nel salvataggio: {ee}"))
if outFileCounter < self.bodyCounter:
self.log.error("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))
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)
@@ -394,9 +394,9 @@ class bananaSPLITTER(QObject):
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(f"Errore generale nel salvataggio: {ee}")
self.log.error(tr(f"Errore generale nel salvataggio: {ee}"))
pass