Cherry-picking upstream version 0.9.0+20150925.

Cleaned up debian/.gitignore
Switched to experimental because of LXQt namespace change
Added minimum version for liblxqt0-dev (>= 0.9.0+20150911)
Merged changelog, removed outdated entries
ubuntu/bionic
Alf Gaida 9 years ago
parent e570272d52
commit e1cbc09a41

2
debian/.gitignore vendored

@ -5,5 +5,3 @@
/lxqt-panel/
/lxqt-panel-dbg/
/lxqt-panel-qt5/
/lxqt-panel-qt5-dbg/

14
debian/changelog vendored

@ -1,13 +1,13 @@
lxqt-panel (0.9.0+20150830-1) unstable; urgency=medium
lxqt-panel (0.9.0+20150925-1) experimental; urgency=medium
[ Alf Gaida ]
* Cherry-picked upstream version 0.9.0+20150830.
* Cherry-picked upstream version 0.9.0+20150925.
* Cleaned up debian/.gitignore
* Switched to experimental because of LXQt namespace change
* Added minimum version for liblxqt0-dev (>= 0.9.0+20150911)
* Added upstream signing key and use it in watch file
* Some cleanup in debian $foo
* some changes in debian $foo
* drop transitional packages
* some minimum versions added
* drop breaks/replaces
* drop breaks/replaces
* append -Wl,--as-needed to linker flags
* copyright fixed, the panel uses only LGPL2.1+, file headers
fixed upstream
@ -21,4 +21,4 @@ lxqt-panel (0.9.0+20150830-1) unstable; urgency=medium
* Sorting build-depends.
* Removing whitespaces at EOL and EOF.
-- Alf Gaida <agaida@siduction.org> Sun, 15 Feb 2015 16:08:24 +0100
-- Alf Gaida <agaida@siduction.org> Sat, 26 Sep 2015 03:39:36 +0200

2
debian/control vendored

@ -11,7 +11,7 @@ Build-Depends: cmake (>= 3.0.2),
libdbusmenu-qt5-dev,
libglib2.0-dev,
libicu-dev,
liblxqt0-dev,
liblxqt0-dev (>= 0.9.0-20150911),
liblxqt-globalkeys0-dev,
liblxqt-globalkeys-ui0-dev,
libkf5windowsystem-dev,

@ -184,7 +184,7 @@
<message>
<location filename="../config/configpaneldialog.ui" line="217"/>
<source>Auto-hide</source>
<translation type="unfinished"></translation>
<translation>Nascondi automaticamente</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="233"/>
@ -289,7 +289,7 @@
<message>
<location filename="../lxqtpanel.cpp" line="973"/>
<source>Configure Panel...</source>
<translation>Configura pannello...</translation>
<translation>Configura panello...</translation>
</message>
<message>
<location filename="../lxqtpanel.cpp" line="978"/>

@ -1,359 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<context>
<name>ConfigPanelDialog</name>
<message>
<source>Configure panel</source>
<translation type="vanished">Configura il pannello</translation>
</message>
<message>
<source>Panel size</source>
<translation type="vanished">Dimensione pannello</translation>
</message>
<message>
<source>Size:</source>
<translation type="vanished">Dimensione:</translation>
</message>
<message>
<source>px</source>
<translation type="vanished">px</translation>
</message>
<message>
<source>Use automatic sizing</source>
<translation type="vanished">Usa dimensionamento automatico</translation>
</message>
<message>
<source>Panel length &amp;&amp; position</source>
<translation type="vanished">Lunghezza e posizione del pannello</translation>
</message>
<message>
<source>Left</source>
<translation type="vanished">Sinistra</translation>
</message>
<message>
<source>Center</source>
<translation type="vanished">Centro</translation>
</message>
<message>
<source>Right</source>
<translation type="vanished">Destra</translation>
</message>
<message>
<source>%</source>
<translation type="vanished">%</translation>
</message>
<message>
<source>Alignment:</source>
<translation type="vanished">Allineamento:</translation>
</message>
<message>
<source>Length:</source>
<translation type="vanished">Lunghezza:</translation>
</message>
<message>
<source>Position:</source>
<translation type="vanished">Posizione:</translation>
</message>
<message>
<source>Top of desktop</source>
<translation type="vanished">Alto del desktop</translation>
</message>
<message>
<source>Left of desktop</source>
<translation type="vanished">Sinistra del desktop</translation>
</message>
<message>
<source>Right of desktop</source>
<translation type="vanished">Destra del desktop</translation>
</message>
<message>
<source>Bottom of desktop</source>
<translation type="vanished">Basso del desktop</translation>
</message>
<message>
<source>Top of desktop %1</source>
<translation type="vanished">Alto del desktop %1</translation>
</message>
<message>
<source>Left of desktop %1</source>
<translation type="vanished">Sinistra del desktop %1</translation>
</message>
<message>
<source>Right of desktop %1</source>
<translation type="vanished">Destra del desktop %1</translation>
</message>
<message>
<source>Bottom of desktop %1</source>
<translation type="vanished">Basso del desktop %1</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="80"/>
<location filename="../config/configpaneldialog.cpp" line="86"/>
<source>Configure Panel</source>
<translation>Configura panello</translation>
</message>
</context>
<context>
<name>ConfigPanelWidget</name>
<message>
<location filename="../config/configpaneldialog.ui" line="20"/>
<source>Configure panel</source>
<translation>Configura panello</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="32"/>
<source>Size</source>
<translation>Dimensione</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="41"/>
<source>Size:</source>
<translation>Dimensione:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="48"/>
<location filename="../config/configpaneldialog.ui" line="82"/>
<source> px</source>
<translation></translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="58"/>
<source>Icon size:</source>
<translation>Dimensione icone:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="65"/>
<source>Length:</source>
<translation>Lunghezza:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="110"/>
<source>&lt;p&gt;Negative pixel value sets the panel length to that many pixels less than available screen space.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;i&gt;E.g. &quot;Length&quot; set to -100px, screen size is 1000px, then real panel length will be 900 px.&lt;/i&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;Valori negativi impongano una lunghezza del panello di quel numero di pixel meno dello spazio disponibile. &lt;/p&gt;&lt;p/&gt;&lt;p&gt;&lt;i&gt;Esempio: -100px e schermo di 1280px = 1180px&lt;/i&gt;&lt;/p&gt;</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="124"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="129"/>
<source>px</source>
<translation>px</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="140"/>
<source>Rows count:</source>
<translation>Numero righe:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="172"/>
<source>Alignment &amp;&amp; position</source>
<translation>Allineamento e posizione</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="182"/>
<location filename="../config/configpaneldialog.cpp" line="234"/>
<source>Left</source>
<translation>Sinistra</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="187"/>
<location filename="../config/configpaneldialog.cpp" line="235"/>
<location filename="../config/configpaneldialog.cpp" line="241"/>
<source>Center</source>
<translation>Centro</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="192"/>
<location filename="../config/configpaneldialog.cpp" line="236"/>
<source>Right</source>
<translation>Destra</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="200"/>
<source>Alignment:</source>
<translation>Allineamento:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="210"/>
<source>Position:</source>
<translation>Posizione:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="217"/>
<source>Auto-hide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="233"/>
<source>Styling</source>
<translation>Aspetto</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="239"/>
<source>Custom font color:</source>
<translation>Colore carattere personalizzato:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="246"/>
<source>Custom background image:</source>
<translation>Immagine sfondo:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="260"/>
<source>Custom background color:</source>
<translation>Colore sfondo personalizzato:</translation>
</message>
<message>
<location filename="../config/configpaneldialog.ui" line="351"/>
<source>Opacity</source>
<translation>Trasparenza</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="200"/>
<source>Top of desktop</source>
<translation>Alto del desktop</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="201"/>
<source>Left of desktop</source>
<translation>Sinistra del desktop</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="202"/>
<source>Right of desktop</source>
<translation>Destra del desktop</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="203"/>
<source>Bottom of desktop</source>
<translation>Basso del desktop</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="212"/>
<source>Top of desktop %1</source>
<translation>Alto del desktop %1</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="213"/>
<source>Left of desktop %1</source>
<translation>Sinistra del desktop %1</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="214"/>
<source>Right of desktop %1</source>
<translation>Destra del desktop %1</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="215"/>
<source>Bottom of desktop %1</source>
<translation>Basso del desktop %1</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="240"/>
<source>Top</source>
<translation>In cima</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="242"/>
<source>Bottom</source>
<translation>In fondo</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="397"/>
<location filename="../config/configpaneldialog.cpp" line="411"/>
<source>Pick color</source>
<translation>Scegli colore</translation>
</message>
<message>
<location filename="../config/configpaneldialog.cpp" line="431"/>
<source>Images (*.png *.gif *.jpg)</source>
<translation>Immagini (*.png *.gif *.jpg)</translation>
</message>
</context>
<context>
<name>LXQtPanel</name>
<message>
<location filename="../lxqtpanel.cpp" line="623"/>
<source>Add Panel Widgets</source>
<translation>Aggiungi elementi</translation>
</message>
<message>
<location filename="../lxqtpanel.cpp" line="951"/>
<location filename="../lxqtpanel.cpp" line="970"/>
<source>Panel</source>
<translation>Panello</translation>
</message>
<message>
<location filename="../lxqtpanel.cpp" line="973"/>
<source>Configure Panel...</source>
<translation>Configura pannello...</translation>
</message>
<message>
<location filename="../lxqtpanel.cpp" line="978"/>
<source>Add Panel Widgets...</source>
<translatorcomment>Call them &quot;plugins&quot; better?</translatorcomment>
<translation>Aggiungi elementi...</translation>
</message>
<message>
<location filename="../lxqtpanel.cpp" line="984"/>
<source>Add Panel</source>
<translation>Aggiungi panello</translation>
</message>
<message>
<location filename="../lxqtpanel.cpp" line="991"/>
<source>Remove Panel</source>
<translation>Rimuovi panello</translation>
</message>
<message>
<source>Configure panel...</source>
<translation type="vanished">Configura pannello...</translation>
</message>
<message>
<source>Add plugins ...</source>
<translation type="vanished">Aggiungi plugin...</translation>
</message>
</context>
<context>
<name>LXQtPanelPlugin</name>
<message>
<source>Configure</source>
<translation type="vanished">Configura</translation>
</message>
<message>
<source>Move</source>
<translation type="vanished">Sposta</translation>
</message>
<message>
<source>Remove</source>
<translation type="vanished">Rimuovi</translation>
</message>
</context>
<context>
<name>LXQtPanelPrivate</name>
<message>
<source>Configure panel</source>
<translation type="vanished">Configura pannello</translation>
</message>
</context>
<context>
<name>Plugin</name>
<message>
<location filename="../plugin.cpp" line="395"/>
<source>Configure &quot;%1&quot;</source>
<translation>Configura &quot;%1&quot;</translation>
</message>
<message>
<location filename="../plugin.cpp" line="400"/>
<source>Move &quot;%1&quot;</source>
<translation>Sposta &quot;%1&quot;</translation>
</message>
<message>
<location filename="../plugin.cpp" line="408"/>
<source>Remove &quot;%1&quot;</source>
<translation>Rimuovi &quot;%1&quot;</translation>
</message>
</context>
</TS>

