diff --git a/panel/translations/lxqt-panel_it.ts b/panel/translations/lxqt-panel_it.ts
index 433cedb..775d2bb 100644
--- a/panel/translations/lxqt-panel_it.ts
+++ b/panel/translations/lxqt-panel_it.ts
@@ -184,7 +184,7 @@
-
+ Nascondi automaticamente
@@ -289,7 +289,7 @@
- Configura pannello...
+ Configura panello...
diff --git a/panel/translations/lxqt-panel_it_IT.ts b/panel/translations/lxqt-panel_it_IT.ts
deleted file mode 100644
index 0a0789f..0000000
--- a/panel/translations/lxqt-panel_it_IT.ts
+++ /dev/null
@@ -1,359 +0,0 @@
-
-
-
-
- ConfigPanelDialog
-
-
- Configura il pannello
-
-
-
- Dimensione pannello
-
-
-
- Dimensione:
-
-
-
- px
-
-
-
- Usa dimensionamento automatico
-
-
-
- Lunghezza e posizione del pannello
-
-
-
- Sinistra
-
-
-
- Centro
-
-
-
- Destra
-
-
-
- %
-
-
-
- Allineamento:
-
-
-
- Lunghezza:
-
-
-
- Posizione:
-
-
-
- Alto del desktop
-
-
-
- Sinistra del desktop
-
-
-
- Destra del desktop
-
-
-
- Basso del desktop
-
-
-
- Alto del desktop %1
-
-
-
- Sinistra del desktop %1
-
-
-
- Destra del desktop %1
-
-
-
- Basso del desktop %1
-
-
-
-
-
- Configura panello
-
-
-
- ConfigPanelWidget
-
-
-
- Configura panello
-
-
-
-
- Dimensione
-
-
-
-
- Dimensione:
-
-
-
-
-
-
-
-
-
-
- Dimensione icone:
-
-
-
-
- Lunghezza:
-
-
-
-
- <p>Valori negativi impongano una lunghezza del panello di quel numero di pixel meno dello spazio disponibile. </p><p/><p><i>Esempio: -100px e schermo di 1280px = 1180px</i></p>
-
-
-
-
- %
-
-
-
-
- px
-
-
-
-
- Numero righe:
-
-
-
-
- Allineamento e posizione
-
-
-
-
-
- Sinistra
-
-
-
-
-
-
- Centro
-
-
-
-
-
- Destra
-
-
-
-
- Allineamento:
-
-
-
-
- Posizione:
-
-
-
-
-
-
-
-
-
- Aspetto
-
-
-
-
- Colore carattere personalizzato:
-
-
-
-
- Immagine sfondo:
-
-
-
-
- Colore sfondo personalizzato:
-
-
-
-
- Trasparenza
-
-
-
-
- Alto del desktop
-
-
-
-
- Sinistra del desktop
-
-
-
-
- Destra del desktop
-
-
-
-
- Basso del desktop
-
-
-
-
- Alto del desktop %1
-
-
-
-
- Sinistra del desktop %1
-
-
-
-
- Destra del desktop %1
-
-
-
-
- Basso del desktop %1
-
-
-
-
- In cima
-
-
-
-
- In fondo
-
-
-
-
-
- Scegli colore
-
-
-
-
- Immagini (*.png *.gif *.jpg)
-
-
-
- LXQtPanel
-
-
-
- Aggiungi elementi
-
-
-
-
-
- Panello
-
-
-
-
- Configura pannello...
-
-
-
-
- Call them "plugins" better?
- Aggiungi elementi...
-
-
-
-
- Aggiungi panello
-
-
-
-
- Rimuovi panello
-
-
-
- Configura pannello...
-
-
-
- Aggiungi plugin...
-
-
-
- LXQtPanelPlugin
-
-
- Configura
-
-
-
- Sposta
-
-
-
- Rimuovi
-
-
-
- LXQtPanelPrivate
-
-
- Configura pannello
-
-
-
- Plugin
-
-
-
- Configura "%1"
-
-
-
-
- Sposta "%1"
-
-
-
-
- Rimuovi "%1"
-
-
-
diff --git a/plugin-clock/translations/clock_it.desktop b/plugin-clock/translations/clock_it.desktop
new file mode 100644
index 0000000..bd40ee3
--- /dev/null
+++ b/plugin-clock/translations/clock_it.desktop
@@ -0,0 +1,3 @@
+Comment[it]=Orologio e calendario
+Name[it]=Orologio
+
diff --git a/plugin-clock/translations/clock_it_IT.ts b/plugin-clock/translations/clock_it.ts
similarity index 95%
rename from plugin-clock/translations/clock_it_IT.ts
rename to plugin-clock/translations/clock_it.ts
index d815250..a1cdceb 100644
--- a/plugin-clock/translations/clock_it_IT.ts
+++ b/plugin-clock/translations/clock_it.ts
@@ -1,12 +1,12 @@
-
+
FirstDayCombo
-
+ <basato su locale>
@@ -63,12 +63,12 @@
- Mostra la data su una seconda riga
+ Mostra la data su una &seconda riga
-
+ Primo giorno della settimana
@@ -78,7 +78,7 @@
- Ruota automaticamente se il panello è verticale
+ &Ruota automaticamente se il panello è verticale
diff --git a/plugin-clock/translations/clock_it_IT.desktop b/plugin-clock/translations/clock_it_IT.desktop
deleted file mode 100644
index 43e26e2..0000000
--- a/plugin-clock/translations/clock_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-colorpicker/colorpicker.cpp b/plugin-colorpicker/colorpicker.cpp
index 0654ae1..5124394 100644
--- a/plugin-colorpicker/colorpicker.cpp
+++ b/plugin-colorpicker/colorpicker.cpp
@@ -28,6 +28,7 @@
#include "colorpicker.h"
#include
#include
+#include
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));
diff --git a/plugin-colorpicker/translations/colorpicker_el.desktop b/plugin-colorpicker/translations/colorpicker_el.desktop
index abaa4a5..be33cc5 100644
--- a/plugin-colorpicker/translations/colorpicker_el.desktop
+++ b/plugin-colorpicker/translations/colorpicker_el.desktop
@@ -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.
diff --git a/plugin-colorpicker/translations/colorpicker_it.desktop b/plugin-colorpicker/translations/colorpicker_it.desktop
new file mode 100644
index 0000000..d4defbc
--- /dev/null
+++ b/plugin-colorpicker/translations/colorpicker_it.desktop
@@ -0,0 +1,3 @@
+Comment[it]=Rileva il colore sotto il cursore. Per sviluppatori web.
+Name[it]=Selettore del colore
+
diff --git a/plugin-colorpicker/translations/colorpicker_it_IT.desktop b/plugin-colorpicker/translations/colorpicker_it_IT.desktop
deleted file mode 100644
index 9b8c8e7..0000000
--- a/plugin-colorpicker/translations/colorpicker_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-cpuload/translations/cpuload_it.desktop b/plugin-cpuload/translations/cpuload_it.desktop
new file mode 100644
index 0000000..49724a6
--- /dev/null
+++ b/plugin-cpuload/translations/cpuload_it.desktop
@@ -0,0 +1,3 @@
+Comment[it]=Monitor del carico del processore
+Name[it]=Carico del processore
+
diff --git a/plugin-cpuload/translations/cpuload_it_IT.ts b/plugin-cpuload/translations/cpuload_it.ts
similarity index 91%
rename from plugin-cpuload/translations/cpuload_it_IT.ts
rename to plugin-cpuload/translations/cpuload_it.ts
index 9dd3b75..ababad9 100644
--- a/plugin-cpuload/translations/cpuload_it_IT.ts
+++ b/plugin-cpuload/translations/cpuload_it.ts
@@ -1,6 +1,6 @@
-
+
LXQtCpuLoad
@@ -10,7 +10,7 @@
-
+ Carico del processore %1%
@@ -22,7 +22,7 @@
-
+ Impostazioni di carica del processore
@@ -52,7 +52,7 @@
-
+ Larghezza barra:
diff --git a/plugin-cpuload/translations/cpuload_it_IT.desktop b/plugin-cpuload/translations/cpuload_it_IT.desktop
deleted file mode 100644
index 66790b3..0000000
--- a/plugin-cpuload/translations/cpuload_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-desktopswitch/translations/desktopswitch_it.desktop b/plugin-desktopswitch/translations/desktopswitch_it.desktop
new file mode 100644
index 0000000..1e252b4
--- /dev/null
+++ b/plugin-desktopswitch/translations/desktopswitch_it.desktop
@@ -0,0 +1,2 @@
+Comment[it]=Permette di passare ad altri desktop virtuali
+Name[it]=Cambia desktop
diff --git a/plugin-desktopswitch/translations/desktopswitch_it_IT.ts b/plugin-desktopswitch/translations/desktopswitch_it.ts
similarity index 77%
rename from plugin-desktopswitch/translations/desktopswitch_it_IT.ts
rename to plugin-desktopswitch/translations/desktopswitch_it.ts
index 6d599e2..27ded67 100644
--- a/plugin-desktopswitch/translations/desktopswitch_it_IT.ts
+++ b/plugin-desktopswitch/translations/desktopswitch_it.ts
@@ -1,12 +1,12 @@
-
+
DesktopSwitch
-
+ Cambia al desktop %1
@@ -20,27 +20,27 @@
-
+ Preferenze cambia desktop
-
+ Numero righe:
-
+ Etichette desktop:
-
+ Numeri
-
+ Nomi
diff --git a/plugin-desktopswitch/translations/desktopswitch_it_IT.desktop b/plugin-desktopswitch/translations/desktopswitch_it_IT.desktop
deleted file mode 100644
index 157858f..0000000
--- a/plugin-desktopswitch/translations/desktopswitch_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-directorymenu/translations/directorymenu_it.desktop b/plugin-directorymenu/translations/directorymenu_it.desktop
new file mode 100644
index 0000000..9766bce
--- /dev/null
+++ b/plugin-directorymenu/translations/directorymenu_it.desktop
@@ -0,0 +1,2 @@
+Name[it]=Menù cartella
+Comment[it]=Mostra il contenuto di una cartella
diff --git a/plugin-directorymenu/translations/directorymenu_it.ts b/plugin-directorymenu/translations/directorymenu_it.ts
new file mode 100644
index 0000000..9bfa337
--- /dev/null
+++ b/plugin-directorymenu/translations/directorymenu_it.ts
@@ -0,0 +1,65 @@
+
+
+
+
+ DirectoryMenu
+
+
+
+ Apri
+
+
+
+ DirectoryMenuConfiguration
+
+
+
+ Impostazioni del menu
+
+
+
+
+ Aspetto
+
+
+
+
+ Cartella mostrata:
+
+
+
+
+ Nome della cartella
+
+
+
+
+ Icona:
+
+
+
+
+ Seleziona cartella mostrata
+
+
+
+
+ Seleziona icona
+
+
+
+
+ Icone (*.png .xpm *.jpg)
+
+
+
+
+ Menu cartella
+
+
+
+
+ Errore caricando l'icona.
+
+
+
diff --git a/plugin-kbindicator/translations/kbindicator_it.desktop b/plugin-kbindicator/translations/kbindicator_it.desktop
new file mode 100644
index 0000000..577adc6
--- /dev/null
+++ b/plugin-kbindicator/translations/kbindicator_it.desktop
@@ -0,0 +1,2 @@
+Name[it]=Disposizione della tastiera
+Comment[it]=Mostra lo stato e la mappatura della tastiera
diff --git a/plugin-kbindicator/translations/kbindicator_it.ts b/plugin-kbindicator/translations/kbindicator_it.ts
new file mode 100644
index 0000000..1769838
--- /dev/null
+++ b/plugin-kbindicator/translations/kbindicator_it.ts
@@ -0,0 +1,27 @@
+
+
+
+
+ LXQtKbIndicatorConfiguration
+
+
+
+ Indicatori
+
+
+
+
+ Blocco maiuscolo
+
+
+
+
+ Blocco numeri
+
+
+
+
+ Blocco scorrimento
+
+
+
diff --git a/plugin-mainmenu/translations/mainmenu_it.desktop b/plugin-mainmenu/translations/mainmenu_it.desktop
new file mode 100644
index 0000000..988b388
--- /dev/null
+++ b/plugin-mainmenu/translations/mainmenu_it.desktop
@@ -0,0 +1,2 @@
+Comment[it]=Avviatore delle applicazioni basato su menù
+Name[it]=Menù delle applicazioni
diff --git a/plugin-mainmenu/translations/mainmenu_it_IT.ts b/plugin-mainmenu/translations/mainmenu_it.ts
similarity index 88%
rename from plugin-mainmenu/translations/mainmenu_it_IT.ts
rename to plugin-mainmenu/translations/mainmenu_it.ts
index f2aad93..891eb34 100644
--- a/plugin-mainmenu/translations/mainmenu_it_IT.ts
+++ b/plugin-mainmenu/translations/mainmenu_it.ts
@@ -1,12 +1,12 @@
-
+
LXQtMainMenu
- Mostra/nascondi menu principale
+ Mostra/nascondi menù principale
@@ -35,7 +35,7 @@
- Impostazioni del menu principale di LXQt
+ Impostazioni del menù principale di LXQt
@@ -55,12 +55,12 @@
- File del menu
+ File del menù
- File del menu:
+ File del menù:
@@ -85,12 +85,12 @@
- Scegli il file del menu
+ Scegli il file del menù
- File del menu (*.menu)
+ File del menù (*.menu)
diff --git a/plugin-mainmenu/translations/mainmenu_it_IT.desktop b/plugin-mainmenu/translations/mainmenu_it_IT.desktop
deleted file mode 100644
index 3a38f5a..0000000
--- a/plugin-mainmenu/translations/mainmenu_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-mount/translations/mount_it.desktop b/plugin-mount/translations/mount_it.desktop
new file mode 100644
index 0000000..eb4e9d8
--- /dev/null
+++ b/plugin-mount/translations/mount_it.desktop
@@ -0,0 +1,2 @@
+Name[it]=Dispositivi rimovibili
+Comment[it]=Gestore dei dispositivi rimovibili (USB, CD, DVD, ...)
diff --git a/plugin-mount/translations/mount_it_IT.ts b/plugin-mount/translations/mount_it.ts
similarity index 83%
rename from plugin-mount/translations/mount_it_IT.ts
rename to plugin-mount/translations/mount_it.ts
index 8a74e6f..f889b13 100644
--- a/plugin-mount/translations/mount_it_IT.ts
+++ b/plugin-mount/translations/mount_it.ts
@@ -1,22 +1,22 @@
-
+
DeviceActionInfo
- Il dispositivo <b><nobr>"%1"</nobr></b> è connesso.
+ Il dispositivo <b><nobr>"%1"</nobr></b> è connesso.
- Il dispositivo <b><nobr>"%1"</nobr></b> è stato rimosso.
+ Il dispositivo <b><nobr>"%1"</nobr></b> è stato rimosso.
- Gestore dei dispositivi rimovibili
+ Gestore dei dispositivi rimovibili
@@ -28,7 +28,7 @@
-
+ Impostazioni dispositivi rimovibili
@@ -70,17 +70,17 @@
- Gestore dei dispositivi rimovibili
+ Gestore dei dispositivi rimovibili
-
+ Montaggio di <strong><nobr>"%1"</nobr></strong> non riuscito: %2
-
+ Smontaggio di <strong><nobr>"%1"</nobr></strong> non riuscito: %2
@@ -108,7 +108,7 @@
-
+ Nessun dispositivo presente
diff --git a/plugin-mount/translations/mount_it_IT.desktop b/plugin-mount/translations/mount_it_IT.desktop
deleted file mode 100644
index c70c902..0000000
--- a/plugin-mount/translations/mount_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-networkmonitor/translations/networkmonitor_it.ts b/plugin-networkmonitor/translations/networkmonitor_it.ts
index c4788ab..b874ac4 100644
--- a/plugin-networkmonitor/translations/networkmonitor_it.ts
+++ b/plugin-networkmonitor/translations/networkmonitor_it.ts
@@ -1,6 +1,6 @@
-
+
LXQtNetworkMonitor
diff --git a/plugin-quicklaunch/translations/quicklaunch_it.desktop b/plugin-quicklaunch/translations/quicklaunch_it.desktop
new file mode 100644
index 0000000..466988d
--- /dev/null
+++ b/plugin-quicklaunch/translations/quicklaunch_it.desktop
@@ -0,0 +1,3 @@
+Comment[it]=Avvia le applicazioni preferite
+Name[it]=Avvio rapido
+
diff --git a/plugin-quicklaunch/translations/quicklaunch_it_IT.ts b/plugin-quicklaunch/translations/quicklaunch_it.ts
similarity index 89%
rename from plugin-quicklaunch/translations/quicklaunch_it_IT.ts
rename to plugin-quicklaunch/translations/quicklaunch_it.ts
index 08ff828..d404054 100644
--- a/plugin-quicklaunch/translations/quicklaunch_it_IT.ts
+++ b/plugin-quicklaunch/translations/quicklaunch_it.ts
@@ -1,12 +1,12 @@
-
+
LXQtQuickLaunch
- Errore di spostamento
+ Errore di trascinamento
@@ -17,7 +17,8 @@
-
+ Trascina applicazioni
+dal menù qui
diff --git a/plugin-quicklaunch/translations/quicklaunch_it_IT.desktop b/plugin-quicklaunch/translations/quicklaunch_it_IT.desktop
deleted file mode 100644
index c44779f..0000000
--- a/plugin-quicklaunch/translations/quicklaunch_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-screensaver/translations/screensaver_it.desktop b/plugin-screensaver/translations/screensaver_it.desktop
new file mode 100644
index 0000000..fe0cdfc
--- /dev/null
+++ b/plugin-screensaver/translations/screensaver_it.desktop
@@ -0,0 +1,3 @@
+Comment[it]=Attiva un salvaschermo e/o blocca lo schermo
+Name[it]=Salvaschermo
+
diff --git a/plugin-screensaver/translations/screensaver_it_IT.ts b/plugin-screensaver/translations/screensaver_it.ts
similarity index 77%
rename from plugin-screensaver/translations/screensaver_it_IT.ts
rename to plugin-screensaver/translations/screensaver_it.ts
index fe44c3d..0b47e62 100644
--- a/plugin-screensaver/translations/screensaver_it_IT.ts
+++ b/plugin-screensaver/translations/screensaver_it.ts
@@ -1,6 +1,6 @@
-
+
PanelScreenSaver
@@ -10,12 +10,12 @@
-
+ Blocca schermo
-
+ La scorciatoia globale per lo screensaver: '%1' non può essere registrata
diff --git a/plugin-screensaver/translations/screensaver_it_IT.desktop b/plugin-screensaver/translations/screensaver_it_IT.desktop
deleted file mode 100644
index bae95fa..0000000
--- a/plugin-screensaver/translations/screensaver_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-sensors/translations/sensors_it.desktop b/plugin-sensors/translations/sensors_it.desktop
new file mode 100644
index 0000000..f7f2e8d
--- /dev/null
+++ b/plugin-sensors/translations/sensors_it.desktop
@@ -0,0 +1,3 @@
+Name[it]=Sensori
+Comment[it]=Visualizza i valori rilevati dai sensori hardware (attualmente lm_sensors)
+
diff --git a/plugin-sensors/translations/sensors_it_IT.ts b/plugin-sensors/translations/sensors_it.ts
similarity index 97%
rename from plugin-sensors/translations/sensors_it_IT.ts
rename to plugin-sensors/translations/sensors_it.ts
index 0edc8dd..7825fd4 100644
--- a/plugin-sensors/translations/sensors_it_IT.ts
+++ b/plugin-sensors/translations/sensors_it.ts
@@ -1,6 +1,6 @@
-
+
LXQtSensorsConfiguration
@@ -10,7 +10,7 @@
-
+ Impostazioni sensori
diff --git a/plugin-sensors/translations/sensors_it_IT.desktop b/plugin-sensors/translations/sensors_it_IT.desktop
deleted file mode 100644
index a54e68d..0000000
--- a/plugin-sensors/translations/sensors_it_IT.desktop
+++ /dev/null
@@ -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)
diff --git a/plugin-showdesktop/translations/showdesktop_it.desktop b/plugin-showdesktop/translations/showdesktop_it.desktop
new file mode 100644
index 0000000..976fdb9
--- /dev/null
+++ b/plugin-showdesktop/translations/showdesktop_it.desktop
@@ -0,0 +1,2 @@
+Comment[it]=Minimizza tutte le finestre e mostra la scrivania
+Name[it]=Mostra scrivania
diff --git a/plugin-showdesktop/translations/showdesktop_it_IT.ts b/plugin-showdesktop/translations/showdesktop_it.ts
similarity index 67%
rename from plugin-showdesktop/translations/showdesktop_it_IT.ts
rename to plugin-showdesktop/translations/showdesktop_it.ts
index f879db9..964671c 100644
--- a/plugin-showdesktop/translations/showdesktop_it_IT.ts
+++ b/plugin-showdesktop/translations/showdesktop_it.ts
@@ -1,22 +1,22 @@
-
+
ShowDesktop
-
+ Mostra scrivania
- Mostra desktop: la scorciatoia globale '%1' non può essere registrata
+ Mostra scrivania: la scorciatoia globale '%1' non può essere registrata
- Mostra desktop
+ Mostra scrivania
diff --git a/plugin-showdesktop/translations/showdesktop_it_IT.desktop b/plugin-showdesktop/translations/showdesktop_it_IT.desktop
deleted file mode 100644
index 6d85106..0000000
--- a/plugin-showdesktop/translations/showdesktop_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-spacer/translations/spacer_it.desktop b/plugin-spacer/translations/spacer_it.desktop
new file mode 100644
index 0000000..59e099a
--- /dev/null
+++ b/plugin-spacer/translations/spacer_it.desktop
@@ -0,0 +1,2 @@
+Name[it]=Spaziatore
+Comment[it]=Aggiunge uno spazio fra gli elementi
diff --git a/plugin-spacer/translations/spacer_it.ts b/plugin-spacer/translations/spacer_it.ts
new file mode 100644
index 0000000..f5a065c
--- /dev/null
+++ b/plugin-spacer/translations/spacer_it.ts
@@ -0,0 +1,22 @@
+
+
+
+
+ SpacerConfiguration
+
+
+
+ Impostazioni spaziatore
+
+
+
+
+ Larghezza:
+
+
+
+
+ Tipo:
+
+
+
diff --git a/plugin-statusnotifier/CMakeLists.txt b/plugin-statusnotifier/CMakeLists.txt
index 42ea321..9a2b26d 100644
--- a/plugin-statusnotifier/CMakeLists.txt
+++ b/plugin-statusnotifier/CMakeLists.txt
@@ -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
diff --git a/plugin-statusnotifier/sniasync.cpp b/plugin-statusnotifier/sniasync.cpp
new file mode 100644
index 0000000..f888d13
--- /dev/null
+++ b/plugin-statusnotifier/sniasync.cpp
@@ -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
+ *
+ * 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 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);
+}
diff --git a/plugin-statusnotifier/sniasync.h b/plugin-statusnotifier/sniasync.h
new file mode 100644
index 0000000..13152c4
--- /dev/null
+++ b/plugin-statusnotifier/sniasync.h
@@ -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
+ *
+ * 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
+#include "statusnotifieriteminterface.h"
+
+template
+struct remove_class_type { using type = void; }; // bluff
+template
+struct remove_class_type { using type = R(ArgTypes...); };
+template
+struct remove_class_type { using type = R(ArgTypes...); };
+
+template
+class call_sig_helper
+{
+ template
+ static decltype(&L1::operator()) test(int);
+ template
+ static void test(...); //bluff
+public:
+ using type = decltype(test(0));
+};
+template
+struct call_signature : public remove_class_type::type> {};
+template
+struct call_signature { using type = R (ArgTypes...); };
+template
+struct call_signature { using type = R (ArgTypes...); };
+template
+struct call_signature { using type = R (ArgTypes...); };
+template
+struct call_signature { using type = R(ArgTypes...); };
+
+template struct is_valid_signature : public std::false_type {};
+template
+struct is_valid_signature : 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
+ inline void propertyGetAsync(QString const &name, F finished)
+ {
+ static_assert(is_valid_signature::type>::value, "need callable (lambda, *function, callable obj) (Arg) -> void");
+ connect(new QDBusPendingCallWatcher{asyncPropGet(name), this},
+ &QDBusPendingCallWatcher::finished,
+ [this, finished, name] (QDBusPendingCallWatcher * call)
+ {
+ QDBusPendingReply reply = *call;
+ if (reply.isError())
+ qDebug() << "Error on DBus request:" << reply.error();
+ finished(qdbus_cast::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 asyncPropGet(QString const & property);
+
+private:
+ org::kde::StatusNotifierItem mSni;
+
+};
+
+#endif
diff --git a/plugin-statusnotifier/statusnotifierbutton.cpp b/plugin-statusnotifier/statusnotifierbutton.cpp
index a318c99..ee73324 100644
--- a/plugin-statusnotifier/statusnotifierbutton.cpp
+++ b/plugin-statusnotifier/statusnotifierbutton.cpp
@@ -32,164 +32,189 @@
#include
#include
#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(*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(*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(iconPixmap.bytes.data());
- for (const uchar *src = image.constBits(); src < end; src += 4, dest += 4)
- qToUnaligned(qToBigEndian(qFromUnaligned(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(iconPixmap.bytes.data());
+ for (const uchar *src = image.constBits(); src < end; src += 4, dest += 4)
+ qToUnaligned(qToBigEndian(qFromUnaligned(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);
}
diff --git a/plugin-statusnotifier/statusnotifierbutton.h b/plugin-statusnotifier/statusnotifierbutton.h
index 8df67a6..4dbca30 100644
--- a/plugin-statusnotifier/statusnotifierbutton.h
+++ b/plugin-statusnotifier/statusnotifierbutton.h
@@ -37,8 +37,6 @@
#include
#include
-#include "statusnotifieriteminterface.h"
-
#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
template inline T qFromUnaligned(const uchar *src)
{
@@ -50,6 +48,7 @@ template 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;
diff --git a/plugin-statusnotifier/statusnotifierwidget.cpp b/plugin-statusnotifier/statusnotifierwidget.cpp
index 1a85023..691f232 100644
--- a/plugin-statusnotifier/statusnotifierwidget.cpp
+++ b/plugin-statusnotifier/statusnotifierwidget.cpp
@@ -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)
diff --git a/plugin-statusnotifier/statusnotifierwidget.h b/plugin-statusnotifier/statusnotifierwidget.h
index 1396f40..f98a833 100644
--- a/plugin-statusnotifier/statusnotifierwidget.h
+++ b/plugin-statusnotifier/statusnotifierwidget.h
@@ -42,6 +42,7 @@ class StatusNotifierWidget : public QWidget
public:
StatusNotifierWidget(ILXQtPanelPlugin *plugin, QWidget *parent = 0);
+ ~StatusNotifierWidget();
signals:
diff --git a/plugin-statusnotifier/translations/statusnotifier_it.desktop b/plugin-statusnotifier/translations/statusnotifier_it.desktop
new file mode 100644
index 0000000..bcdee8f
--- /dev/null
+++ b/plugin-statusnotifier/translations/statusnotifier_it.desktop
@@ -0,0 +1,2 @@
+Name[it]=Notificatore
+Comment[it]=Mostra lo status delle applicazioni
diff --git a/plugin-sysstat/translations/sysstat_el.ts b/plugin-sysstat/translations/sysstat_el.ts
index 0d1ad16..73f1627 100644
--- a/plugin-sysstat/translations/sysstat_el.ts
+++ b/plugin-sysstat/translations/sysstat_el.ts
@@ -2,7 +2,7 @@
- LxQtSysStatColours
+ LXQtSysStatColours
@@ -112,7 +112,7 @@
- LxQtSysStatConfiguration
+ LXQtSysStatConfiguration
diff --git a/plugin-sysstat/translations/sysstat_it.desktop b/plugin-sysstat/translations/sysstat_it.desktop
new file mode 100644
index 0000000..d878dab
--- /dev/null
+++ b/plugin-sysstat/translations/sysstat_it.desktop
@@ -0,0 +1,2 @@
+Name[it]=Statistiche del sistema
+Comment[it]=Mostra statistiche configurabili del sistema
diff --git a/plugin-sysstat/translations/sysstat_it.ts b/plugin-sysstat/translations/sysstat_it.ts
new file mode 100644
index 0000000..34717b7
--- /dev/null
+++ b/plugin-sysstat/translations/sysstat_it.ts
@@ -0,0 +1,237 @@
+
+
+
+
+ LXQtSysStatColours
+
+
+
+ Colori delle statistiche
+
+
+
+
+ Grafico
+
+
+
+
+ &Griglia
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cambia ...
+
+
+
+
+ &Titolo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &Altro
+
+
+
+
+ &Frequenza
+
+
+
+
+ &Sistema
+
+
+
+
+ &Utente
+
+
+
+
+ Memoria
+
+
+
+
+ &Cache
+
+
+
+
+ &Swap
+
+
+
+
+ &Applicazioni
+
+
+
+
+
+
+
+
+
+ Rete
+
+
+
+
+ &Ricevuti
+
+
+
+
+ &Trasmessi
+
+
+
+ LXQtSysStatConfiguration
+
+
+
+ Grafico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Impostazioni statistiche del sistema
+
+
+
+
+ &Grandezza minimale
+
+
+
+
+ &Intervallo di aggiornamento
+
+
+
+
+ &Titolo
+
+
+
+
+ &Linee griglia
+
+
+
+
+ <html><head/><body><p>Larghezza minimale se il pannello è orizzontale.</p><p>Altezza minimale se il pannello è verticale.</p></body></html>
+
+
+
+
+ Usa &frequenza
+
+
+
+
+ &Massimo
+
+
+
+
+ Scala &logaritmica
+
+
+
+
+
+
+
+
+
+ Memoria
+
+
+
+
+ Rete
+
+
+
+
+ &Sorgente
+
+
+
+
+ &Tipo
+
+
+
+
+ Colori
+
+
+
+
+ Usa colori del &tema
+
+
+
+
+ Colori &personalizzati
+
+
+
+
+ Colore personalizzato ...
+
+
+
+
+
+
+
+
+
+ intervalli
+
+
+
diff --git a/plugin-taskbar/translations/taskbar_it.desktop b/plugin-taskbar/translations/taskbar_it.desktop
new file mode 100644
index 0000000..03f6a44
--- /dev/null
+++ b/plugin-taskbar/translations/taskbar_it.desktop
@@ -0,0 +1,2 @@
+Name[it]=Barra delle applicazioni
+Comment[it]=Permette di spostarsi tra le applicazioni in esecuzione tramite pulsanti
diff --git a/plugin-taskbar/translations/taskbar_it_IT.ts b/plugin-taskbar/translations/taskbar_it.ts
similarity index 91%
rename from plugin-taskbar/translations/taskbar_it_IT.ts
rename to plugin-taskbar/translations/taskbar_it.ts
index 117934d..4baa209 100644
--- a/plugin-taskbar/translations/taskbar_it_IT.ts
+++ b/plugin-taskbar/translations/taskbar_it.ts
@@ -1,6 +1,6 @@
-
+
LXQtTaskButton
@@ -94,12 +94,12 @@
-
+ Gruppo
-
+ Chiudi gruppo
@@ -120,42 +120,42 @@
-
+ Generali
-
+ Mostra finestre del &desktop attuale
-
+ Mostra finestre di &tutti desktop
-
+ &Ragruppa finestre della stessa applicazione
-
+ Mostra popup al passaggio del mouse
-
+ Aspetto
-
+ Larghezza massima del pulsante
-
+ px
@@ -198,7 +198,7 @@
- Chiudi con un clic del tasto centrale
+ Chiudi con un click del tasto centrale
diff --git a/plugin-taskbar/translations/taskbar_it_IT.desktop b/plugin-taskbar/translations/taskbar_it_IT.desktop
deleted file mode 100644
index cf00fdf..0000000
--- a/plugin-taskbar/translations/taskbar_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-tray/translations/tray_it.desktop b/plugin-tray/translations/tray_it.desktop
new file mode 100644
index 0000000..db0a4a2
--- /dev/null
+++ b/plugin-tray/translations/tray_it.desktop
@@ -0,0 +1,2 @@
+Comment[it]=Accedi alle applicazioni minimizzate nel vassoio di sistema
+Name[it]=Vassoio di sistema
diff --git a/plugin-tray/translations/tray_it_IT.desktop b/plugin-tray/translations/tray_it_IT.desktop
deleted file mode 100644
index 6a7bcb4..0000000
--- a/plugin-tray/translations/tray_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-tray/trayicon.cpp b/plugin-tray/trayicon.cpp
index 157fc17..24f517b 100644
--- a/plugin-tray/trayicon.cpp
+++ b/plugin-tray/trayicon.cpp
@@ -33,6 +33,7 @@
#include
#include
#include
+#include
#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 **************************************";
diff --git a/plugin-volume/translations/volume_it.desktop b/plugin-volume/translations/volume_it.desktop
new file mode 100644
index 0000000..6ae7b70
--- /dev/null
+++ b/plugin-volume/translations/volume_it.desktop
@@ -0,0 +1,3 @@
+Name[it]=Controllo del volume
+Comment[it]=Controlla il volume del sistema e avvia il mixer preferito
+
diff --git a/plugin-volume/translations/volume_it_IT.ts b/plugin-volume/translations/volume_it.ts
similarity index 84%
rename from plugin-volume/translations/volume_it_IT.ts
rename to plugin-volume/translations/volume_it.ts
index 1bc401d..56fef27 100644
--- a/plugin-volume/translations/volume_it_IT.ts
+++ b/plugin-volume/translations/volume_it.ts
@@ -1,6 +1,6 @@
-
+
LXQtVolume
@@ -10,28 +10,28 @@
-
+ Alza volume
-
+ Abbassa volume
-
+ Muta/smuta audio
-
+ Controllo volume: la scorciatoia globale '%1' non può essere registrata
-
+ Volume: %1
@@ -43,7 +43,7 @@
-
+ Impostazioni controllo volume
@@ -63,7 +63,7 @@
-
+ OSS
@@ -73,12 +73,12 @@
- Muto al clic centrale del mouse
+ Muta al click centrale del mouse
- Mostra al clic del mouse
+ Mostra al click del mouse
@@ -101,12 +101,12 @@
-
+ Avvia mixer
-
+ Mixer
diff --git a/plugin-volume/translations/volume_it_IT.desktop b/plugin-volume/translations/volume_it_IT.desktop
deleted file mode 100644
index dfc7161..0000000
--- a/plugin-volume/translations/volume_it_IT.desktop
+++ /dev/null
@@ -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
diff --git a/plugin-worldclock/translations/worldclock_el.ts b/plugin-worldclock/translations/worldclock_el.ts
index ff3ebb4..965bbc0 100644
--- a/plugin-worldclock/translations/worldclock_el.ts
+++ b/plugin-worldclock/translations/worldclock_el.ts
@@ -2,7 +2,7 @@
- LxQtWorldClock
+ LXQtWorldClock
@@ -10,7 +10,7 @@
- LxQtWorldClockConfiguration
+ LXQtWorldClockConfiguration
@@ -239,7 +239,7 @@
- LxQtWorldClockConfigurationManualFormat
+ LXQtWorldClockConfigurationManualFormat
@@ -324,7 +324,7 @@
- LxQtWorldClockConfigurationTimeZones
+ LXQtWorldClockConfigurationTimeZones
diff --git a/plugin-worldclock/translations/worldclock_it.desktop b/plugin-worldclock/translations/worldclock_it.desktop
new file mode 100644
index 0000000..21570f4
--- /dev/null
+++ b/plugin-worldclock/translations/worldclock_it.desktop
@@ -0,0 +1,3 @@
+#TRANSLATIONS
+Name[it]=Orologio mondiale
+Comment[it]=Mostra un orologio con un fuso orario diverso
diff --git a/plugin-worldclock/translations/worldclock_it.ts b/plugin-worldclock/translations/worldclock_it.ts
new file mode 100644
index 0000000..c9b5f28
--- /dev/null
+++ b/plugin-worldclock/translations/worldclock_it.ts
@@ -0,0 +1,328 @@
+
+
+
+
+ LXQtWorldClock
+
+
+
+
+
+
+
+ LXQtWorldClockConfiguration
+
+
+
+ Impostazioni orologio mondiale
+
+
+
+
+ &Aspetto
+
+
+
+
+ &Ora
+
+
+
+
+ F&ormato:
+
+
+
+
+
+
+ Breve
+
+
+
+
+
+
+ Esteso
+
+
+
+
+
+ Personalizzato
+
+
+
+
+ &Mostra secondi
+
+
+
+
+ Ora &senza zero iniziale
+
+
+
+
+ &Fuso orario
+
+
+
+
+ &Posizione:
+
+
+
+
+ F&ormato:
+
+
+
+
+
+ Sotto
+
+
+
+
+
+ Sopra
+
+
+
+
+
+ Prima
+
+
+
+
+
+ Dopo
+
+
+
+
+ Differenza da UTC
+
+
+
+
+ Abbreviazione
+
+
+
+
+
+
+
+
+
+
+
+ Nome personalizzato
+
+
+
+
+ &Usa formato 12 ore
+
+
+
+
+ Nome località
+
+
+
+
+ &Data
+
+
+
+
+ &Posizione:
+
+
+
+
+ F&ormato:
+
+
+
+
+
+
+
+
+
+ Mostra l'&anno
+
+
+
+
+ Mostra &giorno della settimana
+
+
+
+
+ Giorno &senza zero iniziale
+
+
+
+
+ Nome &esteso per mese e giorno della settimana
+
+
+
+
+ Formato avanzato &personalizzato
+
+
+
+
+ &Personalizza...
+
+
+
+
+ Fu&si orari
+
+
+
+
+ &Aggiungi...
+
+
+
+
+ &Rimuovi
+
+
+
+
+ &Imponi come predefinito
+
+
+
+
+ &Personalizza nome...
+
+
+
+
+ &Sù
+
+
+
+
+ &Giù
+
+
+
+
+ A<ro
+
+
+
+
+ &Ruota automaticamente se il panello è verticale
+
+
+
+
+
+
+
+
+
+ Nome personalizzato
+
+
+
+ LXQtWorldClockConfigurationManualFormat
+
+
+
+ Fusi orari orologio mondiale
+
+
+
+
+
+
+
+
+ LXQtWorldClockConfigurationTimeZones
+
+
+
+ Fusi orari orologio mondiale
+
+
+
+
+ Fuso orario
+
+
+
+
+ Nome
+
+
+
+
+ Commento
+
+
+
+
+ Paese
+
+
+
+
+
+
+
+
+
+ Altro
+
+
+