@ -0,0 +1,3 @@
Comment[it]=Orologio e calendario
Name[it]=Orologio

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>FirstDayCombo</name>
<message>
<location filename="../lxqtclockconfiguration.cpp" line="50"/>
<source>&lt;locale based&gt;</source>
<translation type="unfinished"></translation>
<translation>&lt;basato su locale&gt;</translation>
</message>
</context>
<context>
@ -63,12 +63,12 @@
<message>
<location filename="../lxqtclockconfiguration.ui" line="100"/>
<source>Show date below time on new &amp;line</source>
<translation>Mostra la data su una seconda riga</translation>
<translation>Mostra la data su una &amp;seconda riga</translation>
</message>
<message>
<location filename="../lxqtclockconfiguration.ui" line="107"/>
<source>First day of week in calendar</source>
<translation type="unfinished"></translation>
<translation>Primo giorno della settimana</translation>
</message>
<message>
<location filename="../lxqtclockconfiguration.ui" line="124"/>
@ -78,7 +78,7 @@
<message>
<location filename="../lxqtclockconfiguration.ui" line="130"/>
<source>Auto&amp;rotate when the panel is vertical</source>
<translation>Ruota automaticamente se il panello è verticale</translation>
<translation>&amp;Ruota automaticamente se il panello è verticale</translation>
</message>
<message>
<source>&amp;Font</source>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Date & time
Comment=Displays the current time. Comes with a calendar.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Orologio e calendario
Name[it_IT]=Orologio

@ -28,6 +28,7 @@
#include "colorpicker.h"
#include <QMouseEvent>
#include <QHBoxLayout>
#include <QScreen>
ColorPicker::ColorPicker(const ILXQtPanelPluginStartupInfo &startupInfo) :
@ -82,7 +83,7 @@ void ColorPickerWidget::mouseReleaseEvent(QMouseEvent *event)
return;
WId id = QApplication::desktop()->winId();
QPixmap pixmap = QPixmap::grabWindow(id, event->globalX(), event->globalY(), 1, 1);
QPixmap pixmap = qApp->primaryScreen()->grabWindow(id, event->globalX(), event->globalY(), 1, 1);
QImage img = pixmap.toImage();
QColor col = QColor(img.pixel(0,0));

@ -1,6 +1,6 @@
[Desktop Entry]
Type=Service
ServiceTypes=LxQtPanel/Plugin
ServiceTypes=LXQtPanel/Plugin
Name=Color picker
Comment=Get the color under the cursor. For web developers.

@ -0,0 +1,3 @@
Comment[it]=Rileva il colore sotto il cursore. Per sviluppatori web.
Name[it]=Selettore del colore

@ -1,10 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Color picker
Comment=Get the color under the cursor. For web developers.
# Translations
Comment[it_IT]=Rileva il colore sotto il cursore. Per sviluppatori web.
Name[it_IT]=Selettore del colore

@ -0,0 +1,3 @@
Comment[it]=Monitor del carico del processore
Name[it]=Carico del processore

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>LXQtCpuLoad</name>
<message>
@ -10,7 +10,7 @@
<message>
<location filename="../lxqtcpuload.cpp" line="124"/>
<source>CPU load %1%</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Carico del processore %1%</translation>
</message>
</context>
<context>
@ -22,7 +22,7 @@
<message>
<location filename="../lxqtcpuloadconfiguration.ui" line="14"/>
<source>CPU Load Settings</source>
<translation type="unfinished"></translation>
<translation>Impostazioni di carica del processore</translation>
</message>
<message>
<location filename="../lxqtcpuloadconfiguration.ui" line="20"/>
@ -52,7 +52,7 @@
<message>
<location filename="../lxqtcpuloadconfiguration.ui" line="81"/>
<source>Bar width:</source>
<translation type="unfinished"></translation>
<translation>Larghezza barra:</translation>
</message>
<message>
<location filename="../lxqtcpuloadconfiguration.cpp" line="70"/>

@ -1,13 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Cpu monitor
Comment=Displays the current CPU load.
# Translations
Comment[it_IT]=Monitor del carico del processore
Name[it_IT]=Carico del processore

@ -0,0 +1,2 @@
Comment[it]=Permette di passare ad altri desktop virtuali
Name[it]=Cambia desktop

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>DesktopSwitch</name>
<message>
<location filename="../desktopswitch.cpp" line="83"/>
<source>Switch to desktop %1</source>
<translation type="unfinished"></translation>
<translation>Cambia al desktop %1</translation>
</message>
<message>
<location filename="../desktopswitch.cpp" line="123"/>
@ -20,27 +20,27 @@
<message>
<location filename="../desktopswitchconfiguration.ui" line="14"/>
<source>DesktopSwitch settings</source>
<translation type="unfinished"></translation>
<translation>Preferenze cambia desktop</translation>
</message>
<message>
<location filename="../desktopswitchconfiguration.ui" line="20"/>
<source>Number of rows:</source>
<translation type="unfinished"></translation>
<translation>Numero righe:</translation>
</message>
<message>
<location filename="../desktopswitchconfiguration.ui" line="40"/>
<source>Desktop labels:</source>
<translation type="unfinished"></translation>
<translation>Etichette desktop:</translation>
</message>
<message>
<location filename="../desktopswitchconfiguration.ui" line="58"/>
<source>Numbers</source>
<translation type="unfinished"></translation>
<translation>Numeri</translation>
</message>
<message>
<location filename="../desktopswitchconfiguration.ui" line="63"/>
<source>Names</source>
<translation type="unfinished"></translation>
<translation>Nomi</translation>
</message>
</context>
</TS>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Desktop switcher
Comment=Allows easy switching between virtual desktops.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Permette di passare ad altri desktop virtuali
Name[it_IT]=Cambia desktop

@ -0,0 +1,2 @@
Name[it]=Menù cartella
Comment[it]=Mostra il contenuto di una cartella

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it">
<context>
<name>DirectoryMenu</name>
<message>
<location filename="../directorymenu.cpp" line="146"/>
<source>Open</source>
<translation>Apri</translation>
</message>
</context>
<context>
<name>DirectoryMenuConfiguration</name>
<message>
<location filename="../directorymenuconfiguration.ui" line="14"/>
<source>Directory Menu Settings</source>
<translation>Impostazioni del menu</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.ui" line="20"/>
<source>Appearance</source>
<translation>Aspetto</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.ui" line="26"/>
<source>Base directory:</source>
<translation>Cartella mostrata:</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.ui" line="39"/>
<source>BaseDirectoryName</source>
<translation>Nome della cartella</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.ui" line="46"/>
<source>Icon:</source>
<translation>Icona:</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.cpp" line="107"/>
<source>Choose Base Directory</source>
<translation>Seleziona cartella mostrata</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.cpp" line="122"/>
<source>Choose Icon</source>
<translation>Seleziona icona</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.cpp" line="123"/>
<source>Icons (*.png *.xpm *.jpg)</source>
<translation>Icone (*.png .xpm *.jpg)</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.cpp" line="131"/>
<source>Directory Menu</source>
<translation>Menu cartella</translation>
</message>
<message>
<location filename="../directorymenuconfiguration.cpp" line="131"/>
<source>An error occurred while loading the icon.</source>
<translation>Errore caricando l&apos;icona.</translation>
</message>
</context>
</TS>

@ -0,0 +1,2 @@
Name[it]=Disposizione della tastiera
Comment[it]=Mostra lo stato e la mappatura della tastiera

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it">
<context>
<name>LXQtKbIndicatorConfiguration</name>
<message>
<location filename="../lxqtkbindicatorconfiguration.ui" line="14"/>
<source>Keyboard Indicator Settings</source>
<translation>Indicatori</translation>
</message>
<message>
<location filename="../lxqtkbindicatorconfiguration.ui" line="20"/>
<source>Caps Lock</source>
<translation>Blocco maiuscolo</translation>
</message>
<message>
<location filename="../lxqtkbindicatorconfiguration.ui" line="27"/>
<source>Num Lock</source>
<translation>Blocco numeri</translation>
</message>
<message>
<location filename="../lxqtkbindicatorconfiguration.ui" line="34"/>
<source>Scroll Lock</source>
<translation>Blocco scorrimento</translation>
</message>
</context>
</TS>

@ -0,0 +1,2 @@
Comment[it]=Avviatore delle applicazioni basato su menù
Name[it]=Menù delle applicazioni

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>LXQtMainMenu</name>
<message>
<location filename="../lxqtmainmenu.cpp" line="245"/>
<source>Show/hide main menu</source>
<translation>Mostra/nascondi menu principale</translation>
<translation>Mostra/nascondi menù principale</translation>
</message>
<message>
<source>Leave</source>
@ -35,7 +35,7 @@
<message>
<location filename="../lxqtmainmenuconfiguration.ui" line="14"/>
<source>Main Menu settings</source>
<translation>Impostazioni del menu principale di LXQt</translation>
<translation>Impostazioni del menù principale di LXQt</translation>
</message>
<message>
<location filename="../lxqtmainmenuconfiguration.ui" line="35"/>
@ -55,12 +55,12 @@
<message>
<location filename="../lxqtmainmenuconfiguration.ui" line="81"/>
<source>Menu file</source>
<translation>File del menu</translation>
<translation>File del menù</translation>
</message>
<message>
<location filename="../lxqtmainmenuconfiguration.ui" line="87"/>
<source>Menu file:</source>
<translation>File del menu:</translation>
<translation>File del menù:</translation>
</message>
<message>
<location filename="../lxqtmainmenuconfiguration.ui" line="101"/>
@ -85,12 +85,12 @@
<message>
<location filename="../lxqtmainmenuconfiguration.cpp" line="100"/>
<source>Choose menu file</source>
<translation>Scegli il file del menu</translation>
<translation>Scegli il file del menù</translation>
</message>
<message>
<location filename="../lxqtmainmenuconfiguration.cpp" line="100"/>
<source>Menu files (*.menu)</source>
<translation>File del menu (*.menu)</translation>
<translation>File del menù (*.menu)</translation>
</message>
</context>
</TS>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Application menu
Comment=A menu of all your applications.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Avviatore delle applicazioni basato su menu
Name[it_IT]=Menu delle applicazioni

@ -0,0 +1,2 @@
Name[it]=Dispositivi rimovibili
Comment[it]=Gestore dei dispositivi rimovibili (USB, CD, DVD, ...)

@ -1,22 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>DeviceActionInfo</name>
<message>
<location filename="../actions/deviceaction_info.cpp" line="45"/>
<source>The device &lt;b&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/b&gt; is connected.</source>
<translation type="unfinished">Il dispositivo &lt;b&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/b&gt; è connesso.</translation>
<translation>Il dispositivo &lt;b&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/b&gt; è connesso.</translation>
</message>
<message>
<location filename="../actions/deviceaction_info.cpp" line="53"/>
<source>The device &lt;b&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/b&gt; is removed.</source>
<translation type="unfinished">Il dispositivo &lt;b&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/b&gt; è stato rimosso.</translation>
<translation>Il dispositivo &lt;b&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/b&gt; è stato rimosso.</translation>
</message>
<message>
<location filename="../actions/deviceaction_info.cpp" line="59"/>
<source>Removable media/devices manager</source>
<translation type="unfinished">Gestore dei dispositivi rimovibili</translation>
<translation>Gestore dei dispositivi rimovibili</translation>
</message>
</context>
<context>
@ -28,7 +28,7 @@
<message>
<location filename="../lxqtmountconfiguration.ui" line="14"/>
<source>Removable Media Settings</source>
<translation type="unfinished"></translation>
<translation>Impostazioni dispositivi rimovibili</translation>
</message>
<message>
<location filename="../lxqtmountconfiguration.ui" line="20"/>
@ -70,17 +70,17 @@
<location filename="../menudiskitem.cpp" line="120"/>
<location filename="../menudiskitem.cpp" line="155"/>
<source>Removable media/devices manager</source>
<translation type="unfinished">Gestore dei dispositivi rimovibili</translation>
<translation>Gestore dei dispositivi rimovibili</translation>
</message>
<message>
<location filename="../menudiskitem.cpp" line="121"/>
<source>Mounting of &lt;strong&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/strong&gt; failed: %2</source>
<translation type="unfinished"></translation>
<translation>Montaggio di &lt;strong&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/strong&gt; non riuscito: %2</translation>
</message>
<message>
<location filename="../menudiskitem.cpp" line="156"/>
<source>Unmounting of &lt;strong&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/strong&gt; failed: %2</source>
<translation type="unfinished"></translation>
<translation>Smontaggio di &lt;strong&gt;&lt;nobr&gt;&quot;%1&quot;&lt;/nobr&gt;&lt;/strong&gt; non riuscito: %2</translation>
</message>
</context>
<context>
@ -108,7 +108,7 @@
<message>
<location filename="../popup.cpp" line="68"/>
<source>No devices are available</source>
<translation type="unfinished"></translation>
<translation>Nessun dispositivo presente</translation>
</message>
</context>
</TS>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Removable media
Comment=Easy mounting and unmounting of USB and optical drives.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Gestore dei dispositivi rimovibili (USB, CD, DVD, ...)
Name[it_IT]=Dispositivi rimovibili

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>LXQtNetworkMonitor</name>
<message>

@ -0,0 +1,3 @@
Comment[it]=Avvia le applicazioni preferite
Name[it]=Avvio rapido

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>LXQtQuickLaunch</name>
<message>
<location filename="../lxqtquicklaunch.cpp" line="219"/>
<source>Drop Error</source>
<translation>Errore di spostamento</translation>
<translation>Errore di trascinamento</translation>
</message>
<message>
<location filename="../lxqtquicklaunch.cpp" line="220"/>
@ -17,7 +17,8 @@
<location filename="../lxqtquicklaunch.cpp" line="327"/>
<source>Drop application
icons here</source>
<translation type="unfinished"></translation>
<translation>Trascina applicazioni
dal menù qui</translation>
</message>
</context>
<context>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Quick launch
Comment=Easy access to your favourite applications.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Avvia le tue applicazioni preferite
Name[it_IT]=Avvio rapido

@ -0,0 +1,3 @@
Comment[it]=Attiva un salvaschermo e/o blocca lo schermo
Name[it]=Salvaschermo

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>PanelScreenSaver</name>
<message>
@ -10,12 +10,12 @@
<message>
<location filename="../panelscreensaver.cpp" line="52"/>
<source>Lock Screen</source>
<translation type="unfinished"></translation>
<translation>Blocca schermo</translation>
</message>
<message>
<location filename="../panelscreensaver.cpp" line="67"/>
<source>Panel Screensaver: Global shortcut &apos;%1&apos; cannot be registered</source>
<translation type="unfinished"></translation>
<translation>La scorciatoia globale per lo screensaver: &apos;%1&apos; non può essere registrata</translation>
</message>
</context>
</TS>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Launch screensaver
Comment=Activate a screensaver and/or lock the screen
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Attiva un salvaschermo e/o blocca lo schermo
Name[it_IT]=Salvaschermo

@ -0,0 +1,3 @@
Name[it]=Sensori
Comment[it]=Visualizza i valori rilevati dai sensori hardware (attualmente lm_sensors)

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>LXQtSensorsConfiguration</name>
<message>
@ -10,7 +10,7 @@
<message>
<location filename="../lxqtsensorsconfiguration.ui" line="14"/>
<source>Sensors Settings</source>
<translation type="unfinished"></translation>
<translation>Impostazioni sensori</translation>
</message>
<message>
<location filename="../lxqtsensorsconfiguration.ui" line="30"/>

@ -1,10 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Sensors
Comment=View readings from hardware sensors.
# Translations
Name[it_IT]=Sensori
Comment[it_IT]=Visualizza i valori rilevati dai sensori hardware (attualmente lm_sensors)

@ -0,0 +1,2 @@
Comment[it]=Minimizza tutte le finestre e mostra la scrivania
Name[it]=Mostra scrivania

@ -1,22 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>ShowDesktop</name>
<message>
<location filename="../showdesktop.cpp" line="48"/>
<source>Show desktop</source>
<translation type="unfinished"></translation>
<translation>Mostra scrivania</translation>
</message>
<message>
<location filename="../showdesktop.cpp" line="69"/>
<source>Show Desktop: Global shortcut &apos;%1&apos; cannot be registered</source>
<translation>Mostra desktop: la scorciatoia globale &apos;%1&apos; non può essere registrata</translation>
<translation>Mostra scrivania: la scorciatoia globale &apos;%1&apos; non può essere registrata</translation>
</message>
<message>
<location filename="../showdesktop.cpp" line="55"/>
<source>Show Desktop</source>
<translation>Mostra desktop</translation>
<translation>Mostra scrivania</translation>
</message>
</context>
</TS>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Show desktop
Comment=Minimize all windows and show the desktop
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Minimizza tutte le finestre e mostra il desktop
Name[it_IT]=Mostra desktop

@ -0,0 +1,2 @@
Name[it]=Spaziatore
Comment[it]=Aggiunge uno spazio fra gli elementi

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it" sourcelanguage="it">
<context>
<name>SpacerConfiguration</name>
<message>
<location filename="../spacerconfiguration.ui" line="12"/>
<source>Spacer Settings</source>
<translation>Impostazioni spaziatore</translation>
</message>
<message>
<location filename="../spacerconfiguration.ui" line="18"/>
<source>Space width:</source>
<translation>Larghezza:</translation>
</message>
<message>
<location filename="../spacerconfiguration.ui" line="38"/>
<source>Space type:</source>
<translation>Tipo:</translation>
</message>
</context>
</TS>

@ -10,6 +10,7 @@ set(HEADERS
statusnotifieriteminterface.h
statusnotifierwatcher.h
statusnotifierwidget.h
sniasync.h
)
set(SOURCES
@ -19,6 +20,7 @@ set(SOURCES
statusnotifieriteminterface.cpp
statusnotifierwatcher.cpp
statusnotifierwidget.cpp
sniasync.cpp
)
qt5_add_dbus_adaptor(SOURCES

@ -0,0 +1,48 @@
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* http://lxqt.org
*
* Copyright: 2015 LXQt team
* Authors:
* Palo Kisa <palo.kisa@gmail.com>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#include "sniasync.h"
SniAsync::SniAsync(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent/* = 0*/)
: QObject(parent)
, mSni{service, path, connection}
{
//forward StatusNotifierItem signals
connect(&mSni, &org::kde::StatusNotifierItem::NewAttentionIcon, this, &SniAsync::NewAttentionIcon);
connect(&mSni, &org::kde::StatusNotifierItem::NewIcon, this, &SniAsync::NewIcon);
connect(&mSni, &org::kde::StatusNotifierItem::NewOverlayIcon, this, &SniAsync::NewOverlayIcon);
connect(&mSni, &org::kde::StatusNotifierItem::NewStatus, this, &SniAsync::NewStatus);
connect(&mSni, &org::kde::StatusNotifierItem::NewTitle, this, &SniAsync::NewTitle);
connect(&mSni, &org::kde::StatusNotifierItem::NewToolTip, this, &SniAsync::NewToolTip);
}
QDBusPendingReply<QDBusVariant> SniAsync::asyncPropGet(QString const & property)
{
QDBusMessage msg = QDBusMessage::createMethodCall(mSni.service(), mSni.path(), QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("Get"));
msg << mSni.interface() << property;
return mSni.connection().asyncCall(msg);
}

@ -0,0 +1,116 @@
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* http://lxqt.org
*
* Copyright: 2015 LXQt team
* Authors:
* Palo Kisa <palo.kisa@gmail.com>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#if !defined(SNIASYNC_H)
#define SNIASYNC_H
#include <functional>
#include "statusnotifieriteminterface.h"
template<typename>
struct remove_class_type { using type = void; }; // bluff
template<typename C, typename R, typename... ArgTypes>
struct remove_class_type<R (C::*)(ArgTypes...)> { using type = R(ArgTypes...); };
template<typename C, typename R, typename... ArgTypes>
struct remove_class_type<R (C::*)(ArgTypes...) const> { using type = R(ArgTypes...); };
template <typename L>
class call_sig_helper
{
template <typename L1>
static decltype(&L1::operator()) test(int);
template <typename L1>
static void test(...); //bluff
public:
using type = decltype(test<L>(0));
};
template <typename L>
struct call_signature : public remove_class_type<typename call_sig_helper<L>::type> {};
template <typename R, typename... ArgTypes>
struct call_signature<R (ArgTypes...)> { using type = R (ArgTypes...); };
template <typename R, typename... ArgTypes>
struct call_signature<R (*)(ArgTypes...)> { using type = R (ArgTypes...); };
template <typename C, typename R, typename... ArgTypes>
struct call_signature<R (C::*)(ArgTypes...)> { using type = R (ArgTypes...); };
template<typename C, typename R, typename... ArgTypes>
struct call_signature<R (C::*)(ArgTypes...) const> { using type = R(ArgTypes...); };
template <typename> struct is_valid_signature : public std::false_type {};
template <typename Arg>
struct is_valid_signature<void (Arg)> : public std::true_type {};
class SniAsync : public QObject
{
Q_OBJECT
public:
SniAsync(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
template <typename F>
inline void propertyGetAsync(QString const &name, F finished)
{
static_assert(is_valid_signature<typename call_signature<F>::type>::value, "need callable (lambda, *function, callable obj) (Arg) -> void");
connect(new QDBusPendingCallWatcher{asyncPropGet(name), this},
&QDBusPendingCallWatcher::finished,
[this, finished, name] (QDBusPendingCallWatcher * call)
{
QDBusPendingReply<QVariant> reply = *call;
if (reply.isError())
qDebug() << "Error on DBus request:" << reply.error();
finished(qdbus_cast<typename std::function<typename call_signature<F>::type>::argument_type>(reply.value()));
call->deleteLater();
}
);
}
//exposed methods from org::kde::StatusNotifierItem
inline QString service() const { return mSni.service(); }
public slots:
//Forwarded slots from org::kde::StatusNotifierItem
inline QDBusPendingReply<> Activate(int x, int y) { return mSni.Activate(x, y); }
inline QDBusPendingReply<> ContextMenu(int x, int y) { return mSni.ContextMenu(x, y); }
inline QDBusPendingReply<> Scroll(int delta, const QString &orientation) { return mSni.Scroll(delta, orientation); }
inline QDBusPendingReply<> SecondaryActivate(int x, int y) { return mSni.SecondaryActivate(x, y); }
signals:
//Forwarded signals from org::kde::StatusNotifierItem
void NewAttentionIcon();
void NewIcon();
void NewOverlayIcon();
void NewStatus(const QString &status);
void NewTitle();
void NewToolTip();
private:
QDBusPendingReply<QDBusVariant> asyncPropGet(QString const & property);
private:
org::kde::StatusNotifierItem mSni;
};
#endif

@ -32,164 +32,189 @@
#include <QFile>
#include <dbusmenu-qt5/dbusmenuimporter.h>
#include "../panel/ilxqtpanelplugin.h"
#include "sniasync.h"
StatusNotifierButton::StatusNotifierButton(QString service, QString objectPath, ILXQtPanelPlugin* plugin, QWidget *parent)
: QToolButton(parent),
mMenu(NULL),
mMenu(nullptr),
mStatus(Passive),
mValid(true),
mFallbackIcon(QIcon::fromTheme("application-x-executable")),
mPlugin(plugin)
{
interface = new org::kde::StatusNotifierItem(service, objectPath, QDBusConnection::sessionBus(), this);
interface = new SniAsync(service, objectPath, QDBusConnection::sessionBus(), this);
QString menuPath = interface->menu().path();
if (!menuPath.isEmpty())
{
mMenu = (new DBusMenuImporter(service, interface->menu().path(), this))->menu();
dynamic_cast<QObject &>(*mMenu).setParent(this);
mMenu->setObjectName(QStringLiteral("StatusNotifierMenu"));
}
connect(interface, &SniAsync::NewIcon, this, &StatusNotifierButton::newIcon);
connect(interface, &SniAsync::NewOverlayIcon, this, &StatusNotifierButton::newOverlayIcon);
connect(interface, &SniAsync::NewAttentionIcon, this, &StatusNotifierButton::newAttentionIcon);
connect(interface, &SniAsync::NewToolTip, this, &StatusNotifierButton::newToolTip);
connect(interface, &SniAsync::NewStatus, this, &StatusNotifierButton::newStatus);
interface->propertyGetAsync(QStringLiteral("Menu"), [this] (QDBusObjectPath path) {
if (!path.path().isEmpty())
{
mMenu = (new DBusMenuImporter(interface->service(), path.path(), this))->menu();
dynamic_cast<QObject &>(*mMenu).setParent(this);
mMenu->setObjectName(QStringLiteral("StatusNotifierMenu"));
}
});
// HACK: sni-qt creates some invalid items (like one for konversarion 1.5)
if (interface->title().isEmpty() && interface->id().isEmpty())
mValid = false;
interface->propertyGetAsync(QStringLiteral("Status"), [this] (QString status) {
newStatus(status);
});
if (mValid)
{
newToolTip();
interface->propertyGetAsync(QStringLiteral("IconThemePath"), [this] (QString value) {
mThemePath = value;
//do the logic of icons after we've got the theme path
refetchIcon(Active);
refetchIcon(Passive);
refetchIcon(NeedsAttention);
newStatus(interface->status());
resetIcon();
connect(interface, SIGNAL(NewIcon()), this, SLOT(newIcon()));
connect(interface, SIGNAL(NewOverlayIcon()), this, SLOT(newOverlayIcon()));
connect(interface, SIGNAL(NewAttentionIcon()), this, SLOT(newAttentionIcon()));
connect(interface, SIGNAL(NewToolTip()), this, SLOT(newToolTip()));
connect(interface, SIGNAL(NewStatus(QString)), this, SLOT(newStatus(QString)));
}
});
newToolTip();
}
StatusNotifierButton::~StatusNotifierButton()
{
delete interface;
}
void StatusNotifierButton::newIcon()
{
refetchIcon(Passive);
resetIcon();
}
void StatusNotifierButton::newOverlayIcon()
{
refetchIcon(Active);
resetIcon();
}
void StatusNotifierButton::newAttentionIcon()
{
refetchIcon(NeedsAttention);
resetIcon();
}
void StatusNotifierButton::refetchIcon(Status status)
{
QString iconName;
switch (status)
QString nameProperty, pixmapProperty;
if (status == Active)
{
case Active:
iconName = interface->overlayIconName();
break;
case NeedsAttention:
iconName = interface->attentionIconName();
break;
case Passive:
iconName = interface->iconName();
break;
nameProperty = QStringLiteral("OverlayIconName");
pixmapProperty = QStringLiteral("OverlayIconPixmap");
}
QIcon nextIcon;
if (!iconName.isEmpty())
else if (status == NeedsAttention)
{
if (QIcon::hasThemeIcon(iconName))
nextIcon = QIcon::fromTheme(iconName);
else
nameProperty = QStringLiteral("AttentionIconName");
pixmapProperty = QStringLiteral("AttentionIconPixmap");
}
else // status == Passive
{
nameProperty = QStringLiteral("IconName");
pixmapProperty = QStringLiteral("IconPixmap");
}
interface->propertyGetAsync(nameProperty, [this, status, pixmapProperty] (QString iconName) {
QIcon nextIcon;
if (!iconName.isEmpty())
{
QDir themeDir(interface->iconThemePath());
if (themeDir.exists())
if (QIcon::hasThemeIcon(iconName))
nextIcon = QIcon::fromTheme(iconName);
else
{
if (themeDir.exists(iconName + ".png"))
nextIcon.addFile(themeDir.filePath(iconName + ".png"));
if (themeDir.cd("hicolor") || (themeDir.cd("icons") && themeDir.cd("hicolor")))
QDir themeDir(mThemePath);
if (themeDir.exists())
{
QStringList sizes = themeDir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
foreach (QString dir, sizes)
if (themeDir.exists(iconName + ".png"))
nextIcon.addFile(themeDir.filePath(iconName + ".png"));
if (themeDir.cd("hicolor") || (themeDir.cd("icons") && themeDir.cd("hicolor")))
{
QStringList dirs = QDir(themeDir.filePath(dir)).entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
foreach (QString innerDir, dirs)
QStringList sizes = themeDir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
foreach (QString dir, sizes)
{
QString file = themeDir.absolutePath() + "/" + dir + "/" + innerDir + "/" + iconName + ".png";
if (QFile::exists(file))
nextIcon.addFile(file);
QStringList dirs = QDir(themeDir.filePath(dir)).entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
foreach (QString innerDir, dirs)
{
QString file = themeDir.absolutePath() + "/" + dir + "/" + innerDir + "/" + iconName + ".png";
if (QFile::exists(file))
nextIcon.addFile(file);
}
}
}
}
}
switch (status)
{
case Active:
mOverlayIcon = nextIcon;
break;
case NeedsAttention:
mAttentionIcon = nextIcon;
break;
case Passive:
mIcon = nextIcon;
break;
}
resetIcon();
}
}
else
{
IconPixmapList iconPixmaps;
switch (status)
else
{
case Active:
iconPixmaps = interface->overlayIconPixmap();
break;
case NeedsAttention:
iconPixmaps = interface->attentionIconPixmap();
break;
case Passive:
iconPixmaps = interface->iconPixmap();
break;
}
interface->propertyGetAsync(pixmapProperty, [this, status, pixmapProperty] (IconPixmapList iconPixmaps) {
if (iconPixmaps.empty())
return;
QIcon nextIcon;
if (!iconPixmaps.empty() && !iconPixmaps.first().bytes.isNull())
{
IconPixmap iconPixmap = iconPixmaps.first();
QImage image((uchar*) iconPixmap.bytes.data(), iconPixmap.width, iconPixmap.height, QImage::Format_ARGB32);
const uchar *end = image.constBits() + image.byteCount();
uchar *dest = reinterpret_cast<uchar*>(iconPixmap.bytes.data());
for (const uchar *src = image.constBits(); src < end; src += 4, dest += 4)
qToUnaligned(qToBigEndian<quint32>(qFromUnaligned<quint32>(src)), dest);
QPixmap pixmap = QPixmap::fromImage(image);
nextIcon = QIcon(pixmap);
}
}
for (IconPixmap iconPixmap: iconPixmaps)
{
if (!iconPixmap.bytes.isNull())
{
QImage image((uchar*) iconPixmap.bytes.data(), iconPixmap.width,
iconPixmap.height, QImage::Format_ARGB32);
switch (status)
{
case Active:
mOverlayIcon = nextIcon;
break;
case NeedsAttention:
mAttentionIcon = nextIcon;
break;
case Passive:
mIcon = nextIcon;
break;
}
const uchar *end = image.constBits() + image.byteCount();
uchar *dest = reinterpret_cast<uchar*>(iconPixmap.bytes.data());
for (const uchar *src = image.constBits(); src < end; src += 4, dest += 4)
qToUnaligned(qToBigEndian<quint32>(qFromUnaligned<quint32>(src)), dest);
nextIcon.addPixmap(QPixmap::fromImage(image));
}
}
switch (status)
{
case Active:
mOverlayIcon = nextIcon;
break;
case NeedsAttention:
mAttentionIcon = nextIcon;
break;
case Passive:
mIcon = nextIcon;
break;
}
resetIcon();
});
}
});
}
void StatusNotifierButton::newToolTip()
{
QString toolTipTitle = interface->toolTip().title;
setToolTip(toolTipTitle.isEmpty() ? interface->title() : toolTipTitle);
interface->propertyGetAsync(QStringLiteral("ToolTip"), [this] (ToolTip tooltip) {
QString toolTipTitle = tooltip.title;
if (!toolTipTitle.isEmpty())
setToolTip(toolTipTitle);
else
interface->propertyGetAsync(QStringLiteral("Title"), [this] (QString title) {
// we should get here only in case the ToolTip.title was empty
if (!title.isEmpty())
setToolTip(title);
});
});
}
void StatusNotifierButton::newStatus(QString status)
@ -222,7 +247,13 @@ void StatusNotifierButton::mouseReleaseEvent(QMouseEvent *event)
else if (event->button() == Qt::MidButton)
interface->SecondaryActivate(QCursor::pos().x(), QCursor::pos().y());
else if (Qt::RightButton == event->button())
mMenu->popup(QCursor::pos());
{
if (mMenu)
mMenu->popup(QCursor::pos());
else
interface->ContextMenu(QCursor::pos().x(), QCursor::pos().y());
}
QToolButton::mouseReleaseEvent(event);
}

@ -37,8 +37,6 @@
#include <QWheelEvent>
#include <QMenu>
#include "statusnotifieriteminterface.h"
#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
template <typename T> inline T qFromUnaligned(const uchar *src)
{
@ -50,6 +48,7 @@ template <typename T> inline T qFromUnaligned(const uchar *src)
#endif
class ILXQtPanelPlugin;
class SniAsync;
class StatusNotifierButton : public QToolButton
{
@ -59,8 +58,6 @@ public:
StatusNotifierButton(QString service, QString objectPath, ILXQtPanelPlugin* plugin, QWidget *parent = 0);
~StatusNotifierButton();
bool isValid() const { return mValid; }
enum Status
{
Passive, Active, NeedsAttention
@ -74,11 +71,11 @@ public slots:
void newStatus(QString status);
private:
org::kde::StatusNotifierItem *interface;
SniAsync *interface;
QMenu *mMenu;
Status mStatus;
bool mValid;
QString mThemePath;
QIcon mIcon, mOverlayIcon, mAttentionIcon, mFallbackIcon;
ILXQtPanelPlugin* mPlugin;

@ -53,6 +53,11 @@ StatusNotifierWidget::StatusNotifierWidget(ILXQtPanelPlugin *plugin, QWidget *pa
}
StatusNotifierWidget::~StatusNotifierWidget()
{
delete mWatcher;
}
void StatusNotifierWidget::itemAdded(QString serviceAndPath)
{
int slash = serviceAndPath.indexOf('/');
@ -60,15 +65,10 @@ void StatusNotifierWidget::itemAdded(QString serviceAndPath)
QString path = serviceAndPath.mid(slash);
StatusNotifierButton *button = new StatusNotifierButton(serv, path, mPlugin, this);
if (!button->isValid())
delete button;
else
{
mServices.insert(serviceAndPath, button);
layout()->addWidget(button);
layout()->setAlignment(button, Qt::AlignCenter);
button->show();
}
mServices.insert(serviceAndPath, button);
layout()->addWidget(button);
layout()->setAlignment(button, Qt::AlignCenter);
button->show();
}
void StatusNotifierWidget::itemRemoved(const QString &serviceAndPath)

@ -42,6 +42,7 @@ class StatusNotifierWidget : public QWidget
public:
StatusNotifierWidget(ILXQtPanelPlugin *plugin, QWidget *parent = 0);
~StatusNotifierWidget();
signals:

@ -0,0 +1,2 @@
Name[it]=Notificatore
Comment[it]=Mostra lo status delle applicazioni

@ -2,7 +2,7 @@
<!DOCTYPE TS>
<TS version="2.1" language="el">
<context>
<name>LxQtSysStatColours</name>
<name>LXQtSysStatColours</name>
<message>
<location filename="../lxqtsysstatcolours.ui" line="14"/>
<source>System Statistics Colors</source>
@ -112,7 +112,7 @@
</message>
</context>
<context>
<name>LxQtSysStatConfiguration</name>
<name>LXQtSysStatConfiguration</name>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="22"/>
<source>Graph</source>

@ -0,0 +1,2 @@
Name[it]=Statistiche del sistema
Comment[it]=Mostra statistiche configurabili del sistema

@ -0,0 +1,237 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it">
<context>
<name>LXQtSysStatColours</name>
<message>
<location filename="../lxqtsysstatcolours.ui" line="14"/>
<source>System Statistics Colors</source>
<translation>Colori delle statistiche</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="24"/>
<source>Graph</source>
<translation>Grafico</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="30"/>
<source>&amp;Grid</source>
<translation>&amp;Griglia</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="40"/>
<location filename="../lxqtsysstatcolours.ui" line="57"/>
<location filename="../lxqtsysstatcolours.ui" line="73"/>
<location filename="../lxqtsysstatcolours.ui" line="90"/>
<location filename="../lxqtsysstatcolours.ui" line="117"/>
<location filename="../lxqtsysstatcolours.ui" line="144"/>
<location filename="../lxqtsysstatcolours.ui" line="151"/>
<location filename="../lxqtsysstatcolours.ui" line="178"/>
<location filename="../lxqtsysstatcolours.ui" line="205"/>
<location filename="../lxqtsysstatcolours.ui" line="232"/>
<location filename="../lxqtsysstatcolours.ui" line="239"/>
<location filename="../lxqtsysstatcolours.ui" line="265"/>
<location filename="../lxqtsysstatcolours.ui" line="282"/>
<source>Change ...</source>
<translation>Cambia ...</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="47"/>
<source>T&amp;itle</source>
<translation>&amp;Titolo</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="67"/>
<source>CPU</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="80"/>
<source>&amp;Nice</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="97"/>
<source>Ot&amp;her</source>
<translation>&amp;Altro</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="107"/>
<source>&amp;Frequency</source>
<translation>&amp;Frequenza</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="124"/>
<source>S&amp;ystem</source>
<translation>&amp;Sistema</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="134"/>
<source>&amp;User</source>
<translation>&amp;Utente</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="172"/>
<source>Memory</source>
<translation>Memoria</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="185"/>
<source>Cache&amp;d</source>
<translation>&amp;Cache</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="195"/>
<source>S&amp;wap</source>
<translation>&amp;Swap</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="212"/>
<source>&amp;Applications</source>
<translation>&amp;Applicazioni</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="222"/>
<source>&amp;Buffers</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="249"/>
<source>Network</source>
<translation>Rete</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="255"/>
<source>&amp;Received</source>
<translation>&amp;Ricevuti</translation>
</message>
<message>
<location filename="../lxqtsysstatcolours.ui" line="272"/>
<source>&amp;Transmitted</source>
<translation>&amp;Trasmessi</translation>
</message>
</context>
<context>
<name>LXQtSysStatConfiguration</name>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="22"/>
<source>Graph</source>
<translation>Grafico</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="83"/>
<source> px</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="99"/>
<source> s</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="124"/>
<source>Data</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="14"/>
<source>System Statistics Settings</source>
<translation>Impostazioni statistiche del sistema</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="34"/>
<source>&amp;Minimal size</source>
<translation>&amp;Grandezza minimale</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="44"/>
<source>Update &amp;interval</source>
<translation>&amp;Intervallo di aggiornamento</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="54"/>
<source>&amp;Title</source>
<translation>&amp;Titolo</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="64"/>
<source>&amp;Grid lines</source>
<translation>&amp;Linee griglia</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="80"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Minimal width if the panel is horizontal.&lt;/p&gt;&lt;p&gt;Minimal height is the panel is vertical.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Larghezza minimale se il pannello è orizzontale.&lt;/p&gt;&lt;p&gt;Altezza minimale se il pannello è verticale.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="149"/>
<source>Use &amp;frequency</source>
<translation>Usa &amp;frequenza</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="207"/>
<source>Ma&amp;ximum</source>
<translation>&amp;Massimo</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="241"/>
<source>Lo&amp;garithmic scale</source>
<translation>Scala &amp;logaritmica</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="290"/>
<source>CPU</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="295"/>
<source>Memory</source>
<translation>Memoria</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="300"/>
<source>Network</source>
<translation>Rete</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="308"/>
<source>&amp;Source</source>
<translation>&amp;Sorgente</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="318"/>
<source>T&amp;ype</source>
<translation>&amp;Tipo</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="334"/>
<source>Colours</source>
<translation>Colori</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="349"/>
<source>Use t&amp;heme colours</source>
<translation>Usa colori del &amp;tema</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="359"/>
<source>Use c&amp;ustom colours</source>
<translation>Colori &amp;personalizzati</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="366"/>
<source>Custom colour ...</source>
<translation>Colore personalizzato ...</translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="222"/>
<source>XXX KBs</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtsysstatconfiguration.ui" line="248"/>
<source> steps</source>
<translation> intervalli</translation>
</message>
</context>
</TS>

@ -0,0 +1,2 @@
Name[it]=Barra delle applicazioni
Comment[it]=Permette di spostarsi tra le applicazioni in esecuzione tramite pulsanti

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>LXQtTaskButton</name>
<message>
@ -94,12 +94,12 @@
<message>
<location filename="../lxqttaskgroup.cpp" line="81"/>
<source>Group</source>
<translation type="unfinished"></translation>
<translation>Gruppo</translation>
</message>
<message>
<location filename="../lxqttaskgroup.cpp" line="82"/>
<source>Close group</source>
<translation type="unfinished"></translation>
<translation>Chiudi gruppo</translation>
</message>
</context>
<context>
@ -120,42 +120,42 @@
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="20"/>
<source>General</source>
<translation type="unfinished"></translation>
<translation>Generali</translation>
</message>
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="26"/>
<source>Show windows from c&amp;urrent desktop</source>
<translation type="unfinished"></translation>
<translation>Mostra finestre del &amp;desktop attuale</translation>
</message>
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="36"/>
<source>Show windows from all des&amp;ktops</source>
<translation type="unfinished"></translation>
<translation>Mostra finestre di &amp;tutti desktop</translation>
</message>
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="56"/>
<source>Window &amp;grouping</source>
<translation type="unfinished"></translation>
<translation>&amp;Ragruppa finestre della stessa applicazione</translation>
</message>
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="65"/>
<source>Show popup on mouse hover </source>
<translation type="unfinished"></translation>
<translation>Mostra popup al passaggio del mouse </translation>
</message>
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="75"/>
<source>Appearance</source>
<translation type="unfinished"></translation>
<translation>Aspetto</translation>
</message>
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="94"/>
<source>Maximum button width</source>
<translation type="unfinished"></translation>
<translation>Larghezza massima del pulsante</translation>
</message>
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="107"/>
<source> px</source>
<translation type="unfinished"></translation>
<translation>px</translation>
</message>
<message>
<source>Taskbar Contents</source>
@ -198,7 +198,7 @@
<message>
<location filename="../lxqttaskbarconfiguration.ui" line="46"/>
<source>Close on middle-click</source>
<translation>Chiudi con un clic del tasto centrale</translation>
<translation>Chiudi con un click del tasto centrale</translation>
</message>
<message>
<location filename="../lxqttaskbarconfiguration.cpp" line="46"/>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Task manager
Comment=Switch between running applications
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Permette di accedere alle applicazioni in esecuzione
Name[it_IT]=Gestore dei processi

@ -0,0 +1,2 @@
Comment[it]=Accedi alle applicazioni minimizzate nel vassoio di sistema
Name[it]=Vassoio di sistema

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=System tray
Comment=Display applications minimized to the system tray.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Accedi alle applicazioni nascoste minimizzate nel vassoio di sistema
Name[it_IT]=Vassoio di sistema

@ -33,6 +33,7 @@
#include <QPainter>
#include <QBitmap>
#include <QStyle>
#include <QScreen>
#include "../panel/lxqtpanel.h"
#include "trayicon.h"
@ -311,8 +312,8 @@ void TrayIcon::draw(QPaintEvent* /*event*/)
XClearArea(mDisplay, (Window)winId(), 0, 0, attr.width, attr.height, False);
// for some unknown reason, XGetImage failed. try another less efficient method.
// QPixmap::grabWindow uses XCopyArea() internally.
image = QPixmap::grabWindow(mIconId).toImage();
// QScreen::grabWindow uses XCopyArea() internally.
image = qApp->primaryScreen()->grabWindow(mIconId).toImage();
}
// qDebug() << "Paint icon **************************************";

@ -0,0 +1,3 @@
Name[it]=Controllo del volume
Comment[it]=Controlla il volume del sistema e avvia il mixer preferito

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<TS version="2.1" language="it">
<context>
<name>LXQtVolume</name>
<message>
@ -10,28 +10,28 @@
<message>
<location filename="../lxqtvolume.cpp" line="63"/>
<source>Increase sound volume</source>
<translation type="unfinished"></translation>
<translation>Alza volume</translation>
</message>
<message>
<location filename="../lxqtvolume.cpp" line="69"/>
<source>Decrease sound volume</source>
<translation type="unfinished"></translation>
<translation>Abbassa volume</translation>
</message>
<message>
<location filename="../lxqtvolume.cpp" line="75"/>
<source>Mute/unmute sound volume</source>
<translation type="unfinished"></translation>
<translation>Muta/smuta audio</translation>
</message>
<message>
<location filename="../lxqtvolume.cpp" line="136"/>
<source>Volume Control: The following shortcuts can not be registered: %1</source>
<translation type="unfinished"></translation>
<translation>Controllo volume: la scorciatoia globale &apos;%1&apos; non può essere registrata</translation>
</message>
<message>
<location filename="../lxqtvolume.cpp" line="219"/>
<location filename="../lxqtvolume.cpp" line="229"/>
<source>Volume: %1</source>
<translation type="unfinished"></translation>
<translation>Volume: %1</translation>
</message>
</context>
<context>
@ -43,7 +43,7 @@
<message>
<location filename="../lxqtvolumeconfiguration.ui" line="14"/>
<source>Volume Control Settings</source>
<translation type="unfinished"></translation>
<translation>Impostazioni controllo volume</translation>
</message>
<message>
<location filename="../lxqtvolumeconfiguration.ui" line="20"/>
@ -63,7 +63,7 @@
<message>
<location filename="../lxqtvolumeconfiguration.ui" line="42"/>
<source>OSS</source>
<translation type="unfinished"></translation>
<translation>OSS</translation>
</message>
<message>
<location filename="../lxqtvolumeconfiguration.ui" line="57"/>
@ -73,12 +73,12 @@
<message>
<location filename="../lxqtvolumeconfiguration.ui" line="63"/>
<source>Mute on middle click</source>
<translation>Muto al clic centrale del mouse</translation>
<translation>Muta al click centrale del mouse</translation>
</message>
<message>
<location filename="../lxqtvolumeconfiguration.ui" line="70"/>
<source>Show on mouse click</source>
<translation>Mostra al clic del mouse</translation>
<translation>Mostra al click del mouse</translation>
</message>
<message>
<location filename="../lxqtvolumeconfiguration.ui" line="77"/>
@ -101,12 +101,12 @@
<message>
<location filename="../volumepopup.cpp" line="54"/>
<source>Launch mixer</source>
<translation type="unfinished"></translation>
<translation>Avvia mixer</translation>
</message>
<message>
<location filename="../volumepopup.cpp" line="55"/>
<source>Mixer</source>
<translation type="unfinished"></translation>
<translation>Mixer</translation>
</message>
</context>
</TS>

@ -1,12 +0,0 @@
[Desktop Entry]
Type=Service
ServiceTypes=LXQtPanel/Plugin
Name=Volume control
Comment=Control the system's volume and launch your preferred mixer.
#TRANSLATIONS_DIR=../translations
# Translations
Comment[it_IT]=Controlla il volume del sistema e avvia il tuo mixer preferito.
Name[it_IT]=Controllo del volume

@ -2,7 +2,7 @@
<!DOCTYPE TS>
<TS version="2.1" language="el">
<context>
<name>LxQtWorldClock</name>
<name>LXQtWorldClock</name>
<message>
<location filename="../lxqtworldclock.cpp" line="185"/>
<source>&apos;&lt;b&gt;&apos;HH:mm:ss&apos;&lt;/b&gt;&lt;br/&gt;&lt;font size=&quot;-2&quot;&gt;&apos;ddd, d MMM yyyy&apos;&lt;br/&gt;&apos;TT&apos;&lt;/font&gt;&apos;</source>
@ -10,7 +10,7 @@
</message>
</context>
<context>
<name>LxQtWorldClockConfiguration</name>
<name>LXQtWorldClockConfiguration</name>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="14"/>
<source>World Clock Settings</source>
@ -239,7 +239,7 @@
</message>
</context>
<context>
<name>LxQtWorldClockConfigurationManualFormat</name>
<name>LXQtWorldClockConfigurationManualFormat</name>
<message>
<location filename="../lxqtworldclockconfigurationmanualformat.ui" line="14"/>
<source>World Clock Time Zones</source>
@ -324,7 +324,7 @@
</message>
</context>
<context>
<name>LxQtWorldClockConfigurationTimeZones</name>
<name>LXQtWorldClockConfigurationTimeZones</name>
<message>
<location filename="../lxqtworldclockconfigurationtimezones.ui" line="14"/>
<source>World Clock Time Zones</source>

@ -0,0 +1,3 @@
#TRANSLATIONS
Name[it]=Orologio mondiale
Comment[it]=Mostra un orologio con un fuso orario diverso

@ -0,0 +1,328 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it">
<context>
<name>LXQtWorldClock</name>
<message>
<location filename="../lxqtworldclock.cpp" line="187"/>
<source>&apos;&lt;b&gt;&apos;HH:mm:ss&apos;&lt;/b&gt;&lt;br/&gt;&lt;font size=&quot;-2&quot;&gt;&apos;ddd, d MMM yyyy&apos;&lt;br/&gt;&apos;TT&apos;&lt;/font&gt;&apos;</source>
<translation></translation>
</message>
</context>
<context>
<name>LXQtWorldClockConfiguration</name>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="14"/>
<source>World Clock Settings</source>
<translation>Impostazioni orologio mondiale</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="24"/>
<source>Display &amp;format</source>
<translation>&amp;Aspetto</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="30"/>
<source>&amp;Time</source>
<translation>&amp;Ora</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="39"/>
<source>F&amp;ormat:</source>
<translation>F&amp;ormato:</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="50"/>
<location filename="../lxqtworldclockconfiguration.ui" line="176"/>
<location filename="../lxqtworldclockconfiguration.ui" line="272"/>
<source>Short</source>
<translation>Breve</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="55"/>
<location filename="../lxqtworldclockconfiguration.ui" line="181"/>
<location filename="../lxqtworldclockconfiguration.ui" line="277"/>
<source>Long</source>
<translation>Esteso</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="60"/>
<location filename="../lxqtworldclockconfiguration.ui" line="287"/>
<source>Custom</source>
<translation>Personalizzato</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="89"/>
<source>Sho&amp;w seconds</source>
<translation>&amp;Mostra secondi</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="96"/>
<source>Pad &amp;hour with zero</source>
<translation>Ora &amp;senza zero iniziale</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="116"/>
<source>T&amp;ime zone</source>
<translation>&amp;Fuso orario</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="128"/>
<source>&amp;Position:</source>
<translation>&amp;Posizione:</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="138"/>
<source>For&amp;mat:</source>
<translation>F&amp;ormato:</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="149"/>
<location filename="../lxqtworldclockconfiguration.ui" line="238"/>
<source>Below</source>
<translation>Sotto</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="154"/>
<location filename="../lxqtworldclockconfiguration.ui" line="243"/>
<source>Above</source>
<translation>Sopra</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="159"/>
<location filename="../lxqtworldclockconfiguration.ui" line="248"/>
<source>Before</source>
<translation>Prima</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="164"/>
<location filename="../lxqtworldclockconfiguration.ui" line="253"/>
<source>After</source>
<translation>Dopo</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="186"/>
<source>Offset from UTC</source>
<translation>Differenza da UTC</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="191"/>
<source>Abbreviation</source>
<translation>Abbreviazione</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="431"/>
<source>IANA id</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="201"/>
<location filename="../lxqtworldclockconfiguration.ui" line="436"/>
<location filename="../lxqtworldclockconfiguration.cpp" line="591"/>
<source>Custom name</source>
<translation>Nome personalizzato</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="103"/>
<source>&amp;Use 12-hour format</source>
<translation>&amp;Usa formato 12 ore</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="196"/>
<source>Location identifier</source>
<translation>Nome località</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="212"/>
<source>&amp;Date</source>
<translation>&amp;Data</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="227"/>
<source>Po&amp;sition:</source>
<translation>&amp;Posizione:</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="261"/>
<source>Fo&amp;rmat:</source>
<translation>F&amp;ormato:</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="282"/>
<source>ISO 8601</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="316"/>
<source>Show &amp;year</source>
<translation>Mostra l&apos;&amp;anno</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="323"/>
<source>Show day of wee&amp;k</source>
<translation>Mostra &amp;giorno della settimana</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="330"/>
<source>Pad d&amp;ay with zero</source>
<translation>Giorno &amp;senza zero iniziale</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="337"/>
<source>&amp;Long month and day of week names</source>
<translation>Nome &amp;esteso per mese e giorno della settimana</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="350"/>
<source>Ad&amp;vanced manual format</source>
<translation>Formato avanzato &amp;personalizzato</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="377"/>
<source>&amp;Customise ...</source>
<translation>&amp;Personalizza...</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="403"/>
<source>Time &amp;zones</source>
<translation>Fu&amp;si orari</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="446"/>
<source>&amp;Add ...</source>
<translation>&amp;Aggiungi...</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="456"/>
<source>&amp;Remove</source>
<translation>&amp;Rimuovi</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="466"/>
<source>Set as &amp;default</source>
<translation>&amp;Imponi come predefinito</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="476"/>
<source>&amp;Edit custom name ...</source>
<translation>&amp;Personalizza nome...</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="486"/>
<source>Move &amp;up</source>
<translation>&amp;Sù</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="496"/>
<source>Move do&amp;wn</source>
<translation>&amp;Giù</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="519"/>
<source>&amp;General</source>
<translation>A&amp;ltro</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.ui" line="525"/>
<source>Auto&amp;rotate when the panel is vertical</source>
<translation>&amp;Ruota automaticamente se il panello è verticale</translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.cpp" line="105"/>
<source>&apos;&lt;b&gt;&apos;HH:mm:ss&apos;&lt;/b&gt;&lt;br/&gt;&lt;font size=&quot;-2&quot;&gt;&apos;ddd, d MMM yyyy&apos;&lt;br/&gt;&apos;TT&apos;&lt;/font&gt;&apos;</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtworldclockconfiguration.cpp" line="591"/>
<source>Input custom time zone name</source>
<translation>Nome personalizzato</translation>
</message>
</context>
<context>
<name>LXQtWorldClockConfigurationManualFormat</name>
<message>
<location filename="../lxqtworldclockconfigurationmanualformat.ui" line="14"/>
<source>World Clock Time Zones</source>
<translation>Fusi orari orologio mondiale</translation>
</message>
<message>
<location filename="../lxqtworldclockconfigurationmanualformat.ui" line="83"/>
<source>&lt;h1&gt;Custom Date/Time Format Syntax&lt;/h1&gt;
&lt;p&gt;A date pattern is a string of characters, where specific strings of characters are replaced with date and time data from a calendar when formatting or used to generate data for a calendar when parsing.&lt;/p&gt;
&lt;p&gt;The Date Field Symbol Table below contains the characters used in patterns to show the appropriate formats for a given locale, such as yyyy for the year. Characters may be used multiple times. For example, if y is used for the year, &apos;yy&apos; might produce &apos;99&apos;, whereas &apos;yyyy&apos; produces &apos;1999&apos;. For most numerical fields, the number of characters specifies the field width. For example, if h is the hour, &apos;h&apos; might produce &apos;5&apos;, but &apos;hh&apos; produces &apos;05&apos;. For some characters, the count specifies whether an abbreviated or full form should be used, but may have other choices, as given below.&lt;/p&gt;
&lt;p&gt;Two single quotes represents a literal single quote, either inside or outside single quotes. Text within single quotes is not interpreted in any way (except for two adjacent single quotes). Otherwise all ASCII letter from a to z and A to Z are reserved as syntax characters, and require quoting if they are to represent literal characters. In addition, certain ASCII punctuation characters may become variable in the future (eg &quot;:&quot; being interpreted as the time separator and &apos;/&apos; as a date separator, and replaced by respective locale-sensitive characters in display).&lt;br /&gt;&lt;/p&gt;
&lt;table border=&quot;1&quot; width=&quot;100%&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;
&lt;tr&gt;&lt;th width=&quot;20%&quot;&gt;Code&lt;/th&gt;&lt;th&gt;Meaning&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;d&lt;/td&gt;&lt;td&gt;the day as number without a leading zero (1 to 31)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;dd&lt;/td&gt;&lt;td&gt;the day as number with a leading zero (01 to 31)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ddd&lt;/td&gt;&lt;td&gt;the abbreviated localized day name (e.g. &apos;Mon&apos; to &apos;Sun&apos;).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;dddd&lt;/td&gt;&lt;td&gt;the long localized day name (e.g. &apos;Monday&apos; to &apos;Sunday&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;M&lt;/td&gt;&lt;td&gt;the month as number without a leading zero (1-12)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MM&lt;/td&gt;&lt;td&gt;the month as number with a leading zero (01-12)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MMM&lt;/td&gt;&lt;td&gt;the abbreviated localized month name (e.g. &apos;Jan&apos; to &apos;Dec&apos;).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MMMM&lt;/td&gt;&lt;td&gt;the long localized month name (e.g. &apos;January&apos; to &apos;December&apos;).&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;yy&lt;/td&gt;&lt;td&gt;the year as two digit number (00-99)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;yyyy&lt;/td&gt;&lt;td&gt;the year as four digit number&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;h&lt;/td&gt;&lt;td&gt;the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;hh&lt;/td&gt;&lt;td&gt;the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;H&lt;/td&gt;&lt;td&gt;the hour without a leading zero (0 to 23, even with AM/PM display)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;HH&lt;/td&gt;&lt;td&gt;the hour with a leading zero (00 to 23, even with AM/PM display)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;m&lt;/td&gt;&lt;td&gt;the minute without a leading zero (0 to 59)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;mm&lt;/td&gt;&lt;td&gt;the minute with a leading zero (00 to 59)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;s&lt;/td&gt;&lt;td&gt;the second without a leading zero (0 to 59)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ss&lt;/td&gt;&lt;td&gt;the second with a leading zero (00 to 59)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;z&lt;/td&gt;&lt;td&gt;the milliseconds without leading zeroes (0 to 999)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;zzz&lt;/td&gt;&lt;td&gt;the milliseconds with leading zeroes (000 to 999)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;AP &lt;i&gt;or&lt;/i&gt; A&lt;/td&gt;&lt;td&gt;use AM/PM display. &lt;b&gt;A/AP&lt;/b&gt; will be replaced by either &quot;AM&quot; or &quot;PM&quot;.&lt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ap &lt;i&gt;or&lt;/i&gt; a&lt;/td&gt;&lt;td&gt;use am/pm display. &lt;b&gt;a/ap&lt;/b&gt; will be replaced by either &quot;am&quot; or &quot;pm&quot;.&lt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;t&lt;/td&gt;&lt;td&gt;the timezone (for example &quot;CEST&quot;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;the offset from UTC&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TT&lt;/td&gt;&lt;td&gt;the timezone IANA id&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TTT&lt;/td&gt;&lt;td&gt;the timezone abbreviation&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TTTT&lt;/td&gt;&lt;td&gt;the timezone short display name&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TTTTT&lt;/td&gt;&lt;td&gt;the timezone long display name&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TTTTTT&lt;/td&gt;&lt;td&gt;the timezone custom name. You can change it the &apos;Time zones&apos; tab of the configuration window&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; Any characters in the pattern that are not in the ranges of [&apos;a&apos;..&apos;z&apos;] and [&apos;A&apos;..&apos;Z&apos;] will be treated as quoted text. For instance, characters like &apos;:&apos;, &apos;.&apos;, &apos; &apos;, &apos;#&apos; and &apos;@&apos; will appear in the resulting time text even they are not enclosed within single quotes.The single quote is used to &apos;escape&apos; letters. Two single quotes in a row, whether inside or outside a quoted sequence, represent a &apos;real&apos; single quote.&lt;/p&gt;
</source>
<translation></translation>
</message>
</context>
<context>
<name>LXQtWorldClockConfigurationTimeZones</name>
<message>
<location filename="../lxqtworldclockconfigurationtimezones.ui" line="14"/>
<source>World Clock Time Zones</source>
<translation>Fusi orari orologio mondiale</translation>
</message>
<message>
<location filename="../lxqtworldclockconfigurationtimezones.ui" line="36"/>
<source>Time zone</source>
<translation>Fuso orario</translation>
</message>
<message>
<location filename="../lxqtworldclockconfigurationtimezones.ui" line="41"/>
<source>Name</source>
<translation>Nome</translation>
</message>
<message>
<location filename="../lxqtworldclockconfigurationtimezones.ui" line="46"/>
<source>Comment</source>
<translation>Commento</translation>
</message>
<message>
<location filename="../lxqtworldclockconfigurationtimezones.ui" line="51"/>
<source>Country</source>
<translation>Paese</translation>
</message>
<message>
<location filename="../lxqtworldclockconfigurationtimezones.cpp" line="115"/>
<source>UTC</source>
<translation></translation>
</message>
<message>
<location filename="../lxqtworldclockconfigurationtimezones.cpp" line="118"/>
<source>Other</source>
<translation>Altro</translation>
</message>
</context>
</TS>
Loading…
Cancel
Save