summaryrefslogtreecommitdiff
path: root/plugins-alternative/Themes
diff options
context:
space:
mode:
Diffstat (limited to 'plugins-alternative/Themes')
-rw-r--r--plugins-alternative/Themes/Clean/Languages/ar/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/de/translation.ts16
-rw-r--r--plugins-alternative/Themes/Clean/Languages/el/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/en/translation.ts55
-rw-r--r--plugins-alternative/Themes/Clean/Languages/es/translation.ts10
-rw-r--r--plugins-alternative/Themes/Clean/Languages/fr/translation.ts10
-rw-r--r--plugins-alternative/Themes/Clean/Languages/hi/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/hu/translation.ts55
-rw-r--r--plugins-alternative/Themes/Clean/Languages/id/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/it/translation.ts20
-rw-r--r--plugins-alternative/Themes/Clean/Languages/ja/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/ko/translation.ts10
-rw-r--r--plugins-alternative/Themes/Clean/Languages/nl/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/no/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/pl/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/ru/translation.ts10
-rw-r--r--plugins-alternative/Themes/Clean/Languages/th/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/tr/translation.ts4
-rw-r--r--plugins-alternative/Themes/Clean/Languages/zh/translation.ts4
-rw-r--r--[-rwxr-xr-x]plugins-alternative/Themes/Clean/documentation.dox6
-rw-r--r--plugins-alternative/Themes/Clean/factory.cpp89
-rw-r--r--plugins-alternative/Themes/Clean/factory.h42
-rw-r--r--plugins-alternative/Themes/Clean/informations.xml3
-rw-r--r--plugins-alternative/Themes/Clean/interface.cpp557
-rw-r--r--plugins-alternative/Themes/Clean/interface.h242
-rw-r--r--plugins-alternative/Themes/Clean/interface.pro31
-rw-r--r--plugins-alternative/Themes/Clean/interface.ui14
-rw-r--r--plugins-alternative/Themes/Clean/plugin.json1
-rw-r--r--plugins-alternative/Themes/Clean/resources.qrc2
-rw-r--r--plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.pngbin734 -> 841 bytes
-rw-r--r--plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.pngbin798 -> 1093 bytes
-rw-r--r--plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.pngbin563 -> 623 bytes
-rw-r--r--plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.pngbin1007 -> 1296 bytes
-rw-r--r--plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.pngbin664 -> 841 bytes
-rw-r--r--plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.pngbin789 -> 754 bytes
-rw-r--r--plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.pngbin551 -> 485 bytes
-rw-r--r--plugins-alternative/Themes/Clean/resources_unix.qrc4
-rw-r--r--plugins-alternative/Themes/Clean/resources_windows.qrc2
-rw-r--r--plugins-alternative/Themes/Supercopier/DebugEngineMacro.h28
-rw-r--r--plugins-alternative/Themes/Supercopier/Environment.h10
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/ar/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/de/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/el/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/en/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/es/translation.ts340
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/fr/translation.ts344
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/hi/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/hu/translation.ts328
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/id/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/it/translation.ts336
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/ja/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/ko/translation.ts336
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/nl/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/no/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/pl/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/pt/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/ru/translation.ts336
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/th/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/tr/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/Languages/zh/translation.ts324
-rw-r--r--plugins-alternative/Themes/Supercopier/StructEnumDefinition.h1
-rw-r--r--plugins-alternative/Themes/Supercopier/TransferModel.cpp569
-rw-r--r--plugins-alternative/Themes/Supercopier/TransferModel.h96
-rw-r--r--plugins-alternative/Themes/Supercopier/Variable.h15
-rw-r--r--plugins-alternative/Themes/Supercopier/documentation.dox33
-rw-r--r--plugins-alternative/Themes/Supercopier/factory.cpp441
-rw-r--r--plugins-alternative/Themes/Supercopier/factory.h83
-rw-r--r--plugins-alternative/Themes/Supercopier/informations.xml26
-rw-r--r--plugins-alternative/Themes/Supercopier/interface.cpp1332
-rw-r--r--plugins-alternative/Themes/Supercopier/interface.h221
-rw-r--r--plugins-alternative/Themes/Supercopier/interface.pro59
-rw-r--r--plugins-alternative/Themes/Supercopier/interface.ui845
-rw-r--r--plugins-alternative/Themes/Supercopier/interfaceResources.qrc24
-rw-r--r--plugins-alternative/Themes/Supercopier/interfaceResources_unix.qrc9
-rw-r--r--plugins-alternative/Themes/Supercopier/interfaceResources_windows.qrc9
-rw-r--r--plugins-alternative/Themes/Supercopier/plugin.json1
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/add.pngbin0 -> 246 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/exit.pngbin0 -> 545 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/informations.pngbin0 -> 281 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/options.pngbin0 -> 275 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.pngbin0 -> 95 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.pngbin0 -> 93 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Unix.pngbin0 -> 147 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Windows.pngbin0 -> 148 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Unix.pngbin0 -> 147 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Windows.pngbin0 -> 148 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.pngbin0 -> 95 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.pngbin0 -> 93 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Unix.pngbin0 -> 141 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Windows.pngbin0 -> 139 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/add.pngbin0 -> 240 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/cancel.pngbin0 -> 284 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/export-transfer-list.pngbin0 -> 264 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/import-transfer-list.pngbin0 -> 316 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/main.pngbin0 -> 148 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/moveDown.pngbin0 -> 191 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/moveUp.pngbin0 -> 190 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/player_end.pngbin0 -> 226 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/player_pause.pngbin0 -> 207 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/player_play.pngbin0 -> 208 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/progressbarleft.pngbin0 -> 133 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/progressbarright.pngbin0 -> 132 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/putOnBottom.pngbin0 -> 206 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/putOnTop.pngbin0 -> 208 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/remove.pngbin0 -> 254 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/resources/search.pngbin0 -> 237 bytes
-rw-r--r--plugins-alternative/Themes/Supercopier/themesOptions.ui384
-rw-r--r--plugins-alternative/Themes/Teracopy/DebugEngineMacro.h7
-rw-r--r--plugins-alternative/Themes/Teracopy/Environment.h3
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/de/translation.ts26
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/el/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/en/translation.ts89
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/es/translation.ts14
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts9
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/hu/translation.ts93
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/id/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/it/translation.ts26
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts6
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/no/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts14
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/th/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts8
-rw-r--r--plugins-alternative/Themes/Teracopy/TransferModel.cpp841
-rw-r--r--plugins-alternative/Themes/Teracopy/TransferModel.h120
-rw-r--r--plugins-alternative/Themes/Teracopy/Variable.h3
-rw-r--r--[-rwxr-xr-x]plugins-alternative/Themes/Teracopy/documentation.dox6
-rw-r--r--plugins-alternative/Themes/Teracopy/factory.cpp107
-rw-r--r--plugins-alternative/Themes/Teracopy/factory.h38
-rw-r--r--plugins-alternative/Themes/Teracopy/informations.xml3
-rw-r--r--plugins-alternative/Themes/Teracopy/interface.cpp695
-rw-r--r--plugins-alternative/Themes/Teracopy/interface.h289
-rw-r--r--plugins-alternative/Themes/Teracopy/interface.pro31
-rw-r--r--plugins-alternative/Themes/Teracopy/interface.ui14
-rw-r--r--plugins-alternative/Themes/Teracopy/plugin.json1
-rw-r--r--plugins-alternative/Themes/Teracopy/resources.qrc2
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.pngbin564 -> 552 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.pngbin775 -> 874 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.pngbin734 -> 841 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.pngbin660 -> 624 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.pngbin798 -> 1093 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.pngbin563 -> 623 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.pngbin1007 -> 1296 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.pngbin664 -> 841 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.pngbin789 -> 754 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.pngbin551 -> 485 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/checkbox.pngbin654 -> 619 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/main.pngbin563 -> 623 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/player_pause.pngbin484 -> 640 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources/player_play.pngbin501 -> 673 bytes
-rw-r--r--plugins-alternative/Themes/Teracopy/resources_unix.qrc4
-rw-r--r--plugins-alternative/Themes/Teracopy/resources_windows.qrc2
-rw-r--r--plugins-alternative/Themes/Windows/DebugEngineMacro.h28
-rw-r--r--plugins-alternative/Themes/Windows/Environment.h10
-rw-r--r--plugins-alternative/Themes/Windows/Languages/ar/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/de/translation.ts124
-rw-r--r--plugins-alternative/Themes/Windows/Languages/el/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/en/translation.ts124
-rw-r--r--plugins-alternative/Themes/Windows/Languages/es/translation.ts124
-rw-r--r--plugins-alternative/Themes/Windows/Languages/fr/translation.ts124
-rw-r--r--plugins-alternative/Themes/Windows/Languages/hi/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/hu/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/id/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/it/translation.ts125
-rw-r--r--plugins-alternative/Themes/Windows/Languages/ja/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/ko/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/nl/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/no/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/pl/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/ru/translation.ts127
-rw-r--r--plugins-alternative/Themes/Windows/Languages/th/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/tr/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/Languages/zh/translation.ts121
-rw-r--r--plugins-alternative/Themes/Windows/StructEnumDefinition.h1
-rw-r--r--plugins-alternative/Themes/Windows/TransferModel.cpp286
-rw-r--r--plugins-alternative/Themes/Windows/TransferModel.h90
-rw-r--r--plugins-alternative/Themes/Windows/Variable.h15
-rw-r--r--plugins-alternative/Themes/Windows/documentation.dox29
-rw-r--r--plugins-alternative/Themes/Windows/factory.cpp74
-rw-r--r--plugins-alternative/Themes/Windows/factory.h45
-rw-r--r--plugins-alternative/Themes/Windows/informations.xml26
-rw-r--r--plugins-alternative/Themes/Windows/interface.cpp414
-rw-r--r--plugins-alternative/Themes/Windows/interface.h165
-rw-r--r--plugins-alternative/Themes/Windows/interface.pro48
-rw-r--r--plugins-alternative/Themes/Windows/interface.ui415
-rw-r--r--plugins-alternative/Themes/Windows/plugin.json1
-rw-r--r--plugins-alternative/Themes/Windows/resources.qrc10
-rw-r--r--plugins-alternative/Themes/Windows/resources/SystemTrayIcon/informations.pngbin0 -> 841 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Unix.pngbin0 -> 1093 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Windows.pngbin0 -> 623 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Unix.pngbin0 -> 1296 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Windows.pngbin0 -> 841 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Unix.pngbin0 -> 754 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Windows.pngbin0 -> 485 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/arrow-down.pngbin0 -> 598 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/arrow-up.pngbin0 -> 602 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/empty.pngbin0 -> 95 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/icon-top.pngbin0 -> 2437 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/icon-top.xcfbin0 -> 4398 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources/icon.pngbin0 -> 379 bytes
-rw-r--r--plugins-alternative/Themes/Windows/resources_unix.qrc7
-rw-r--r--plugins-alternative/Themes/Windows/resources_windows.qrc7
207 files changed, 16833 insertions, 1655 deletions
diff --git a/plugins-alternative/Themes/Clean/Languages/ar/translation.ts b/plugins-alternative/Themes/Clean/Languages/ar/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/ar/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/ar/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/de/translation.ts b/plugins-alternative/Themes/Clean/Languages/de/translation.ts
index 7ea1972..0a833ee 100644
--- a/plugins-alternative/Themes/Clean/Languages/de/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/de/translation.ts
@@ -4,9 +4,9 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
- <translation>%1/%2 dateien, %3/%4</translation>
+ <translation>%1/%2 Dateien, %3/%4</translation>
</message>
</context>
<context>
@@ -18,8 +18,8 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
- <translation>auf der Lauer</translation>
+ <source>Waiting</source>
+ <translation>Warten</translation>
</message>
<message>
<location filename="../../interface.ui" line="78"/>
@@ -34,22 +34,22 @@
<message>
<location filename="../../interface.ui" line="96"/>
<source>Move file(s)</source>
- <translation>Bewegen Sie Datei (en)</translation>
+ <translation>Datei (en) verschieben</translation>
</message>
<message>
<location filename="../../interface.ui" line="105"/>
<source>Move folder</source>
- <translation>bewegen Sie Ordner</translation>
+ <translation>Ordner verschieben</translation>
</message>
<message>
<location filename="../../interface.ui" line="114"/>
<source>Copy file(s)</source>
- <translation>Kopieren Sie die Datei (en)</translation>
+ <translation>Datei (en) kopieren</translation>
</message>
<message>
<location filename="../../interface.ui" line="123"/>
<source>Copy folder</source>
- <translation>kopieren Sie das Verzeichnis</translation>
+ <translation>Ordner kopieren</translation>
</message>
</context>
</TS>
diff --git a/plugins-alternative/Themes/Clean/Languages/el/translation.ts b/plugins-alternative/Themes/Clean/Languages/el/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/el/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/el/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/en/translation.ts b/plugins-alternative/Themes/Clean/Languages/en/translation.ts
new file mode 100644
index 0000000..d13892c
--- /dev/null
+++ b/plugins-alternative/Themes/Clean/Languages/en/translation.ts
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en">
+<context>
+ <name>InterfacePlugin</name>
+ <message>
+ <location filename="../../interface.cpp" line="142"/>
+ <source>%1/%2 files, %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="32"/>
+ <source>Action:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="44"/>
+ <source>Waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="78"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="87"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="96"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="105"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="114"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="123"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Clean/Languages/es/translation.ts b/plugins-alternative/Themes/Clean/Languages/es/translation.ts
index 70b8246..8c54e8a 100644
--- a/plugins-alternative/Themes/Clean/Languages/es/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/es/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation>%1/%2 archivos, %3/%4</translation>
</message>
@@ -17,9 +17,13 @@
<translation>Acción:</translation>
</message>
<message>
- <location filename="../../interface.ui" line="44"/>
<source>In wait</source>
- <translation>En espera</translation>
+ <translation type="obsolete">En espera</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="44"/>
+ <source>Waiting</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location filename="../../interface.ui" line="78"/>
diff --git a/plugins-alternative/Themes/Clean/Languages/fr/translation.ts b/plugins-alternative/Themes/Clean/Languages/fr/translation.ts
index 51fd57f..bdc0621 100644
--- a/plugins-alternative/Themes/Clean/Languages/fr/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/fr/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation>%1/%2 fichiers, %3/%4</translation>
</message>
@@ -17,9 +17,8 @@
<translation>Action:</translation>
</message>
<message>
- <location filename="../../interface.ui" line="44"/>
<source>In wait</source>
- <translation>En attente</translation>
+ <translation type="obsolete">En attente</translation>
</message>
<message>
<location filename="../../interface.ui" line="96"/>
@@ -47,6 +46,11 @@
<translation>Ajouter un dossier</translation>
</message>
<message>
+ <location filename="../../interface.ui" line="44"/>
+ <source>Waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../../interface.ui" line="78"/>
<source>Add file</source>
<translation>Ajout de fichier</translation>
diff --git a/plugins-alternative/Themes/Clean/Languages/hi/translation.ts b/plugins-alternative/Themes/Clean/Languages/hi/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/hi/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/hi/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/hu/translation.ts b/plugins-alternative/Themes/Clean/Languages/hu/translation.ts
new file mode 100644
index 0000000..e5a3bcc
--- /dev/null
+++ b/plugins-alternative/Themes/Clean/Languages/hu/translation.ts
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>InterfacePlugin</name>
+ <message>
+ <location filename="../../interface.cpp" line="142"/>
+ <source>%1/%2 files, %3/%4</source>
+ <translation>%1/%2 fájl, %3/%4</translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="32"/>
+ <source>Action:</source>
+ <translation>Művelet:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="44"/>
+ <source>Waiting</source>
+ <translation>Várakozás</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="78"/>
+ <source>Add file</source>
+ <translation>Fájl hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="87"/>
+ <source>Add folder</source>
+ <translation>Mappa hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="96"/>
+ <source>Move file(s)</source>
+ <translation>Fájl(ok) mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="105"/>
+ <source>Move folder</source>
+ <translation>Mappa mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="114"/>
+ <source>Copy file(s)</source>
+ <translation>Fájl(ok) másolása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="123"/>
+ <source>Copy folder</source>
+ <translation>Mappa másolása</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Clean/Languages/id/translation.ts b/plugins-alternative/Themes/Clean/Languages/id/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/id/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/id/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/it/translation.ts b/plugins-alternative/Themes/Clean/Languages/it/translation.ts
index b44bd5f..b94ac7b 100644
--- a/plugins-alternative/Themes/Clean/Languages/it/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/it/translation.ts
@@ -4,9 +4,9 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
- <translation></translation>
+ <translation>%1/%2 file, %3/%4</translation>
</message>
</context>
<context>
@@ -17,9 +17,13 @@
<translation>Azione:</translation>
</message>
<message>
- <location filename="../../interface.ui" line="44"/>
<source>In wait</source>
- <translation>In attesa</translation>
+ <translation type="obsolete">In attesa</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="44"/>
+ <source>Waiting</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location filename="../../interface.ui" line="78"/>
@@ -34,22 +38,22 @@
<message>
<location filename="../../interface.ui" line="96"/>
<source>Move file(s)</source>
- <translation>Spostare file(s)</translation>
+ <translation>Sposta file</translation>
</message>
<message>
<location filename="../../interface.ui" line="105"/>
<source>Move folder</source>
- <translation>Spostare la cartella</translation>
+ <translation>Sposta la cartella</translation>
</message>
<message>
<location filename="../../interface.ui" line="114"/>
<source>Copy file(s)</source>
- <translation>Copiare il file (s)</translation>
+ <translation>Copia file</translation>
</message>
<message>
<location filename="../../interface.ui" line="123"/>
<source>Copy folder</source>
- <translation>Copia la cartella</translation>
+ <translation>Copia cartella</translation>
</message>
</context>
</TS>
diff --git a/plugins-alternative/Themes/Clean/Languages/ja/translation.ts b/plugins-alternative/Themes/Clean/Languages/ja/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/ja/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/ja/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/ko/translation.ts b/plugins-alternative/Themes/Clean/Languages/ko/translation.ts
index 41627de..95d2138 100644
--- a/plugins-alternative/Themes/Clean/Languages/ko/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/ko/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="+145"/>
+ <location filename="../../interface.cpp" line="+142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished">%1/%2 파일, %3/%4</translation>
</message>
@@ -17,9 +17,13 @@
<translation type="unfinished">실행:</translation>
</message>
<message>
- <location line="+12"/>
<source>In wait</source>
- <translation type="unfinished">대기중</translation>
+ <translation type="obsolete">대기중</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Waiting</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+34"/>
diff --git a/plugins-alternative/Themes/Clean/Languages/nl/translation.ts b/plugins-alternative/Themes/Clean/Languages/nl/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/nl/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/nl/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/no/translation.ts b/plugins-alternative/Themes/Clean/Languages/no/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/no/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/no/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/pl/translation.ts b/plugins-alternative/Themes/Clean/Languages/pl/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/pl/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/pl/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/ru/translation.ts b/plugins-alternative/Themes/Clean/Languages/ru/translation.ts
index 5f83874..36798e7 100644
--- a/plugins-alternative/Themes/Clean/Languages/ru/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/ru/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation>%1/%2 файлы, %3/%4</translation>
</message>
@@ -17,9 +17,13 @@
<translation>Действие:</translation>
</message>
<message>
- <location filename="../../interface.ui" line="44"/>
<source>In wait</source>
- <translation>В ожидании</translation>
+ <translation type="obsolete">В ожидании</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="44"/>
+ <source>Waiting</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location filename="../../interface.ui" line="78"/>
diff --git a/plugins-alternative/Themes/Clean/Languages/th/translation.ts b/plugins-alternative/Themes/Clean/Languages/th/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/th/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/th/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/tr/translation.ts b/plugins-alternative/Themes/Clean/Languages/tr/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/tr/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/tr/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/Languages/zh/translation.ts b/plugins-alternative/Themes/Clean/Languages/zh/translation.ts
index 81df74e..54104e3 100644
--- a/plugins-alternative/Themes/Clean/Languages/zh/translation.ts
+++ b/plugins-alternative/Themes/Clean/Languages/zh/translation.ts
@@ -4,7 +4,7 @@
<context>
<name>InterfacePlugin</name>
<message>
- <location filename="../../interface.cpp" line="145"/>
+ <location filename="../../interface.cpp" line="142"/>
<source>%1/%2 files, %3/%4</source>
<translation type="unfinished"></translation>
</message>
@@ -18,7 +18,7 @@
</message>
<message>
<location filename="../../interface.ui" line="44"/>
- <source>In wait</source>
+ <source>Waiting</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/plugins-alternative/Themes/Clean/documentation.dox b/plugins-alternative/Themes/Clean/documentation.dox
index 56e5331..3f7bc88 100755..100644
--- a/plugins-alternative/Themes/Clean/documentation.dox
+++ b/plugins-alternative/Themes/Clean/documentation.dox
@@ -11,12 +11,12 @@
\section mainpage_overview Overview
It's interface to have minimal interface for Ultracopier.\n
- More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier 0.3 project as alternative plugin.
+ More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier project as alternative plugin.
\section mainpage_platforms Platforms
- This plugin might be usable in all environments where you find Qt 4.\n
- To be compatible with the official Ultracopier plugins, you need compil it with Gcc, Qt4.8, and same env as Ultracopier have been compiled, see the documentation.
+ Ultracopier might be usable in all environments where you find Qt 5.\n
+ Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0.
\section mainpage_downloads Downloads
diff --git a/plugins-alternative/Themes/Clean/factory.cpp b/plugins-alternative/Themes/Clean/factory.cpp
index 2b8d109..6acbe3a 100644
--- a/plugins-alternative/Themes/Clean/factory.cpp
+++ b/plugins-alternative/Themes/Clean/factory.cpp
@@ -1,70 +1,65 @@
/** \file factory.cpp
\brief Define the factory core
\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QtCore>
+*/
#include "factory.h"
-PluginInterface_Themes * Factory::getInstance()
+PluginInterface_Themes * ThemesFactory::getInstance()
{
- PluginInterface_Themes * newInterface=new InterfacePlugin(facilityEngine);
- connect(this,SIGNAL(reloadLanguage()),newInterface,SLOT(newLanguageLoaded()));
- return newInterface;
+ InterfacePlugin * newInterface=new InterfacePlugin(facilityEngine);
+ connect(this,&ThemesFactory::reloadLanguage,newInterface,&InterfacePlugin::newLanguageLoaded);
+ return newInterface;
}
-void Factory::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,bool portableVersion)
+void ThemesFactory::setResources(OptionInterface * options, const QString &writePath, const QString &pluginPath, FacilityInterface * facilityInterface, const bool &portableVersion)
{
- Q_UNUSED(options)
- Q_UNUSED(writePath)
- Q_UNUSED(pluginPath)
- this->facilityEngine=facilityEngine;
- Q_UNUSED(portableVersion)
+ Q_UNUSED(options)
+ Q_UNUSED(writePath)
+ Q_UNUSED(pluginPath)
+ this->facilityEngine=facilityInterface;
+ Q_UNUSED(portableVersion)
}
-QWidget * Factory::options()
+QWidget * ThemesFactory::options()
{
- return NULL;
+ return NULL;
}
-QIcon Factory::getIcon(const QString &fileName)
+QIcon ThemesFactory::getIcon(const QString &fileName) const
{
- if(fileName=="SystemTrayIcon/exit.png")
- {
- QIcon tempIcon=QIcon::fromTheme("application-exit");
- if(!tempIcon.isNull())
- return tempIcon;
- }
- if(fileName=="SystemTrayIcon/add.png")
- {
- QIcon tempIcon=QIcon::fromTheme("list-add");
- if(!tempIcon.isNull())
- return tempIcon;
- }
- if(fileName=="SystemTrayIcon/informations.png")
- {
- QIcon tempIcon=QIcon::fromTheme("help-about");
- if(!tempIcon.isNull())
- return tempIcon;
- }
- if(fileName=="SystemTrayIcon/options.png")
- {
- QIcon tempIcon=QIcon::fromTheme("applications-system");
- if(!tempIcon.isNull())
- return tempIcon;
- }
- return QIcon(":/resources/"+fileName);
+ if(fileName=="SystemTrayIcon/exit.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("application-exit");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/add.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("list-add");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/informations.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("help-about");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/options.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("applications-system");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ return QIcon(":/Themes/Clean/resources/"+fileName);
}
-void Factory::resetOptions()
+void ThemesFactory::resetOptions()
{
}
-void Factory::newLanguageLoaded()
+void ThemesFactory::newLanguageLoaded()
{
- emit reloadLanguage();
+ emit reloadLanguage();
}
-
-Q_EXPORT_PLUGIN2(interface, Factory);
diff --git a/plugins-alternative/Themes/Clean/factory.h b/plugins-alternative/Themes/Clean/factory.h
index 2a9c0ef..f9b1ee2 100644
--- a/plugins-alternative/Themes/Clean/factory.h
+++ b/plugins-alternative/Themes/Clean/factory.h
@@ -1,8 +1,7 @@
/** \file factory.h
\brief Define the factory, to create instance of the interface
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#ifndef FACTORY_H
#define FACTORY_H
@@ -14,26 +13,27 @@
#include "../../../interface/PluginInterface_Themes.h"
/// \brief Define the factory, to create instance of the interface
-class Factory : public PluginInterface_ThemesFactory
+class ThemesFactory : public PluginInterface_ThemesFactory
{
- Q_OBJECT
- Q_INTERFACES(PluginInterface_ThemesFactory)
- public:
- /// \brief to return the instance of the copy engine
- PluginInterface_Themes * getInstance();
- /// \brief set the resources, to store options, to have facilityInterface
- void setResources(OptionInterface * optionsEngine,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,bool portableVersion);
- /// \brief to get the default options widget
- QWidget * options();
- /// \brief to get a resource icon
- QIcon getIcon(const QString &fileName);
- signals:
- void reloadLanguage();
- public slots:
- void resetOptions();
- void newLanguageLoaded();
- private:
- FacilityInterface * facilityEngine;
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.ThemesFactory/1.0.1.0" FILE "plugin.json")
+ Q_INTERFACES(PluginInterface_ThemesFactory)
+ public:
+ /// \brief to return the instance of the copy engine
+ PluginInterface_Themes * getInstance();
+ /// \brief set the resources, to store options, to have facilityInterface
+ void setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion);
+ /// \brief to get the default options widget
+ QWidget * options();
+ /// \brief to get a resource icon
+ QIcon getIcon(const QString &fileName) const;
+ signals:
+ void reloadLanguage();
+ public slots:
+ void resetOptions();
+ void newLanguageLoaded();
+ private:
+ FacilityInterface * facilityEngine;
};
#endif // FACTORY_H
diff --git a/plugins-alternative/Themes/Clean/informations.xml b/plugins-alternative/Themes/Clean/informations.xml
index 8e076a4..3b49a98 100644
--- a/plugins-alternative/Themes/Clean/informations.xml
+++ b/plugins-alternative/Themes/Clean/informations.xml
@@ -17,11 +17,10 @@
<description xml:lang="en"><![CDATA[Clean style for Ultracopier]]></description>
<description xml:lang="fr"><![CDATA[Style Clean pour Ultracopier]]></description>
<!-- Version of this release of this plugin, need be like that's: A.B.C.D, where A, B, C and D is number -->
- <version>0.3.1.0</version>
+ <version>1.2.3.6</version>
<!-- This internal name should never change, because it is used to detect when a particular plugin is updated. It must comprise only lower case ASCII characters (a-z), numerical digits (0-9), "-", "." or "_", and it must be be unique within the category. And have size lower than 64 char. -->
<name>Clean</name>
<!-- Dependency checking. This is used to check when a plugin may not be compatible with an updated version of either Ultracopier or another plugin. This example only checks Ultracopier. -->
<dependencies><![CDATA[
- >=ultracopier-0.3.1.0
]]></dependencies>
</package> \ No newline at end of file
diff --git a/plugins-alternative/Themes/Clean/interface.cpp b/plugins-alternative/Themes/Clean/interface.cpp
index 6d6c4b1..3f2cd2a 100644
--- a/plugins-alternative/Themes/Clean/interface.cpp
+++ b/plugins-alternative/Themes/Clean/interface.cpp
@@ -1,99 +1,96 @@
/** \file interface.cpp
\brief Define the interface core
\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QtCore>
+*/
#include "interface.h"
#include "ui_interface.h"
InterfacePlugin::InterfacePlugin(FacilityInterface * facilityEngine) :
- ui(new Ui::interface())
-{
- ui->setupUi(this);
- currentFile = 0;
- totalFile = 0;
- currentSize = 0;
- totalSize = 0;
- modeIsForced = false;
- haveStarted = false;
- this->facilityEngine = facilityEngine;
- this->show();
- menu=new QMenu(this);
- ui->toolButton->setMenu(menu);
- updateModeAndType();
-
- connect(ui->actionAddFile,SIGNAL(triggered()),this,SLOT(forcedModeAddFile()));
- connect(ui->actionAddFileToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToCopy()));
- connect(ui->actionAddFileToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToMove()));
- connect(ui->actionAddFolderToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToCopy()));
- connect(ui->actionAddFolderToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToMove()));
- connect(ui->actionAddFolder,SIGNAL(triggered()),this,SLOT(forcedModeAddFolder()));
+ ui(new Ui::interface())
+{
+ ui->setupUi(this);
+ currentFile = 0;
+ totalFile = 0;
+ currentSize = 0;
+ totalSize = 0;
+ modeIsForced = false;
+ haveStarted = false;
+ this->facilityEngine = facilityEngine;
+ menu=new QMenu(this);
+ ui->toolButton->setMenu(menu);
+ updateModeAndType();
+
+ connect(ui->actionAddFile,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFile);
+ connect(ui->actionAddFileToCopy,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFileToCopy);
+ connect(ui->actionAddFileToMove,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFileToMove);
+ connect(ui->actionAddFolderToCopy,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFolderToCopy);
+ connect(ui->actionAddFolderToMove,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFolderToMove);
+ connect(ui->actionAddFolder,&QAction::triggered,this,&InterfacePlugin::forcedModeAddFolder);
+ show();
}
InterfacePlugin::~InterfacePlugin()
{
- delete menu;
+ delete menu;
}
void InterfacePlugin::forcedModeAddFile()
{
- emit userAddFile(mode);
+ emit userAddFile(mode);
}
void InterfacePlugin::forcedModeAddFolder()
{
- emit userAddFolder(mode);
+ emit userAddFolder(mode);
}
void InterfacePlugin::forcedModeAddFileToCopy()
{
- emit userAddFile(Copy);
+ emit userAddFile(Ultracopier::Copy);
}
void InterfacePlugin::forcedModeAddFolderToCopy()
{
- emit userAddFolder(Copy);
+ emit userAddFolder(Ultracopier::Copy);
}
void InterfacePlugin::forcedModeAddFileToMove()
{
- emit userAddFile(Move);
+ emit userAddFile(Ultracopier::Move);
}
void InterfacePlugin::forcedModeAddFolderToMove()
{
- emit userAddFolder(Move);
+ emit userAddFolder(Ultracopier::Move);
}
void InterfacePlugin::updateModeAndType()
{
- menu->clear();
- if(modeIsForced)
- {
- menu->addAction(ui->actionAddFile);
- if(type==FileAndFolder)
- menu->addAction(ui->actionAddFolder);
- }
- else
- {
- menu->addAction(ui->actionAddFileToCopy);
- menu->addAction(ui->actionAddFileToMove);
- if(type==FileAndFolder)
- {
- menu->addAction(ui->actionAddFolderToCopy);
- menu->addAction(ui->actionAddFolderToMove);
- }
- }
+ menu->clear();
+ if(modeIsForced)
+ {
+ menu->addAction(ui->actionAddFile);
+ if(type==Ultracopier::FileAndFolder)
+ menu->addAction(ui->actionAddFolder);
+ }
+ else
+ {
+ menu->addAction(ui->actionAddFileToCopy);
+ menu->addAction(ui->actionAddFileToMove);
+ if(type==Ultracopier::FileAndFolder)
+ {
+ menu->addAction(ui->actionAddFolderToCopy);
+ menu->addAction(ui->actionAddFolderToMove);
+ }
+ }
}
void InterfacePlugin::closeEvent(QCloseEvent *event)
{
- event->ignore();
- this->hide();
- emit cancel();
+ event->ignore();
+ this->hide();
+ emit cancel();
}
void InterfacePlugin::detectedSpeed(const quint64 &speed)
@@ -106,162 +103,170 @@ QWidget * InterfacePlugin::getOptionsEngineWidget()
return NULL;
}
-void InterfacePlugin::getOptionsEngineEnabled(bool isEnabled)
+void InterfacePlugin::getOptionsEngineEnabled(const bool &isEnabled)
{
Q_UNUSED(isEnabled)
}
-void InterfacePlugin::setCopyType(CopyType type)
+void InterfacePlugin::setCopyType(const Ultracopier::CopyType &type)
{
- this->type=type;
- updateModeAndType();
+ this->type=type;
+ updateModeAndType();
}
-void InterfacePlugin::forceCopyMode(CopyMode mode)
+void InterfacePlugin::forceCopyMode(const Ultracopier::CopyMode &mode)
{
- modeIsForced=true;
- this->mode=mode;
- updateModeAndType();
+ modeIsForced=true;
+ this->mode=mode;
+ updateModeAndType();
}
void InterfacePlugin::updateTitle()
{
- QString actionString;
- switch(action)
- {
- case Listing:
- actionString=facilityEngine->translateText("Listing");
- break;
- case Copying:
- actionString=facilityEngine->translateText("Copying");
- break;
- case CopyingAndListing:
- actionString=facilityEngine->translateText("Listing and copying");
- break;
- case Idle:
- actionString="Ultracopier";
- break;
- }
- this->setWindowTitle(actionString+" - "+tr("%1/%2 files, %3/%4").arg(currentFile).arg(totalFile).arg(currentSize).arg(totalSize));
-}
-
-void InterfacePlugin::actionInProgess(EngineActionInProgress action)
-{
- this->action=action;
- switch(action)
- {
- case Copying:
- case CopyingAndListing:
- ui->progressBar->setMaximum(65535);
- ui->progressBar->setMinimum(0);
- break;
- case Listing:
- ui->progressBar->setMaximum(0);
- ui->progressBar->setMinimum(0);
- break;
- case Idle:
- if(haveStarted)
- emit cancel();
- break;
- default:
- break;
- }
- switch(action)
- {
- case Copying:
- case CopyingAndListing:
- haveStarted=true;
- break;
- default:
- break;
- }
-}
-
-void InterfacePlugin::newTransferStart(const ItemOfCopyList &item)
-{
- ui->text->setText(item.sourceFullPath);
+ QString actionString;
+ switch(action)
+ {
+ case Ultracopier::Listing:
+ actionString=facilityEngine->translateText("Listing");
+ break;
+ case Ultracopier::Copying:
+ actionString=facilityEngine->translateText("Copying");
+ break;
+ case Ultracopier::CopyingAndListing:
+ actionString=facilityEngine->translateText("Listing and copying");
+ break;
+ case Ultracopier::Idle:
+ actionString="Ultracopier";
+ break;
+ }
+ this->setWindowTitle(actionString+" - "+tr("%1/%2 files, %3/%4").arg(currentFile).arg(totalFile).arg(currentSize).arg(totalSize));
+}
+
+void InterfacePlugin::actionInProgess(const Ultracopier::EngineActionInProgress &action)
+{
+ this->action=action;
+ switch(action)
+ {
+ case Ultracopier::Copying:
+ case Ultracopier::CopyingAndListing:
+ ui->progressBar->setMaximum(65535);
+ ui->progressBar->setMinimum(0);
+ break;
+ case Ultracopier::Listing:
+ ui->progressBar->setMaximum(0);
+ ui->progressBar->setMinimum(0);
+ break;
+ case Ultracopier::Idle:
+ if(haveStarted)
+ emit cancel();
+ break;
+ default:
+ break;
+ }
+ switch(action)
+ {
+ case Ultracopier::Copying:
+ case Ultracopier::CopyingAndListing:
+ haveStarted=true;
+ break;
+ default:
+ break;
+ }
+}
+
+void InterfacePlugin::newTransferStart(const Ultracopier::ItemOfCopyList &item)
+{
+ ui->text->setText(item.sourceFullPath);
}
void InterfacePlugin::newTransferStop(const quint64 &id)
{
- Q_UNUSED(id)
+ Q_UNUSED(id)
}
void InterfacePlugin::newFolderListing(const QString &path)
{
- if(action==Listing)
- ui->text->setText(path);
+ if(action==Ultracopier::Listing)
+ ui->text->setText(path);
}
void InterfacePlugin::remainingTime(const int &remainingSeconds)
{
- Q_UNUSED(remainingSeconds)
+ Q_UNUSED(remainingSeconds)
}
void InterfacePlugin::newCollisionAction(const QString &action)
{
- Q_UNUSED(action)
+ Q_UNUSED(action)
}
void InterfacePlugin::newErrorAction(const QString &action)
{
- Q_UNUSED(action)
+ Q_UNUSED(action)
}
void InterfacePlugin::errorDetected()
{
}
-void InterfacePlugin::setTransferListOperation(TransferListOperation transferListOperation)
+/// \brief new error
+void InterfacePlugin::errorToRetry(const QString &source,const QString &destination,const QString &error)
+{
+ Q_UNUSED(source);
+ Q_UNUSED(destination);
+ Q_UNUSED(error);
+}
+
+void InterfacePlugin::setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation)
{
- Q_UNUSED(transferListOperation)
+ Q_UNUSED(transferListOperation)
}
//speed limitation
bool InterfacePlugin::setSpeedLimitation(const qint64 &speedLimitation)
{
- Q_UNUSED(speedLimitation)
+ Q_UNUSED(speedLimitation)
return false;
}
//get information about the copy
void InterfacePlugin::setGeneralProgression(const quint64 &current,const quint64 &total)
{
- ui->progressBar->setValue(((double)current/total)*65535);
+ ui->progressBar->setValue(((double)current/total)*65535);
}
void InterfacePlugin::setCollisionAction(const QList<QPair<QString,QString> > &list)
{
- Q_UNUSED(list)
+ Q_UNUSED(list)
}
void InterfacePlugin::setErrorAction(const QList<QPair<QString,QString> > &list)
{
- Q_UNUSED(list)
+ Q_UNUSED(list)
}
//edit the transfer list
-void InterfacePlugin::getActionOnList(const QList<returnActionOnCopyList> &returnActions)
+void InterfacePlugin::getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions)
{
- Q_UNUSED(returnActions)
+ Q_UNUSED(returnActions)
}
void InterfacePlugin::haveExternalOrder()
{
- ui->toolButton->hide();
+ ui->toolButton->hide();
}
-void InterfacePlugin::isInPause(bool isInPause)
+void InterfacePlugin::isInPause(const bool &isInPause)
{
- //resume in auto the pause
- if(isInPause)
- emit resume();
+ //resume in auto the pause
+ if(isInPause)
+ emit resume();
}
void InterfacePlugin::newLanguageLoaded()
{
- ui->retranslateUi(this);
- updateTitle();
+ ui->retranslateUi(this);
+ updateTitle();
}
/*
@@ -269,147 +274,153 @@ void InterfacePlugin::newLanguageLoaded()
Return[1]: totalSize
Return[2]: currentFile
*/
-void InterfacePlugin::synchronizeItems(const QList<returnActionOnCopyList>& returnActions)
-{
- loop_size=returnActions.size();
- index_for_loop=0;
- while(index_for_loop<loop_size)
- {
- const returnActionOnCopyList& action=returnActions.at(index_for_loop);
- switch(action.type)
- {
- case AddingItem:
- {
- totalFile++;
- totalSize+=action.addAction.size;
- }
- break;
- case RemoveItem:
- currentFile++;
- break;
- case PreOperation:
- {
- ItemOfCopyListWithMoreInformations tempItem;
- tempItem.currentProgression=0;
- tempItem.generalData=action.addAction;
- totalFile+=action.addAction.size;
- InternalRunningOperation << tempItem;
- }
- break;
- case Transfer:
- {
- sub_index_for_loop=0;
- sub_loop_size=InternalRunningOperation.size();
- while(sub_index_for_loop<sub_loop_size)
- {
- if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id)
- {
- InternalRunningOperation[sub_index_for_loop].actionType=action.type;
- break;
- }
- sub_index_for_loop++;
- }
- }
- break;
- case PostOperation:
- {
- sub_index_for_loop=0;
- sub_loop_size=InternalRunningOperation.size();
- while(sub_index_for_loop<sub_loop_size)
- {
- if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id)
- {
- InternalRunningOperation.removeAt(sub_index_for_loop);
- break;
- }
- sub_index_for_loop++;
- }
- }
- break;
- case CustomOperation:
- {
- bool custom_with_progression=(action.addAction.size==1);
- sub_index_for_loop=0;
- sub_loop_size=InternalRunningOperation.size();
- while(sub_index_for_loop<sub_loop_size)
- {
- if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id)
- {
- InternalRunningOperation[sub_index_for_loop].actionType=action.type;
- InternalRunningOperation[sub_index_for_loop].custom_with_progression=custom_with_progression;
- InternalRunningOperation[sub_index_for_loop].currentProgression=0;
- break;
- }
- sub_index_for_loop++;
- }
- }
- break;
- default:
- //unknow code, ignore it
- break;
- }
- index_for_loop++;
- }
-}
-
-void InterfacePlugin::setFileProgression(const QList<ProgressionItem> &progressionList)
-{
- loop_size=InternalRunningOperation.size();
- sub_loop_size=progressionList.size();
- index_for_loop=0;
- while(index_for_loop<loop_size)
- {
- sub_index_for_loop=0;
- while(sub_index_for_loop<sub_loop_size)
- {
- if(progressionList.at(sub_index_for_loop).id==InternalRunningOperation.at(index_for_loop).generalData.id)
- {
- InternalRunningOperation[index_for_loop].generalData.size=progressionList.at(sub_index_for_loop).total;
- InternalRunningOperation[index_for_loop].currentProgression=progressionList.at(sub_index_for_loop).current;
- break;
- }
- sub_index_for_loop++;
- }
- index_for_loop++;
- }
+void InterfacePlugin::synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions)
+{
+ loop_size=returnActions.size();
+ index_for_loop=0;
+ while(index_for_loop<loop_size)
+ {
+ const Ultracopier::ReturnActionOnCopyList& action=returnActions.at(index_for_loop);
+ switch(action.type)
+ {
+ case Ultracopier::AddingItem:
+ {
+ totalFile++;
+ totalSize+=action.addAction.size;
+ }
+ break;
+ case Ultracopier::RemoveItem:
+ currentFile++;
+ break;
+ case Ultracopier::PreOperation:
+ {
+ ItemOfCopyListWithMoreInformations tempItem;
+ tempItem.currentProgression=0;
+ tempItem.generalData=action.addAction;
+ currentSize+=action.addAction.size;
+ InternalRunningOperation << tempItem;
+ }
+ break;
+ case Ultracopier::Transfer:
+ {
+ sub_index_for_loop=0;
+ sub_loop_size=InternalRunningOperation.size();
+ while(sub_index_for_loop<sub_loop_size)
+ {
+ if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id)
+ {
+ InternalRunningOperation[sub_index_for_loop].actionType=action.type;
+ break;
+ }
+ sub_index_for_loop++;
+ }
+ }
+ break;
+ case Ultracopier::PostOperation:
+ {
+ sub_index_for_loop=0;
+ sub_loop_size=InternalRunningOperation.size();
+ while(sub_index_for_loop<sub_loop_size)
+ {
+ if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id)
+ {
+ InternalRunningOperation.removeAt(sub_index_for_loop);
+ break;
+ }
+ sub_index_for_loop++;
+ }
+ }
+ break;
+ case Ultracopier::CustomOperation:
+ {
+ bool custom_with_progression=(action.addAction.size==1);
+ sub_index_for_loop=0;
+ sub_loop_size=InternalRunningOperation.size();
+ while(sub_index_for_loop<sub_loop_size)
+ {
+ if(InternalRunningOperation.at(sub_index_for_loop).generalData.id==action.addAction.id)
+ {
+ InternalRunningOperation[sub_index_for_loop].actionType=action.type;
+ InternalRunningOperation[sub_index_for_loop].custom_with_progression=custom_with_progression;
+ InternalRunningOperation[sub_index_for_loop].currentProgression=0;
+ break;
+ }
+ sub_index_for_loop++;
+ }
+ }
+ break;
+ default:
+ //unknow code, ignore it
+ break;
+ }
+ index_for_loop++;
+ }
+}
+
+/** \brief support speed limitation */
+void InterfacePlugin::setSupportSpeedLimitation(const bool &supportSpeedLimitationBool)
+{
+ Q_UNUSED(supportSpeedLimitationBool);
+}
+
+void InterfacePlugin::setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList)
+{
+ loop_size=InternalRunningOperation.size();
+ sub_loop_size=progressionList.size();
+ index_for_loop=0;
+ while(index_for_loop<loop_size)
+ {
+ sub_index_for_loop=0;
+ while(sub_index_for_loop<sub_loop_size)
+ {
+ if(progressionList.at(sub_index_for_loop).id==InternalRunningOperation.at(index_for_loop).generalData.id)
+ {
+ InternalRunningOperation[index_for_loop].generalData.size=progressionList.at(sub_index_for_loop).total;
+ InternalRunningOperation[index_for_loop].currentProgression=(progressionList.at(sub_index_for_loop).currentRead+progressionList.at(sub_index_for_loop).currentWrite)/2;
+ break;
+ }
+ sub_index_for_loop++;
+ }
+ index_for_loop++;
+ }
}
InterfacePlugin::currentTransfertItem InterfacePlugin::getCurrentTransfertItem()
{
- currentTransfertItem returnItem;
- returnItem.haveItem=InternalRunningOperation.size()>0;
- if(returnItem.haveItem)
- {
- const ItemOfCopyListWithMoreInformations &itemTransfer=InternalRunningOperation.first();
- returnItem.from=itemTransfer.generalData.sourceFullPath;
- returnItem.to=itemTransfer.generalData.destinationFullPath;
- returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size);
- switch(itemTransfer.actionType)
- {
- case CustomOperation:
- if(!itemTransfer.custom_with_progression)
- returnItem.progressBar_file=0;
- else
- {
- if(itemTransfer.generalData.size>0)
- returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
- else
- returnItem.progressBar_file=0;
- }
- break;
- case Transfer:
- if(itemTransfer.generalData.size>0)
- returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
- else
- returnItem.progressBar_file=0;
- break;
- case PostOperation:
- returnItem.progressBar_file=65535;
- break;
- default:
- returnItem.progressBar_file=0;
- }
- }
- return returnItem;
+ currentTransfertItem returnItem;
+ returnItem.haveItem=InternalRunningOperation.size()>0;
+ if(returnItem.haveItem)
+ {
+ const ItemOfCopyListWithMoreInformations &itemTransfer=InternalRunningOperation.first();
+ returnItem.from=itemTransfer.generalData.sourceFullPath;
+ returnItem.to=itemTransfer.generalData.destinationFullPath;
+ returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size);
+ switch(itemTransfer.actionType)
+ {
+ case Ultracopier::CustomOperation:
+ if(!itemTransfer.custom_with_progression)
+ returnItem.progressBar_file=0;
+ else
+ {
+ if(itemTransfer.generalData.size>0)
+ returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
+ else
+ returnItem.progressBar_file=0;
+ }
+ break;
+ case Ultracopier::Transfer:
+ if(itemTransfer.generalData.size>0)
+ returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
+ else
+ returnItem.progressBar_file=0;
+ break;
+ case Ultracopier::PostOperation:
+ returnItem.progressBar_file=65535;
+ break;
+ default:
+ returnItem.progressBar_file=0;
+ }
+ }
+ return returnItem;
}
diff --git a/plugins-alternative/Themes/Clean/interface.h b/plugins-alternative/Themes/Clean/interface.h
index b7ab57f..e5b5c36 100644
--- a/plugins-alternative/Themes/Clean/interface.h
+++ b/plugins-alternative/Themes/Clean/interface.h
@@ -1,8 +1,7 @@
/** \file interface.h
\brief Define the interface
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#ifndef INTERFACE_TEST_H
#define INTERFACE_TEST_H
@@ -15,145 +14,128 @@
#include "../../../interface/PluginInterface_Themes.h"
namespace Ui {
- class interface;
+ class interface;
}
/// \brief Define the interface
class InterfacePlugin : public PluginInterface_Themes
{
- Q_OBJECT
+ Q_OBJECT
public slots:
- //send information about the copy
- /// \brief to set the action in progress
- void actionInProgess(EngineActionInProgress);
- /// \brief new transfer have started
- void newTransferStart(const ItemOfCopyList &item);
- /** \brief one transfer have been stopped
- * is stopped, example: because error have occurred, and try later, don't remove the item! */
- void newTransferStop(const quint64 &id);
- /// \brief the new folder is listing
- void newFolderListing(const QString &path);
- /** \brief show the detected speed
- * in byte per seconds */
- void detectedSpeed(const quint64 &speed);
- /** \brief show the remaining time
- * time in seconds */
- void remainingTime(const int &remainingSeconds);
- /// \brief set the current collision action
- void newCollisionAction(const QString &action);
- /// \brief set the current error action
- void newErrorAction(const QString &action);
- /// \brief set one error is detected
- void errorDetected();
- //speed limitation
- /** \brief the max speed used
- * in byte per seconds, -1 if not able, 0 if disabled */
- bool setSpeedLimitation(const qint64 &speedLimitation);
- //set the translate
- void newLanguageLoaded();
- void synchronizeItems(const QList<returnActionOnCopyList>& returnActions);
+ //send information about the copy
+ /// \brief to set the action in progress
+ void actionInProgess(const Ultracopier::EngineActionInProgress&);
+ /// \brief new transfer have started
+ void newTransferStart(const Ultracopier::ItemOfCopyList &item);
+ /** \brief one transfer have been stopped
+ * is stopped, example: because error have occurred, and try later, don't remove the item! */
+ void newTransferStop(const quint64 &id);
+ /// \brief the new folder is listing
+ void newFolderListing(const QString &path);
+ /** \brief show the detected speed
+ * in byte per seconds */
+ void detectedSpeed(const quint64 &speed);
+ /** \brief show the remaining time
+ * time in seconds */
+ void remainingTime(const int &remainingSeconds);
+ /// \brief set the current collision action
+ void newCollisionAction(const QString &action);
+ /// \brief set the current error action
+ void newErrorAction(const QString &action);
+ /// \brief set one error is detected
+ void errorDetected();
+ /// \brief new error
+ void errorToRetry(const QString &source,const QString &destination,const QString &error);
+ //speed limitation
+ /** \brief the max speed used
+ * in byte per seconds, -1 if not able, 0 if disabled */
+ bool setSpeedLimitation(const qint64 &speedLimitation);
+ //set the translate
+ void newLanguageLoaded();
+ void synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions);
+ /** \brief support speed limitation */
+ void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool);
public:
- /// \brief the transfer item with progression
- struct ItemOfCopyListWithMoreInformations
- {
- quint64 currentProgression;
- ItemOfCopyList generalData;
- ActionTypeCopyList actionType;
- bool custom_with_progression;
- };
- /// \brief returned first transfer item
- struct currentTransfertItem
- {
- quint64 id;
- bool haveItem;
- QString from;
- QString to;
- QString current_file;
- int progressBar_file;
- };
- /// \brief get the widget for the copy engine
- QWidget * getOptionsEngineWidget();
- /// \brief to set if the copy engine is found
- void getOptionsEngineEnabled(bool isEnabled);
- /// \brief get action on the transfer list (add/move/remove)
- void getActionOnList(const QList<returnActionOnCopyList> &returnActions);
- //get information about the copy
- /// \brief show the general progression
- void setGeneralProgression(const quint64 &current,const quint64 &total);
- /// \brief show the file progression
- void setFileProgression(const QList<ProgressionItem> &progressionList);
- /// \brief set collision action
- void setCollisionAction(const QList<QPair<QString,QString> > &);
- /// \brief set error action
- void setErrorAction(const QList<QPair<QString,QString> > &);
- /// \brief set the copyType -> file or folder
- void setCopyType(CopyType);
- /// \brief set the copyMove -> copy or move, to force in copy or move, else support both
- void forceCopyMode(CopyMode);
- /// \brief set if transfer list is exportable/importable
- void setTransferListOperation(TransferListOperation transferListOperation);
- /** \brief set if the order is external (like file manager copy)
- * to notify the interface, which can hide add folder/filer button */
- void haveExternalOrder();
- /// \brief set if is in pause
- void isInPause(bool);
+ /// \brief the transfer item with progression
+ struct ItemOfCopyListWithMoreInformations
+ {
+ quint64 currentProgression;
+ Ultracopier::ItemOfCopyList generalData;
+ Ultracopier::ActionTypeCopyList actionType;
+ bool custom_with_progression;
+ };
+ /// \brief returned first transfer item
+ struct currentTransfertItem
+ {
+ quint64 id;
+ bool haveItem;
+ QString from;
+ QString to;
+ QString current_file;
+ int progressBar_file;
+ };
+ /// \brief get the widget for the copy engine
+ QWidget * getOptionsEngineWidget();
+ /// \brief to set if the copy engine is found
+ void getOptionsEngineEnabled(const bool &isEnabled);
+ /// \brief get action on the transfer list (add/move/remove)
+ void getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions);
+ //get information about the copy
+ /// \brief show the general progression
+ void setGeneralProgression(const quint64 &current,const quint64 &total);
+ /// \brief show the file progression
+ void setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList);
+ /// \brief set collision action
+ void setCollisionAction(const QList<QPair<QString,QString> > &);
+ /// \brief set error action
+ void setErrorAction(const QList<QPair<QString,QString> > &);
+ /// \brief set the copyType -> file or folder
+ void setCopyType(const Ultracopier::CopyType&);
+ /// \brief set the copyMove -> copy or move, to force in copy or move, else support both
+ void forceCopyMode(const Ultracopier::CopyMode &);
+ /// \brief set if transfer list is exportable/importable
+ void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation);
+ /** \brief set if the order is external (like file manager copy)
+ * to notify the interface, which can hide add folder/filer button */
+ void haveExternalOrder();
+ /// \brief set if is in pause
+ void isInPause(const bool &);
signals:
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief To debug source
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
- #endif
- //set the transfer list
- void removeItems(QList<int> ids);
- void moveItemsOnTop(QList<int> ids);
- void moveItemsUp(QList<int> ids);
- void moveItemsDown(QList<int> ids);
- void moveItemsOnBottom(QList<int> ids);
- void exportTransferList();
- void importTransferList();
- //user ask ask to add folder (add it with interface ask source/destination)
- void userAddFolder(CopyMode);
- void userAddFile(CopyMode);
- void urlDropped(QList<QUrl> urls);
- //action on the copy
- void pause();
- void resume();
- void skip(quint64 id);
- void cancel();
- //edit the action
- void sendCollisionAction(QString action);
- void sendErrorAction(QString action);
- void newSpeedLimitation(qint64);
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ /// \brief To debug source
+ void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
+ #endif
public:
- //constructor and destructor
- InterfacePlugin(FacilityInterface * facilityEngine);
- ~InterfacePlugin();
+ //constructor and destructor
+ InterfacePlugin(FacilityInterface * facilityEngine);
+ ~InterfacePlugin();
private:
- Ui::interface *ui;
- quint64 currentFile;
- quint64 totalFile;
- quint64 currentSize;
- quint64 totalSize;
- void updateTitle();
- QMenu *menu;
- EngineActionInProgress action;
- void closeEvent(QCloseEvent *event);
- void updateModeAndType();
- bool modeIsForced;
- CopyType type;
- CopyMode mode;
- bool haveStarted;
- QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation;
- int loop_size,index_for_loop;
- int sub_loop_size,sub_index_for_loop;
- currentTransfertItem getCurrentTransfertItem();
- FacilityInterface * facilityEngine;
+ Ui::interface *ui;
+ quint64 currentFile;
+ quint64 totalFile;
+ quint64 currentSize;
+ quint64 totalSize;
+ void updateTitle();
+ QMenu *menu;
+ Ultracopier::EngineActionInProgress action;
+ void closeEvent(QCloseEvent *event);
+ void updateModeAndType();
+ bool modeIsForced;
+ Ultracopier::CopyType type;
+ Ultracopier::CopyMode mode;
+ bool haveStarted;
+ QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation;
+ int loop_size,index_for_loop;
+ int sub_loop_size,sub_index_for_loop;
+ currentTransfertItem getCurrentTransfertItem();
+ FacilityInterface * facilityEngine;
private slots:
- void forcedModeAddFile();
- void forcedModeAddFolder();
- void forcedModeAddFileToCopy();
- void forcedModeAddFolderToCopy();
- void forcedModeAddFileToMove();
- void forcedModeAddFolderToMove();
+ void forcedModeAddFile();
+ void forcedModeAddFolder();
+ void forcedModeAddFileToCopy();
+ void forcedModeAddFolderToCopy();
+ void forcedModeAddFileToMove();
+ void forcedModeAddFolderToMove();
};
#endif // INTERFACE_TEST_H
diff --git a/plugins-alternative/Themes/Clean/interface.pro b/plugins-alternative/Themes/Clean/interface.pro
index 20fd1dd..eb124c9 100644
--- a/plugins-alternative/Themes/Clean/interface.pro
+++ b/plugins-alternative/Themes/Clean/interface.pro
@@ -1,31 +1,36 @@
+CONFIG += c++11
+QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra"
+mac:QMAKE_CXXFLAGS+="-stdlib=libc++"
+
+QT += widgets
TEMPLATE = lib
CONFIG += plugin
HEADERS = interface.h \
- interface/PluginInterface_Themes.h \
- StructEnumDefinition.h \
+ StructEnumDefinition.h \
factory.h \
../../../interface/PluginInterface_Themes.h
SOURCES = interface.cpp \
factory.cpp
TARGET = $$qtLibraryTarget(interface)
-TRANSLATIONS += Languages/fr/translation.ts \
- Languages/ar/translation.ts \
- Languages/zh/translation.ts \
- Languages/es/translation.ts \
+TRANSLATIONS += Languages/ar/translation.ts \
Languages/de/translation.ts \
Languages/el/translation.ts \
+ Languages/en/translation.ts \
+ Languages/es/translation.ts \
+ Languages/fr/translation.ts \
+ Languages/hi/translation.ts \
+ Languages/hu/translation.ts \
+ Languages/id/translation.ts \
Languages/it/translation.ts \
Languages/ja/translation.ts \
- Languages/id/translation.ts \
+ Languages/ko/translation.ts \
+ Languages/nl/translation.ts \
+ Languages/no/translation.ts \
Languages/pl/translation.ts \
Languages/ru/translation.ts \
- Languages/tr/translation.ts \
Languages/th/translation.ts \
- Languages/hi/translation.ts \
- Languages/nl/translation.ts \
- Languages/no/translation.ts \
- Languages/pt/translation.ts \
- Languages/ko/translation.ts
+ Languages/tr/translation.ts \
+ Languages/zh/translation.ts
FORMS += \
interface.ui
diff --git a/plugins-alternative/Themes/Clean/interface.ui b/plugins-alternative/Themes/Clean/interface.ui
index 1ac0e4a..f178af7 100644
--- a/plugins-alternative/Themes/Clean/interface.ui
+++ b/plugins-alternative/Themes/Clean/interface.ui
@@ -41,7 +41,7 @@
</font>
</property>
<property name="text">
- <string>In wait</string>
+ <string>Waiting</string>
</property>
</widget>
</item>
@@ -72,7 +72,7 @@
<action name="actionAddFile">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset>
</property>
<property name="text">
<string>Add file</string>
@@ -81,7 +81,7 @@
<action name="actionAddFolder">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset>
</property>
<property name="text">
<string>Add folder</string>
@@ -90,7 +90,7 @@
<action name="actionAddFileToMove">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset>
</property>
<property name="text">
<string>Move file(s)</string>
@@ -99,7 +99,7 @@
<action name="actionAddFolderToMove">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset>
</property>
<property name="text">
<string>Move folder</string>
@@ -108,7 +108,7 @@
<action name="actionAddFileToCopy">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset>
</property>
<property name="text">
<string>Copy file(s)</string>
@@ -117,7 +117,7 @@
<action name="actionAddFolderToCopy">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Clean/resources/add.png</normaloff>:/Themes/Clean/resources/add.png</iconset>
</property>
<property name="text">
<string>Copy folder</string>
diff --git a/plugins-alternative/Themes/Clean/plugin.json b/plugins-alternative/Themes/Clean/plugin.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/plugins-alternative/Themes/Clean/plugin.json
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/plugins-alternative/Themes/Clean/resources.qrc b/plugins-alternative/Themes/Clean/resources.qrc
index 67c550f..40533c4 100644
--- a/plugins-alternative/Themes/Clean/resources.qrc
+++ b/plugins-alternative/Themes/Clean/resources.qrc
@@ -1,5 +1,5 @@
<RCC>
- <qresource prefix="/">
+ <qresource prefix="/Themes/Clean">
<file>resources/SystemTrayIcon/informations.png</file>
</qresource>
</RCC>
diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.png
index e1eb797..5b7b255 100644
--- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.png
+++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/informations.png
Binary files differ
diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.png
index a81e70d..6f5d1cf 100644
--- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.png
+++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.png
index 8072aea..5464856 100644
--- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.png
+++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Caught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
index f40ea82..3961215 100644
--- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
+++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
index 8d673e4..45d6315 100644
--- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
+++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.png
index 9ce4779..ac4299a 100644
--- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.png
+++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.png b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.png
index d0fca1b..6e6bae7 100644
--- a/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.png
+++ b/plugins-alternative/Themes/Clean/resources/SystemTrayIcon/systray_Uncaught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Clean/resources_unix.qrc b/plugins-alternative/Themes/Clean/resources_unix.qrc
index ae3894b..847cc1c 100644
--- a/plugins-alternative/Themes/Clean/resources_unix.qrc
+++ b/plugins-alternative/Themes/Clean/resources_unix.qrc
@@ -1,6 +1,6 @@
<RCC>
- <qresource prefix="/">
- <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file>
+ <qresource prefix="/Themes/Clean">
+ <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file>
<file>resources/SystemTrayIcon/systray_Semiuncaught_Unix.png</file>
<file>resources/SystemTrayIcon/systray_Uncaught_Unix.png</file>
</qresource>
diff --git a/plugins-alternative/Themes/Clean/resources_windows.qrc b/plugins-alternative/Themes/Clean/resources_windows.qrc
index 99829b3..7d8bbe1 100644
--- a/plugins-alternative/Themes/Clean/resources_windows.qrc
+++ b/plugins-alternative/Themes/Clean/resources_windows.qrc
@@ -1,5 +1,5 @@
<RCC>
- <qresource prefix="/">
+ <qresource prefix="/Themes/Clean">
<file>resources/SystemTrayIcon/systray_Caught_Windows.png</file>
<file>resources/SystemTrayIcon/systray_Semiuncaught_Windows.png</file>
<file>resources/SystemTrayIcon/systray_Uncaught_Windows.png</file>
diff --git a/plugins-alternative/Themes/Supercopier/DebugEngineMacro.h b/plugins-alternative/Themes/Supercopier/DebugEngineMacro.h
new file mode 100644
index 0000000..4582010
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/DebugEngineMacro.h
@@ -0,0 +1,28 @@
+/** \file DebugEngineMacro.h
+\brief Define the macro for the debug
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef DEBUGENGINEMACRO_H
+#define DEBUGENGINEMACRO_H
+
+#ifdef WIN32
+# define __func__ __FUNCTION__
+#endif
+
+/// \brief Macro for the debug log
+#ifdef ULTRACOPIER_PLUGIN_DEBUG
+ #if defined (__FILE__) && defined (__LINE__)
+ #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b,__FILE__,__LINE__)
+ #else
+ #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b)
+ #endif
+#else // ULTRACOPIER_DEBUG
+ #define ULTRACOPIER_DEBUGCONSOLE(a,b) void()
+#endif // ULTRACOPIER_DEBUG
+
+#endif // DEBUGENGINEMACRO_H
+
+
+
+
diff --git a/plugins-alternative/Themes/Supercopier/Environment.h b/plugins-alternative/Themes/Supercopier/Environment.h
new file mode 100644
index 0000000..265a5a6
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Environment.h
@@ -0,0 +1,10 @@
+/** \file Environment.h
+\brief Define the environment variable and global function
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#include "Variable.h"
+/// \brief The global include
+#include "StructEnumDefinition.h"
+#include "DebugEngineMacro.h"
+
diff --git a/plugins-alternative/Themes/Supercopier/Languages/ar/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/ar/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/ar/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/de/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/de/translation.ts
new file mode 100644
index 0000000..c1177e9
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/de/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation>Kaufen Sie die Ultimate-Version um die Entwicklung zu unterstützen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation>Datei %1/%2, Größe:%3/%4</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation>Zu kopierende Dateien</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation>Zu verschiebende Dateien</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>Bei Fehler nicht</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation>Nie</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation>Immer</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation>Dateiname, 0KB</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation>Farbe auswählen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation>%1 %2 von %3</translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>Nicht schließen, wenn Fehler aufgetreten sind</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation>Niemals schließen</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation>Immer schließen</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation>Wählen Sie eine Farbe</translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation>Von:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation>Nach:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation>Am Ende des Transfers schließen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation>&amp;Mehr</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation>&amp;Pause</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation>Über&amp;springen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation>Abbrechen (&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation>Dateiliste</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation>Ausgewählte Einträge löschen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation>Dateiliste exportieren</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation>Dateiliste importieren</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation>Vorherige</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation>Nächste</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation>Darstellungsoptionen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation>Ausgewählte Einträge an den Listenanfang verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation>Begrenze Kopiergeschwindigkeit auf:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation>Ausgewählte Einträge einen Platz nach oben verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation>Ausgewählte Einträge einen Platz nach unten verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation>Ausgewählte Einträge an das Listenende verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation>Datei/Ordner hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation>In Dateiliste suchen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation>Fehlerprotokoll</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation>Fehler in Transferliste exportieren</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation>Quelle</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation>Ziel</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation>Datei hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation>Ordner hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation>Datei(en) verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation>Ordner verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation>Datei(en) kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation>Verzeichnis kopieren</translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation>Zweifachen Fortschritt anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation>Geschwindigkeitsbegrenzungs Schieberegler anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation>Benutzung</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation>Standardmäßig &quot;Mehr&quot; Informationen anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation>Beim Schließen ins Systray minimieren</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation>Fenster am Ende des Vorgangs schließen</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation>Begrenze Übertragungsgeschwindigkeit auf</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation>Zum Bearbeiten der Farbe klicken</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation> KB/s</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation>Informationen</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation>Anzeige</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation>Geschwindigkeit als Fortschrittsbalken anzeigen</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation>Farbe des Fortschrittsbalken</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation>Fortschritt im Fenstertitel zeigen</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation>Fenster immer im Vordergrund</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/el/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/el/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/el/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/en/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/en/translation.ts
new file mode 100644
index 0000000..9275b19
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/en/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/es/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/es/translation.ts
new file mode 100644
index 0000000..c407b34
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/es/translation.ts
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation>Comprar la versión Ultimate para financiar el desarrollo</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation>El archivo %1/%2, el tamaño: %3/%4</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation>Lista de copia</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation>Lista de movimiento</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>No cierre si se encuentran errores</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation>Nunca cierre</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation>Siempre cerrar</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation>Nombre de archivo, 0KB</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation>Seleccione un color</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>No cierre si se encuentran errores</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation>Nunca cierre</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation>Siempre cerrar</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation>Seleccione un color</translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation>De:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation>Para:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation>Cerca al final de las transferencias</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation>&amp;Más</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation>&amp;Pausa</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation>&amp;Omitir</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Cancelar</translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">Limitar la velocidad de copia en:</translation>
+ </message>
+ <message>
+ <source>Close on transfer completion</source>
+ <translation type="obsolete">Cerca de finalización de transferencia</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation>Limitar la velocidad de copia en:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation>Lista de transferencia</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation>Mueve los elementos seleccionados a la parte superior</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation>Mueva los elementos seleccionados</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation>Bajar los elementos seleccionados</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation>Mueve los elementos seleccionados a la parte inferior</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation>Agregar archivo/carpeta</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation>Eliminar los elementos seleccionados</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation>Buscar</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation>Exportar la lista de transferencias</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation>Importe la lista de transferencias</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation>Anterior</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation>Próximo</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation>Error</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation>Exportar los errores en la lista de transferencias</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation>Fuente</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation>Destino</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation>Interfaz</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation>Añadir archivo</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation>Añadir carpeta</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation>Mover archivo(s)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation>Mueva la carpeta</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation>Copia el archivo(s)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation>Copia la carpeta</translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation>Mostrar progresión dual</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation>Mostrar la velocidad como principales informaciones</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation>Uso</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation>Comience con el &quot;botón más&quot; empujada</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation>Minimizar en cerca de la bandeja del sistema</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation>Al final de la copia</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation>Limitar la velocidad de copia de</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation>Haga clic para editar el color</translation>
+ </message>
+ <message>
+ <source>At the end of the copy: </source>
+ <translation type="obsolete">Al final de la copia: </translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">Limitar la velocidad de copia en:</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation> KB/s</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation>Informations</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation>Visualización</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation>Velocidad con barra de progreso</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation>Progresión de color</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation>Mostrar progresión en el título</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation>Siempre visible</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/fr/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/fr/translation.ts
new file mode 100644
index 0000000..49112ee
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/fr/translation.ts
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="+180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation>Achetez la version Ultimate pour financer le développement</translation>
+ </message>
+ <message>
+ <location line="+82"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation>Fichier %1/%2, taille: %3/%4</translation>
+ </message>
+ <message>
+ <location line="+214"/>
+ <source>Copy list</source>
+ <translation>Liste de copies</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Move list</source>
+ <translation>Liste de déplacements</translation>
+ </message>
+ <message>
+ <location line="+421"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>Garder ouvert s&apos;il y a des erreurs</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Never close</source>
+ <translation>Ne jamais fermer</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Always close</source>
+ <translation>Toujours fermer</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>File Name, 0KB</source>
+ <translation>Nom de fichier, 0Ko</translation>
+ </message>
+ <message>
+ <location line="+183"/>
+ <location line="+12"/>
+ <location line="+12"/>
+ <source>Select a color</source>
+ <translation>Selectionner une coleur</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <location line="+4"/>
+ <location line="+2"/>
+ <source>%1 %2% of %3</source>
+ <translation>%1 de %2% de %3</translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="+197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>Garder ouvert s&apos;il y a des erreurs</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Never close</source>
+ <translation>Ne jamais fermer</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Always close</source>
+ <translation>Toujours fermer</translation>
+ </message>
+ <message>
+ <location line="+187"/>
+ <location line="+15"/>
+ <location line="+15"/>
+ <source>Select a color</source>
+ <translation>Selectionner une coleur</translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="+35"/>
+ <source>From:</source>
+ <translation>Depuis:</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>To:</source>
+ <translation>Vers:</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Close at the end of the transfers</source>
+ <translation>Fermer à la fin des transferts</translation>
+ </message>
+ <message>
+ <location line="+98"/>
+ <source>&amp;More</source>
+ <translation>Pl&amp;us</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>&amp;Pause</source>
+ <translation>&amp;Pause</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>&amp;Skip</source>
+ <translation>&amp;Passer</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">Limiter la vitesse de copie à:</translation>
+ </message>
+ <message>
+ <source>Close on transfer completion</source>
+ <translation type="obsolete">Fermer à la fin des transferts</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Limit copy speed to:</source>
+ <translation>Limiter la vitesse de copie à:</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Transfer list</source>
+ <translation>Liste de transferts</translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>Move the selected items to the top</source>
+ <translation>Déplacer l&apos;item selectionné au debut</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Move up the selected items</source>
+ <translation>Déplacer l&apos;item selectionné vers le haut</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Move down the selected items</source>
+ <translation>Déplacer l&apos;item selectionné vers le bas</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Move the selected items to the bottom</source>
+ <translation>Déplacer l&apos;item selectionné à la fin</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Add file/folder</source>
+ <translation>Ajouter fichier/dossier</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Delete the selected items</source>
+ <translation>Supprimer les items sélectionnés</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Search</source>
+ <translation>Rechercher</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Export the transfer list</source>
+ <translation>Exporter la liste de transfert</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Import the transfer list</source>
+ <translation>Importer la liste de transfert</translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Previous</source>
+ <translation>Précédent</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Next</source>
+ <translation>Suivant</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <location line="+69"/>
+ <source>Error</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <location line="-49"/>
+ <source>Export the errors into transfer list</source>
+ <translation>Exporter les erreurs dans une liste de transfert</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Source</source>
+ <translation>Source</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Destination</source>
+ <translation>Destination</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Interface</source>
+ <translation>Interface</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>Add file</source>
+ <translation>Ajouter un fichier</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Add folder</source>
+ <translation>Ajouter un répertoire</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Move file(s)</source>
+ <translation>Déplacer le(s) fichier(s)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Move folder</source>
+ <translation>Déplacer un répertoire</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Copy file(s)</source>
+ <translation>Copier le(s) fichier(s)</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Copy folder</source>
+ <translation>Copier un répertoire</translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="+230"/>
+ <source>Show dual progression</source>
+ <translation>Afficher une double progression</translation>
+ </message>
+ <message>
+ <location line="-58"/>
+ <source>Show speed as main information</source>
+ <translation>Afficher la vitesse comme information principale</translation>
+ </message>
+ <message>
+ <location line="-137"/>
+ <source>Use</source>
+ <translation>Utilisation</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation>Déplier automatiquement les détails</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Minimize on close to systray</source>
+ <translation>Minimiser à la fermeture dans le systray</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>At the end of the copy</source>
+ <translation>À la fin de la copie</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <location line="+24"/>
+ <source>Limit copy speed to</source>
+ <translation>Limiter la vitesse de copie à</translation>
+ </message>
+ <message>
+ <location line="+138"/>
+ <source>Click to edit the color</source>
+ <translation>Cliquer pour édité la couleur</translation>
+ </message>
+ <message>
+ <source>At the end of the copy: </source>
+ <translation type="obsolete">À la fin de la copie:</translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">Limiter la vitesse de copie à:</translation>
+ </message>
+ <message>
+ <source>Limit copy speed to:</source>
+ <translation type="obsolete">Limiter la vitesse de copie à:</translation>
+ </message>
+ <message>
+ <location line="-128"/>
+ <source> KB/s</source>
+ <translation> Ko/s</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Informations</source>
+ <translation>Informations</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Display</source>
+ <translation>Affichage</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Speed with progress bar</source>
+ <translation>Vitesse avec barre de progression</translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Progression color</source>
+ <translation>Couleur de progression</translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>Show progression in the title</source>
+ <translation>Afficher la progression dans le titre</translation>
+ </message>
+ <message>
+ <location line="-169"/>
+ <source>Always on top</source>
+ <translation>Toujours au 1er plan</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/hi/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/hi/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/hi/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/hu/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/hu/translation.ts
new file mode 100644
index 0000000..bc36d92
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/hu/translation.ts
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation>Vásárold meg az Ultimate verziót a fejlesztés támogatásához</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation>Fájl %1/%2, méret: %3/%4</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation>Lista másolása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation>Lista mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>Ne zárja be, ha hiba történik</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation>Sose zárja be</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation>Mindig zárja be</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation>Fájlnév, 0KB</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation>Válassz egy színt</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>Ne zárja be, ha hiba történik</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation>Sose zárja be</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation>Mindig zárja be</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation>Válassz egy színt</translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation>Forrás:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation>Cél:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation>&amp;Több</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation>&amp;Szünet</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation>&amp;Kihagy</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Mégse</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation>Átviteli lista</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation>Előző</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation>Következő</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation>Kezelőfelület</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation>Kijelölések elemek mozgatása legfelülre</translation>
+ </message>
+ <message>
+ <source>Close on transfer completion</source>
+ <translation type="obsolete">Átvitel végeztével zárja be</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation>Másolási sebesség korlátozása:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation>Kijelölt elemek mozgatása fel</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation>Kijelölt elemek mozgatása le</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation>Kijelölések elemek mozgatása legalulra</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation>Fájl/mappa hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation>Kijelölt elemek törlése</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation>Keresés</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation>Átviteli lista exportálása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation>Átviteli lista importálása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation>Hiba</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation>Hibák exportálása az átviteli listába</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation>Forrás</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation>Cél</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation>Fájl hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation>Mappa hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation>Fájl(ok) mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation>Mappa mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation>Fájl(ok) másolása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation>Mappa másolása</translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation>Páros folyamat mutatása</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation>Sebesség mutatása, mint fő információ</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation>Használ</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation>Indítás a &quot;több gomb&quot; lenyomásával</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation>Bezáráskor minimalizálás a tálcára</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation>A másolás befejezésekor</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation>Másolási sebesség korlátozása</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation>Kattints a szín szerkesztéséhez</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation> KB/s</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation>Információk</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation>Megjelenítés</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation>Sebesség folyamatsávval</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation>Folyamat színe</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation>Folyamat mutatása a címsorban</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation>Mindig legfelül</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/id/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/id/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/id/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/it/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/it/translation.ts
new file mode 100644
index 0000000..255c3b1
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/it/translation.ts
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="it" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation>File %1/%2, dimensione: %3/%4</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation>Lista della copia</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation>Lista dello spostamento</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>Non chiudere se vengono rilevati errori</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation>Non chiudere mai</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation>Chiudere sempre</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation>Nome del file, 0KB</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation>Scegliere un colore</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation>Non chiudere se vengono rilevati errori</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation>Non chiudere mai</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation>Chiudere sempre</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation>Scegliere un colore</translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation>Da:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation>a:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished">Chiudi alla fine dei trasferimenti</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation>Altr&amp;o</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation>&amp;Pausa</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation>&amp;Salta</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Annulla</translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">Ridurre la velocità di copia a:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation>Lista dei trasferimenti</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation>Sposta in cima gli elementi selezionati</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation>Sposta sopra gli elementi selezionati</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation>Sposta sotto gli elementi selezionati</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation>Sposta in coda gli elementi selezionati</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation>Aggiungi file/cartelle</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation>Elimina gli elementi selezionati</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation>Cerca</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation>Esporta la lista dei trasferimenti</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation>Importa la lista dei trasferimenti</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation>Precedente</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation>Successivo</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation>Interfaccia</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation>Aggiungi file</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation>Aggiungi cartella</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation>Sposta file</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation>Sposta la cartella</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation>Copia file</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation>Copia la cartella</translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation>Mostrare la doppia progressione</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation>Mostrare la velocità come principale informazione</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation>Iniziare col pulsante &quot;Altro&quot; attivo</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>At the end of the copy: </source>
+ <translation type="obsolete">Alla fine della copia: </translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">Ridurre la velocità di copia a:</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation> KB/s</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation>Velocità nella barra di progresso</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation>Colore della progressione</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation>Mostrare la percentuale di progresso sul titolo</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation>Sempre in primo piano</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/ja/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/ja/translation.ts
new file mode 100644
index 0000000..6ba3c00
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/ja/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/ko/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/ko/translation.ts
new file mode 100644
index 0000000..4354bd2
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/ko/translation.ts
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ko_KR">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="+180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+82"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished">파일 %1/%2, 크기: %3/%4</translation>
+ </message>
+ <message>
+ <location line="+214"/>
+ <source>Copy list</source>
+ <translation type="unfinished">복사 목록</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+421"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished">오류 발견시 종료 안함</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Never close</source>
+ <translation type="unfinished">절대 종료 안함</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Always close</source>
+ <translation type="unfinished">항상 종료</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished">파일명, 0KB</translation>
+ </message>
+ <message>
+ <location line="+183"/>
+ <location line="+12"/>
+ <location line="+12"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <location line="+4"/>
+ <location line="+2"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="+197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished">오류 발견시 종료 안함</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Never close</source>
+ <translation type="unfinished">절대 종료 안함</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Always close</source>
+ <translation type="unfinished">항상 종료</translation>
+ </message>
+ <message>
+ <location line="+187"/>
+ <location line="+15"/>
+ <location line="+15"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="+35"/>
+ <source>From:</source>
+ <translation type="unfinished">원본:</translation>
+ </message>
+ <message>
+ <location line="+37"/>
+ <source>To:</source>
+ <translation type="unfinished">대상:</translation>
+ </message>
+ <message>
+ <location line="+53"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+98"/>
+ <source>&amp;More</source>
+ <translation type="unfinished">&amp;자세히</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished">&amp;일시 정지</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished">&amp;건너뛰기</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;취소</translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">복사 속도 제한:</translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+156"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Previous</source>
+ <translation type="unfinished">이전</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Next</source>
+ <translation type="unfinished">다음</translation>
+ </message>
+ <message>
+ <location line="+113"/>
+ <source>Interface</source>
+ <translation type="unfinished">인터페이스</translation>
+ </message>
+ <message>
+ <location line="-389"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-66"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+92"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+55"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+152"/>
+ <location line="+69"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-49"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <source>Add file</source>
+ <translation type="unfinished">파일 추가</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Add folder</source>
+ <translation type="unfinished">폴더 추가</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished">파일 이동</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Move folder</source>
+ <translation type="unfinished">폴더 이동</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished">파일 복사</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Copy folder</source>
+ <translation type="unfinished">폴더 복사</translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="+230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-58"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished">메인 정보에 속도 표시</translation>
+ </message>
+ <message>
+ <location line="-137"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <location line="+24"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+138"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>At the end of the copy: </source>
+ <translation type="obsolete">복사 종료시:</translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">복사 속도 제한:</translation>
+ </message>
+ <message>
+ <location line="-128"/>
+ <source> KB/s</source>
+ <translation type="unfinished"> KB/초</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-20"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-169"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/nl/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/nl/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/nl/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/no/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/no/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/no/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/pl/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/pl/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/pl/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/pt/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/pt/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/pt/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/ru/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/ru/translation.ts
new file mode 100644
index 0000000..a5a373b
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/ru/translation.ts
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation>Файл %1/%2, размер: %3/%4</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished">Копировать список</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished">Не закрывать, если найдены ошибки</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished">Никогда не закрывать</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished">Всегда закрывайте</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation>Имя файла, 0KB</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished">Не закрывать, если найдены ошибки</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished">Никогда не закрывать</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished">Всегда закрывайте</translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation>С:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation>к:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation>больше</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation>пауза</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation>пропускать</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation>отменить</translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">Предельная скорость копирования по адресу:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation>предыдущий</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation>следующий</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation>интерфейс</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation>Добавить файл</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation>Добавить папку</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation>Перемещение файла(ов)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation>Перемещение папки</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation>Копировать файл (ы)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation>Копировать папку</translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished">Показать скорости в качестве основной информации</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>At the end of the copy: </source>
+ <translation type="obsolete">В конце копии: </translation>
+ </message>
+ <message>
+ <source>Limit copy speed at:</source>
+ <translation type="obsolete">Предельная скорость копирования по адресу:</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"> Кб/с</translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/th/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/th/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/th/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/tr/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/tr/translation.ts
new file mode 100644
index 0000000..78e326c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/tr/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/Languages/zh/translation.ts b/plugins-alternative/Themes/Supercopier/Languages/zh/translation.ts
new file mode 100644
index 0000000..6ba3c00
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Languages/zh/translation.ts
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="180"/>
+ <source>Buy the Ultimate version to fund development</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="262"/>
+ <source>File %1/%2, size: %3/%4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="476"/>
+ <source>Copy list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="478"/>
+ <source>Move list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="899"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="900"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="901"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="903"/>
+ <source>File Name, 0KB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1086"/>
+ <location filename="../../interface.cpp" line="1098"/>
+ <location filename="../../interface.cpp" line="1110"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="1185"/>
+ <location filename="../../interface.cpp" line="1189"/>
+ <location filename="../../interface.cpp" line="1191"/>
+ <source>%1 %2% of %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ThemesFactory</name>
+ <message>
+ <location filename="../../factory.cpp" line="197"/>
+ <source>Don&apos;t close if errors are found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="198"/>
+ <source>Never close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="199"/>
+ <source>Always close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../factory.cpp" line="386"/>
+ <location filename="../../factory.cpp" line="401"/>
+ <location filename="../../factory.cpp" line="416"/>
+ <source>Select a color</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="35"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="72"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="125"/>
+ <source>Close at the end of the transfers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="223"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="243"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="257"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="268"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="482"/>
+ <source>Delete the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="537"/>
+ <source>Export the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="563"/>
+ <source>Import the transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="618"/>
+ <source>Previous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="625"/>
+ <source>Next</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="738"/>
+ <source>Interface</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="349"/>
+ <source>Move the selected items to the top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="283"/>
+ <source>Limit copy speed to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="375"/>
+ <source>Move up the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="401"/>
+ <source>Move down the selected items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="427"/>
+ <source>Move the selected items to the bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="453"/>
+ <source>Add file/folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="508"/>
+ <source>Search</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="660"/>
+ <location filename="../../interface.ui" line="729"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="680"/>
+ <source>Export the errors into transfer list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="719"/>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="724"/>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="775"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="784"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="793"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="802"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="811"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="820"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>themesOptions</name>
+ <message>
+ <location filename="../../themesOptions.ui" line="230"/>
+ <source>Show dual progression</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="172"/>
+ <source>Show speed as main information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="35"/>
+ <source>Use</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="41"/>
+ <source>Start with the &quot;more button&quot; pushed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="61"/>
+ <source>Minimize on close to systray</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="71"/>
+ <source>At the end of the copy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="97"/>
+ <location filename="../../themesOptions.ui" line="121"/>
+ <source>Limit copy speed to</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="131"/>
+ <source> KB/s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="166"/>
+ <source>Informations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="204"/>
+ <source>Display</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="210"/>
+ <source>Speed with progress bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="240"/>
+ <source>Progression color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="259"/>
+ <source>Click to edit the color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="220"/>
+ <source>Show progression in the title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../themesOptions.ui" line="51"/>
+ <source>Always on top</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Supercopier/StructEnumDefinition.h b/plugins-alternative/Themes/Supercopier/StructEnumDefinition.h
new file mode 100644
index 0000000..c1758f4
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/StructEnumDefinition.h
@@ -0,0 +1 @@
+#include "../../../StructEnumDefinition.h"
diff --git a/plugins-alternative/Themes/Supercopier/TransferModel.cpp b/plugins-alternative/Themes/Supercopier/TransferModel.cpp
new file mode 100644
index 0000000..6ce9b92
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/TransferModel.cpp
@@ -0,0 +1,569 @@
+#include "TransferModel.h"
+
+#define COLUMN_COUNT 3
+
+QIcon *TransferModel::start=NULL;
+QIcon *TransferModel::stop=NULL;
+
+TransferModel::TransferModel()
+{
+ /// \warning to prevent Must construct a QGuiApplication before QPixmap IN STATIC WINDOWS VERSION ONLY
+ if(TransferModel::start==NULL)
+ TransferModel::start=new QIcon(QStringLiteral(":/resources/player_play.png"));
+ if(TransferModel::stop==NULL)
+ TransferModel::stop=new QIcon(QStringLiteral(":/resources/player_pause.png"));
+ currentIndexSearch=0;
+ haveSearchItem=false;
+ facilityEngine=NULL;
+}
+
+int TransferModel::columnCount( const QModelIndex& parent ) const
+{
+ return parent == QModelIndex() ? COLUMN_COUNT : 0;
+}
+
+QVariant TransferModel::data( const QModelIndex& index, int role ) const
+{
+ int row,column;
+ row=index.row();
+ column=index.column();
+ if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT)
+ return QVariant();
+
+ const TransfertItem& item = transfertItemList.at(row);
+ if(role==Qt::UserRole)
+ return item.id;
+ else if(role==Qt::DisplayRole)
+ {
+ switch(column)
+ {
+ case 0:
+ return item.source;
+ break;
+ case 1:
+ return item.size;
+ break;
+ case 2:
+ return item.destination;
+ break;
+ default:
+ return QVariant();
+ }
+ }
+ else if(role==Qt::DecorationRole)
+ {
+ switch(column)
+ {
+ case 0:
+ if(stopId.contains(item.id))
+ return *stop;
+ else if(startId.contains(item.id))
+ return *start;
+ else
+ return QVariant();
+ break;
+ default:
+ return QVariant();
+ }
+ }
+ else if(role==Qt::BackgroundRole)
+ {
+ if(!search_text.isEmpty() && (item.source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || item.destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1))
+ {
+ if(haveSearchItem && searchId==item.id)
+ return QColor(255,150,150,100);
+ else
+ return QColor(255,255,0,100);
+ }
+ else
+ return QVariant();
+ }
+ return QVariant();
+}
+
+int TransferModel::rowCount( const QModelIndex& parent ) const
+{
+ return parent == QModelIndex() ? transfertItemList.count() : 0;
+}
+
+quint64 TransferModel::firstId() const
+{
+ if(transfertItemList.count()>0)
+ return transfertItemList.first().id;
+ else
+ return 0;
+}
+
+QVariant TransferModel::headerData( int section, Qt::Orientation orientation, int role ) const
+{
+ if ( role == Qt::DisplayRole && orientation == Qt::Horizontal && section >= 0 && section < COLUMN_COUNT ) {
+ switch ( section ) {
+ case 0:
+ return facilityEngine->translateText(QStringLiteral("Source"));
+ case 1:
+ return facilityEngine->translateText(QStringLiteral("Size"));
+ case 2:
+ return facilityEngine->translateText(QStringLiteral("Destination"));
+ }
+ }
+
+ return QAbstractTableModel::headerData( section, orientation, role );
+}
+
+bool TransferModel::setData( const QModelIndex& index, const QVariant& value, int role )
+{
+ row=index.row();
+ column=index.column();
+ if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT)
+ return false;
+
+ TransfertItem& item = transfertItemList[row];
+ if(role==Qt::UserRole)
+ {
+ item.id=value.toULongLong();
+ return true;
+ }
+ else if(role==Qt::DisplayRole)
+ {
+ switch(column)
+ {
+ case 0:
+ item.source=value.toString();
+ emit dataChanged(index,index);
+ return true;
+ break;
+ case 1:
+ item.size=value.toString();
+ emit dataChanged(index,index);
+ return true;
+ break;
+ case 2:
+ item.destination=value.toString();
+ emit dataChanged(index,index);
+ return true;
+ break;
+ default:
+ return false;
+ }
+ }
+ return false;
+}
+
+/*
+ Return[0]: totalFile
+ Return[1]: totalSize
+ Return[2]: currentFile
+ */
+QList<quint64> TransferModel::synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions)
+{
+ loop_size=returnActions.size();
+ index_for_loop=0;
+ quint64 totalFile=0,totalSize=0,currentFile=0;
+ totalFile=0;
+ totalSize=0;
+ currentFile=0;
+
+ emit layoutAboutToBeChanged();
+ const QModelIndexList oldIndexes = persistentIndexList();
+ QModelIndexList newIndexes = oldIndexes;
+ QMap<int, quint64> oldMapping; // model index row in model before update, item id
+ QMap<quint64, int> newMapping; // item id, model index row in model after update
+
+ for ( int i = 0; i < oldIndexes.count(); i++ ) {
+ const QModelIndex& index = oldIndexes.at(i);
+ oldMapping[ index.row() ] = index.data( Qt::UserRole ).value<quint64>();
+ }
+
+ while(index_for_loop<loop_size)
+ {
+ const Ultracopier::ReturnActionOnCopyList& action=returnActions.at(index_for_loop);
+ switch(action.type)
+ {
+ case Ultracopier::AddingItem:
+ {
+ TransfertItem newItem;
+ newItem.id=action.addAction.id;
+ newItem.source=action.addAction.sourceFullPath;
+ newItem.size=facilityEngine->sizeToString(action.addAction.size);
+ newItem.destination=action.addAction.destinationFullPath;
+ transfertItemList<<newItem;
+ totalFile++;
+ totalSize+=action.addAction.size;
+ }
+ break;
+ case Ultracopier::MoveItem:
+ {
+ //bool current_entry=
+ if(action.userAction.position<0)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, position is wrong: %2").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.position>(transfertItemList.size()-1))
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, position is wrong: %2").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.moveAt<0)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, position is wrong: %2").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.moveAt>(transfertItemList.size()-1))
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, position is wrong: %2").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.position==action.userAction.moveAt)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("id: %1, move at same position: %2").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ transfertItemList.move(action.userAction.position,action.userAction.moveAt);
+ //newIndexes.move(action.userAction.position,action.userAction.moveAt);
+ }
+ break;
+ case Ultracopier::RemoveItem:
+ {
+ if(currentIndexSearch>0 && action.userAction.position<=currentIndexSearch)
+ currentIndexSearch--;
+ if(action.userAction.position<0)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.position>(transfertItemList.size()-1))
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ transfertItemList.removeAt(action.userAction.position);
+ currentFile++;
+ startId.remove(action.addAction.id);
+ stopId.remove(action.addAction.id);
+ internalRunningOperation.remove(action.addAction.id);
+ //newIndexes.remove(action.userAction.moveAt);
+ }
+ break;
+ case Ultracopier::PreOperation:
+ {
+ ItemOfCopyListWithMoreInformations tempItem;
+ tempItem.currentReadProgression=0;
+ tempItem.currentWriteProgression=0;
+ tempItem.generalData=action.addAction;
+ tempItem.actionType=action.type;
+ internalRunningOperation[action.addAction.id]=tempItem;
+ }
+ break;
+ case Ultracopier::Transfer:
+ {
+ if(!startId.contains(action.addAction.id))
+ startId << action.addAction.id;
+ stopId.remove(action.addAction.id);
+ if(internalRunningOperation.contains(action.addAction.id))
+ internalRunningOperation[action.addAction.id].actionType=action.type;
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unable to found entry for file %1: actionType: Transfer").arg(action.addAction.id));
+ }
+ break;
+ case Ultracopier::PostOperation:
+ {
+ if(!stopId.contains(action.addAction.id))
+ stopId << action.addAction.id;
+ startId.remove(action.addAction.id);
+ }
+ break;
+ case Ultracopier::CustomOperation:
+ {
+ bool custom_with_progression=(action.addAction.size==1);
+ //without progression
+ if(custom_with_progression)
+ {
+ if(startId.remove(action.addAction.id))
+ if(!stopId.contains(action.addAction.id))
+ stopId << action.addAction.id;
+ }
+ //with progression
+ else
+ {
+ stopId.remove(action.addAction.id);
+ if(!startId.contains(action.addAction.id))
+ startId << action.addAction.id;
+ }
+ if(internalRunningOperation.contains(action.addAction.id))
+ {
+ ItemOfCopyListWithMoreInformations &item=internalRunningOperation[action.addAction.id];
+ item.actionType=action.type;
+ item.custom_with_progression=custom_with_progression;
+ item.currentReadProgression=0;
+ item.currentWriteProgression=0;
+ }
+ }
+ break;
+ default:
+ //unknow code, ignore it
+ break;
+ }
+ index_for_loop++;
+ }
+
+ if(!oldIndexes.isEmpty())
+ {
+ const QSet<quint64> ids = oldMapping.values().toSet();
+
+ for ( int i = 0; i < transfertItemList.count(); i++ ) {
+ const TransferModel::TransfertItem& item = transfertItemList.at(i);
+
+ if ( ids.contains( item.id ) ) {
+ newMapping[ item.id ] = i;
+ }
+ }
+
+ for ( int i = 0; i < oldIndexes.count(); i++ ) {
+ const QModelIndex& index = oldIndexes.at(i);
+ const int newRow = newMapping.value( oldMapping.value(index.row()), -1 );
+ newIndexes[ i ] = newRow == -1 ? QModelIndex() : QAbstractTableModel::index( newRow, index.column(), index.parent() );
+ }
+ }
+
+ changePersistentIndexList( oldIndexes, newIndexes );
+ emit layoutChanged();
+ return QList<quint64>() << totalFile << totalSize << currentFile;
+}
+
+void TransferModel::setFacilityEngine(FacilityInterface *facilityEngine)
+{
+ this->facilityEngine=facilityEngine;
+}
+
+int TransferModel::search(const QString &text,bool searchNext)
+{
+ emit layoutAboutToBeChanged();
+ search_text=text;
+ emit layoutChanged();
+ if(transfertItemList.size()==0)
+ return -1;
+ if(text.isEmpty())
+ return -1;
+ if(searchNext)
+ {
+ currentIndexSearch++;
+ if(currentIndexSearch>=loop_size)
+ currentIndexSearch=0;
+ }
+ index_for_loop=0;
+ loop_size=transfertItemList.size();
+ while(index_for_loop<loop_size)
+ {
+ if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)
+ {
+ haveSearchItem=true;
+ searchId=transfertItemList.at(currentIndexSearch).id;
+ return currentIndexSearch;
+ }
+ currentIndexSearch++;
+ if(currentIndexSearch>=loop_size)
+ currentIndexSearch=0;
+ index_for_loop++;
+ }
+ haveSearchItem=false;
+ return -1;
+}
+
+int TransferModel::searchPrev(const QString &text)
+{
+ emit layoutAboutToBeChanged();
+ search_text=text;
+ emit layoutChanged();
+ if(transfertItemList.size()==0)
+ return -1;
+ if(text.isEmpty())
+ return -1;
+ if(currentIndexSearch==0)
+ currentIndexSearch=loop_size-1;
+ else
+ currentIndexSearch--;
+ index_for_loop=0;
+ loop_size=transfertItemList.size();
+ while(index_for_loop<loop_size)
+ {
+ if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)
+ {
+ haveSearchItem=true;
+ searchId=transfertItemList.at(currentIndexSearch).id;
+ return currentIndexSearch;
+ }
+ if(currentIndexSearch==0)
+ currentIndexSearch=loop_size-1;
+ else
+ currentIndexSearch--;
+ index_for_loop++;
+ }
+ haveSearchItem=false;
+ return -1;
+}
+
+void TransferModel::setFileProgression(
+ #ifndef ULTRACOPIER_PLUGIN_DEBUG
+ const
+ #endif
+ QList<Ultracopier::ProgressionItem> &progressionList)
+{
+ loop_size=progressionList.size();
+ index_for_loop=0;
+ while(index_for_loop<loop_size)
+ {
+ if(internalRunningOperation.contains(progressionList.at(index_for_loop).id))
+ {
+ internalRunningOperation[progressionList.at(index_for_loop).id].generalData.size=progressionList.at(index_for_loop).total;
+ internalRunningOperation[progressionList.at(index_for_loop).id].currentReadProgression=progressionList.at(index_for_loop).currentRead;
+ internalRunningOperation[progressionList.at(index_for_loop).id].currentWriteProgression=progressionList.at(index_for_loop).currentWrite;
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ progressionList.removeAt(index_for_loop);
+ index_for_loop--;
+ loop_size--;
+ #endif
+ }
+ index_for_loop++;
+ }
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ if(progressionList.size()>0)
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("progression remaning items"));
+ #endif
+}
+
+TransferModel::currentTransfertItem TransferModel::getCurrentTransfertItem() const
+{
+ currentTransfertItem returnItem;
+ returnItem.progressBar_read=-1;
+ returnItem.progressBar_write=0;
+ returnItem.haveItem=startId.size()>0;
+ if(returnItem.haveItem)
+ {
+ if(!internalRunningOperation.contains(*startId.constBegin()))
+ {
+ returnItem.haveItem=false;
+ return returnItem;
+ }
+ const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation.value(*startId.constBegin());
+ returnItem.from=itemTransfer.generalData.sourceFullPath;
+ returnItem.to=itemTransfer.generalData.destinationFullPath;
+ returnItem.current_file=itemTransfer.generalData.destinationFileName+QStringLiteral(", ")+facilityEngine->sizeToString(itemTransfer.generalData.size);
+ returnItem.id=itemTransfer.generalData.id;
+ switch(itemTransfer.actionType)
+ {
+ case Ultracopier::CustomOperation:
+ if(!itemTransfer.custom_with_progression)
+ returnItem.progressBar_read=-1;
+ else
+ {
+ if(itemTransfer.generalData.size>0)
+ {
+ returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535;
+ returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535;
+ }
+ else
+ returnItem.progressBar_read=-1;
+ }
+ break;
+ case Ultracopier::Transfer:
+ if(itemTransfer.generalData.size>0)
+ {
+ returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535;
+ returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535;
+ }
+ else
+ {
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ }
+ break;
+ //should never pass here
+ case Ultracopier::PostOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_read=65535;
+ returnItem.progressBar_write=65535;
+ break;
+ //should never pass here
+ case Ultracopier::PreOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ break;
+ default:
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ break;
+ }
+ }
+ else
+ {
+ returnItem.haveItem=stopId.size()>0;
+ if(returnItem.haveItem)
+ {
+ if(!internalRunningOperation.contains(*stopId.constBegin()))
+ {
+ returnItem.haveItem=false;
+ return returnItem;
+ }
+ const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation.value(*stopId.constBegin());
+ returnItem.from=itemTransfer.generalData.sourceFullPath;
+ returnItem.to=itemTransfer.generalData.destinationFullPath;
+ returnItem.current_file=itemTransfer.generalData.destinationFileName+QStringLiteral(", ")+facilityEngine->sizeToString(itemTransfer.generalData.size);
+ returnItem.id=itemTransfer.generalData.id;
+ switch(itemTransfer.actionType)
+ {
+ case Ultracopier::CustomOperation:
+ if(!itemTransfer.custom_with_progression)
+ returnItem.progressBar_read=-1;
+ else
+ {
+ if(itemTransfer.generalData.size>0)
+ {
+ returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535;
+ returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535;
+ }
+ else
+ returnItem.progressBar_read=-1;
+ }
+ break;
+ case Ultracopier::Transfer:
+ if(itemTransfer.generalData.size>0)
+ {
+ returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535;
+ returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535;
+ }
+ else
+ {
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ }
+ break;
+ case Ultracopier::PostOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_read=65535;
+ returnItem.progressBar_write=65535;
+ break;
+ //should never pass here
+ case Ultracopier::PreOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ break;
+ default:
+ returnItem.progressBar_read=65535;
+ returnItem.progressBar_write=65535;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ break;
+ }
+ }
+ }
+ if(returnItem.haveItem && returnItem.progressBar_read!=-1 && returnItem.progressBar_write>returnItem.progressBar_read)
+ {
+ int tempVar=returnItem.progressBar_write;
+ returnItem.progressBar_write=returnItem.progressBar_read;
+ returnItem.progressBar_read=tempVar;
+ }
+ return returnItem;
+}
diff --git a/plugins-alternative/Themes/Supercopier/TransferModel.h b/plugins-alternative/Themes/Supercopier/TransferModel.h
new file mode 100644
index 0000000..dd8b45a
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/TransferModel.h
@@ -0,0 +1,96 @@
+#ifndef TRANSFERMODEL_H
+#define TRANSFERMODEL_H
+
+#include <QAbstractTableModel>
+#include <QItemSelectionModel>
+#include <QModelIndex>
+#include <QVariant>
+#include <QList>
+#include <QSet>
+#include <QIcon>
+#include <QString>
+
+#include "StructEnumDefinition.h"
+#include "Environment.h"
+
+#include "../../../interface/FacilityInterface.h"
+
+/// \brief model to store the transfer list
+class TransferModel : public QAbstractTableModel
+{
+ Q_OBJECT
+public:
+ /// \brief the transfer item displayed
+ struct TransfertItem
+ {
+ quint64 id;
+ QString source;
+ QString size;
+ QString destination;
+ };
+ /// \brief the transfer item with progression
+ struct ItemOfCopyListWithMoreInformations
+ {
+ quint64 currentReadProgression,currentWriteProgression;
+ Ultracopier::ItemOfCopyList generalData;
+ Ultracopier::ActionTypeCopyList actionType;
+ bool custom_with_progression;
+ };
+ /// \brief returned first transfer item
+ struct currentTransfertItem
+ {
+ quint64 id;
+ bool haveItem;
+ QString from;
+ QString to;
+ QString current_file;
+ int progressBar_read,progressBar_write;
+ };
+
+ TransferModel();
+
+ virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
+ virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
+ virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
+ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
+
+ QList<quint64> synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions);
+ void setFacilityEngine(FacilityInterface * facilityEngine);
+
+ int search(const QString &text,bool searchNext);
+ int searchPrev(const QString &text);
+
+ void setFileProgression(
+ #ifndef ULTRACOPIER_PLUGIN_DEBUG
+ const
+ #endif
+ QList<Ultracopier::ProgressionItem> &progressionList);
+
+ currentTransfertItem getCurrentTransfertItem() const;
+
+ quint64 firstId() const;
+protected:
+ QList<TransfertItem> transfertItemList;///< To have a transfer list for the user
+ QSet<quint64> startId,stopId;///< To show what is started, what is stopped
+ QHash<quint64,ItemOfCopyListWithMoreInformations> internalRunningOperation;///< to have progression and stat
+private:
+ int loop_size,index_for_loop;
+ int sub_loop_size,sub_index_for_loop;
+ int row,column;
+ FacilityInterface * facilityEngine;
+ QString search_text;
+ /// \brief index from start the search, decresed by remove before it
+ int currentIndexSearch;
+ bool haveSearchItem;
+ quint64 searchId;
+ static QIcon *start;
+ static QIcon *stop;
+signals:
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ /// \brief To debug source
+ void debugInformation(const Ultracopier::DebugLevel &level,QString fonction,QString text,QString file,int ligne) const;
+ #endif
+};
+
+#endif // TRANSFERMODEL_H
diff --git a/plugins-alternative/Themes/Supercopier/Variable.h b/plugins-alternative/Themes/Supercopier/Variable.h
new file mode 100644
index 0000000..963d0c8
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/Variable.h
@@ -0,0 +1,15 @@
+/** \file Variable.h
+\brief Define the environment variable
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef VARIABLE_H
+#define VARIABLE_H
+
+//Un-comment this next line to put ultracopier plugin in debug mode
+#define ULTRACOPIER_PLUGIN_DEBUG
+
+#endif // VARIABLE_H
+
+
+
diff --git a/plugins-alternative/Themes/Supercopier/documentation.dox b/plugins-alternative/Themes/Supercopier/documentation.dox
new file mode 100644
index 0000000..9357109
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/documentation.dox
@@ -0,0 +1,33 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- **/
+
+/*
+ This file contains NO source code, just some documentation for doxygen to
+ parse.
+*/
+
+/*!
+ \mainpage Oxygen
+
+ \section mainpage_overview Overview
+
+ It's interface like Supercopier, see Tal Sella http://www.virtualplastic.net/scrow/ (icons) for the icons and icon license.\n
+ More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>.
+
+ \section mainpage_platforms Platforms
+
+ Ultracopier might be usable in all environments where you find Qt 5.\n
+ Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0.
+
+ \section mainpage_downloads Downloads
+
+ You can found link on <a href="http://ultracopier.first-world.info/">Ultracopier (Supercopier/Teracopy)</a> project page, via git, snapshot sources, ...
+
+ \section license GPL Version 3
+ The code source is under GPL3. The image is extacted from Oxygen icon pack of KDE4.\n
+ See Tal Sella http://www.virtualplastic.net/scrow/ (icons) for the icons and icon license.\n
+ resources/export-transfer-list.png and resources/import-transfer-list.png done by png manipulation of KDE's oxygen icon pack (16x16/actions/format-indent-more.png + 16x16/actions/format-list-unordered.png), document-save.png -> all SystemTrayIcon/systray_* (color alteration).\n
+ From 16x16/actions/: list-add.png -> add.png and SystemTrayIcon/add.png, process-stop.png -> remove.png, document-save.png -> main.png and, arrow-down.png -> moveDown.png, arrow-up.png -> moveUp.png, system-shutdown.png -> cancel.png and SystemTrayIcon/exit.png, arrow-down-double.png -> putOnBottom.png, arrow-up-double.png -> putOnTop.png, media-skip-forward.png -> player_end.png, media-playback-pause.png -> player_pause.png, media-playback-start.png -> player_play.png, document-preview.png -> search.png, help-about.png -> SystemTrayIcon/informations.png \n
+ And 16x16/categories/applications-development.png -> SystemTrayIcon/options.png
+
+*/
+
diff --git a/plugins-alternative/Themes/Supercopier/factory.cpp b/plugins-alternative/Themes/Supercopier/factory.cpp
new file mode 100644
index 0000000..ce3fe15
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/factory.cpp
@@ -0,0 +1,441 @@
+/** \file factory.cpp
+\brief Define the factory core
+\author alpha_one_x86
+*/
+
+#include <QColorDialog>
+
+#include "factory.h"
+
+ThemesFactory::ThemesFactory()
+{
+ optionsEngine=NULL;
+ tempWidget=new QWidget();
+ ui=new Ui::themesOptions();
+ ui->setupUi(tempWidget);
+ ui->toolBox->setCurrentIndex(0);
+ currentSpeed = 0;
+ updateSpeed();
+ ui->labelDualProgression->hide();
+ ui->showDualProgression->hide();
+
+ qRegisterMetaType<QList<QPersistentModelIndex> >("QList<QPersistentModelIndex>");
+}
+
+ThemesFactory::~ThemesFactory()
+{
+}
+
+PluginInterface_Themes * ThemesFactory::getInstance()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start, currentSpeed: %1").arg(currentSpeed));
+
+ Themes * newInterface=new Themes(
+ ui->alwaysOnTop->isChecked(),
+ ui->showProgressionInTheTitle->isChecked(),
+ progressColorWrite,progressColorRead,progressColorRemaining,
+ ui->showDualProgression->isChecked(),
+ ui->comboBox_copyEnd->currentIndex(),
+ ui->speedWithProgressBar->isChecked(),
+ currentSpeed,
+ ui->checkBoxShowSpeed->isChecked(),
+ facilityEngine,
+ ui->checkBoxStartWithMoreButtonPushed->isChecked(),
+ ui->minimizeToSystray->isChecked()
+ );
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ connect(newInterface,&Themes::debugInformation,this,&PluginInterface_ThemesFactory::debugInformation);
+ #endif
+ connect(this,&ThemesFactory::reloadLanguage,newInterface,&Themes::newLanguageLoaded);
+ return newInterface;
+}
+
+void ThemesFactory::setResources(OptionInterface * optionsEngine,const QString &
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ writePath
+ #endif
+ ,const QString &
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ pluginPath
+ #endif
+ ,FacilityInterface * facilityEngine,const bool &)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start, writePath: "+writePath+", pluginPath: "+pluginPath);
+ this->facilityEngine=facilityEngine;
+ if(optionsEngine!=NULL)
+ {
+ this->optionsEngine=optionsEngine;
+ //load the options
+ QList<QPair<QString, QVariant> > KeysList;
+ KeysList.append(qMakePair(QStringLiteral("checkBoxShowSpeed"),QVariant(false)));
+ KeysList.append(qMakePair(QStringLiteral("moreButtonPushed"),QVariant(false)));
+ KeysList.append(qMakePair(QStringLiteral("speedWithProgressBar"),QVariant(false)));
+ KeysList.append(qMakePair(QStringLiteral("currentSpeed"),QVariant(0)));
+ KeysList.append(qMakePair(QStringLiteral("comboBox_copyEnd"),QVariant(0)));
+ KeysList.append(qMakePair(QStringLiteral("showDualProgression"),QVariant(false)));
+ KeysList.append(qMakePair(QStringLiteral("showProgressionInTheTitle"),QVariant(true)));
+ KeysList.append(qMakePair(QStringLiteral("progressColorWrite"),QVariant(QApplication::palette().color(QPalette::Highlight))));
+ KeysList.append(qMakePair(QStringLiteral("progressColorRead"),QVariant(QApplication::palette().color(QPalette::AlternateBase))));
+ KeysList.append(qMakePair(QStringLiteral("progressColorRemaining"),QVariant(QApplication::palette().color(QPalette::Base))));
+ KeysList.append(qMakePair(QStringLiteral("alwaysOnTop"),QVariant(false)));
+ KeysList.append(qMakePair(QStringLiteral("minimizeToSystray"),QVariant(false)));
+ optionsEngine->addOptionGroup(KeysList);
+ connect(optionsEngine,&OptionInterface::resetOptions,this,&ThemesFactory::resetOptions);
+ updateSpeed();
+ }
+ #ifndef __GNUC__
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"__GNUC__ is not set");
+ #else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"__GNUC__ is set");
+ #endif
+}
+
+QWidget * ThemesFactory::options()
+{
+ if(optionsEngine!=NULL)
+ {
+ bool ok;
+ currentSpeed=optionsEngine->getOptionValue("currentSpeed").toUInt(&ok);
+ if(!ok)
+ currentSpeed=0;
+ ui->comboBox_copyEnd->setCurrentIndex(optionsEngine->getOptionValue(QStringLiteral("comboBox_copyEnd")).toUInt());
+ ui->speedWithProgressBar->setChecked(optionsEngine->getOptionValue(QStringLiteral("speedWithProgressBar")).toBool());
+ ui->checkBoxShowSpeed->setChecked(optionsEngine->getOptionValue(QStringLiteral("checkBoxShowSpeed")).toBool());
+ ui->checkBoxStartWithMoreButtonPushed->setChecked(optionsEngine->getOptionValue(QStringLiteral("moreButtonPushed")).toBool());
+ ui->showDualProgression->setChecked(optionsEngine->getOptionValue(QStringLiteral("showDualProgression")).toBool());
+ ui->showProgressionInTheTitle->setChecked(optionsEngine->getOptionValue(QStringLiteral("showProgressionInTheTitle")).toBool());
+ ui->alwaysOnTop->setChecked(optionsEngine->getOptionValue(QStringLiteral("alwaysOnTop")).toBool());
+ ui->minimizeToSystray->setChecked(optionsEngine->getOptionValue(QStringLiteral("minimizeToSystray")).toBool());
+
+ progressColorWrite=optionsEngine->getOptionValue(QStringLiteral("progressColorWrite")).value<QColor>();
+ progressColorRead=optionsEngine->getOptionValue(QStringLiteral("progressColorRead")).value<QColor>();
+ progressColorRemaining=optionsEngine->getOptionValue(QStringLiteral("progressColorRemaining")).value<QColor>();
+
+ QPixmap pixmap(75,20);
+ pixmap.fill(progressColorWrite);
+ ui->progressColorWrite->setIcon(pixmap);
+ pixmap.fill(progressColorRead);
+ ui->progressColorRead->setIcon(pixmap);
+ pixmap.fill(progressColorRemaining);
+ ui->progressColorRemaining->setIcon(pixmap);
+ updateSpeed();
+ updateProgressionColorBar();
+
+ connect(ui->alwaysOnTop,&QCheckBox::stateChanged,this,&ThemesFactory::alwaysOnTop);
+ connect(ui->checkBoxShowSpeed,&QCheckBox::stateChanged,this,&ThemesFactory::checkBoxShowSpeed);
+ connect(ui->minimizeToSystray,&QCheckBox::stateChanged,this,&ThemesFactory::minimizeToSystray);
+ connect(ui->checkBox_limitSpeed,&QCheckBox::stateChanged,this,&ThemesFactory::uiUpdateSpeed);
+ connect(ui->SliderSpeed,&QAbstractSlider::valueChanged,this,&ThemesFactory::on_SliderSpeed_valueChanged);
+ connect(ui->limitSpeed,static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &ThemesFactory::uiUpdateSpeed);
+ connect(ui->checkBoxShowSpeed,&QAbstractButton::toggled,this,&ThemesFactory::checkBoxShowSpeedHaveChanged);
+ connect(ui->checkBoxStartWithMoreButtonPushed,&QAbstractButton::toggled,this,&ThemesFactory::checkBoxStartWithMoreButtonPushedHaveChanged);
+ connect(ui->speedWithProgressBar,&QAbstractButton::toggled,this,&ThemesFactory::speedWithProgressBar);
+ connect(ui->comboBox_copyEnd, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this,&ThemesFactory::comboBox_copyEnd);
+ connect(ui->showDualProgression,&QCheckBox::stateChanged,this,&ThemesFactory::showDualProgression);
+ connect(ui->showDualProgression,&QCheckBox::stateChanged,this,&ThemesFactory::updateProgressionColorBar);
+ connect(ui->showProgressionInTheTitle,&QCheckBox::stateChanged,this,&ThemesFactory::setShowProgressionInTheTitle);
+ connect(ui->progressColorWrite,&QAbstractButton::clicked,this,&ThemesFactory::progressColorWrite_clicked);
+ connect(ui->progressColorRead, &QAbstractButton::clicked,this,&ThemesFactory::progressColorRead_clicked);
+ connect(ui->progressColorRemaining,&QAbstractButton::clicked,this,&ThemesFactory::progressColorRemaining_clicked);
+ }
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"return the options");
+ return tempWidget;
+}
+
+QIcon ThemesFactory::getIcon(const QString &fileName) const
+{
+ return QIcon(QStringLiteral(":/Themes/Supercopier/resources/")+fileName);
+}
+
+void ThemesFactory::resetOptions()
+{
+ ui->checkBoxShowSpeed->setChecked(true);
+ ui->checkBoxStartWithMoreButtonPushed->setChecked(false);
+}
+
+void ThemesFactory::checkBoxShowSpeedHaveChanged(bool toggled)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed");
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("checkBoxShowSpeed"),toggled);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::checkBoxStartWithMoreButtonPushedHaveChanged(bool toggled)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed");
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("moreButtonPushed"),toggled);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::comboBox_copyEnd(int value)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed");
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("comboBox_copyEnd"),value);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::speedWithProgressBar(bool toggled)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed");
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("speedWithProgressBar"),toggled);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::newLanguageLoaded()
+{
+ ui->retranslateUi(tempWidget);
+ ui->comboBox_copyEnd->setItemText(0,tr("Don't close if errors are found"));
+ ui->comboBox_copyEnd->setItemText(1,tr("Never close"));
+ ui->comboBox_copyEnd->setItemText(2,tr("Always close"));
+ emit reloadLanguage();
+}
+
+void ThemesFactory::checkBoxShowSpeed(bool checked)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ Q_UNUSED(checked);
+ updateSpeed();
+}
+
+void ThemesFactory::minimizeToSystray(bool checked)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed");
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("minimizeToSystray"),checked);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::alwaysOnTop(bool checked)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed");
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("alwaysOnTop"),checked);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::showDualProgression(bool checked)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"the checkbox have changed");
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("showDualProgression"),checked);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::on_SliderSpeed_valueChanged(int value)
+{
+ if(optionsEngine==NULL)
+ return;
+ if(!ui->checkBoxShowSpeed->isChecked())
+ return;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("value: %1").arg(value));
+ switch(value)
+ {
+ case 0:
+ currentSpeed=0;
+ break;
+ case 1:
+ currentSpeed=1024;
+ break;
+ case 2:
+ currentSpeed=1024*4;
+ break;
+ case 3:
+ currentSpeed=1024*16;
+ break;
+ case 4:
+ currentSpeed=1024*64;
+ break;
+ case 5:
+ currentSpeed=1024*128;
+ break;
+ }
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+ updateSpeed();
+}
+
+void ThemesFactory::uiUpdateSpeed()
+{
+ if(optionsEngine==NULL)
+ return;
+ if(ui->checkBoxShowSpeed->isChecked())
+ return;
+ if(!ui->checkBox_limitSpeed->isChecked())
+ currentSpeed=0;
+ else
+ currentSpeed=ui->limitSpeed->value();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("emit newSpeedLimitation(%1)").arg(currentSpeed));
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::updateSpeed()
+{
+ if(optionsEngine==NULL)
+ return;
+ ui->label_Slider_speed->setVisible(ui->checkBoxShowSpeed->isChecked());
+ ui->SliderSpeed->setVisible(ui->checkBoxShowSpeed->isChecked());
+ ui->label_SpeedMaxValue->setVisible(ui->checkBoxShowSpeed->isChecked());
+ ui->limitSpeed->setVisible(!ui->checkBoxShowSpeed->isChecked());
+ ui->checkBox_limitSpeed->setVisible(!ui->checkBoxShowSpeed->isChecked());
+
+ if(ui->checkBoxShowSpeed->isChecked())
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("checked, currentSpeed: %1").arg(currentSpeed));
+ ui->limitSpeed->setEnabled(false);
+ if(currentSpeed==0)
+ {
+ ui->SliderSpeed->setValue(0);
+ ui->label_SpeedMaxValue->setText(facilityEngine->translateText("Unlimited"));
+ }
+ else if(currentSpeed<=1024)
+ {
+ if(currentSpeed!=1024)
+ {
+ currentSpeed=1024;
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+ }
+ ui->SliderSpeed->setValue(1);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*1));
+ }
+ else if(currentSpeed<=1024*4)
+ {
+ if(currentSpeed!=1024*4)
+ {
+ currentSpeed=1024*4;
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+ }
+ ui->SliderSpeed->setValue(2);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*4));
+ }
+ else if(currentSpeed<=1024*16)
+ {
+ if(currentSpeed!=1024*16)
+ {
+ currentSpeed=1024*16;
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+ }
+ ui->SliderSpeed->setValue(3);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*16));
+ }
+ else if(currentSpeed<=1024*64)
+ {
+ if(currentSpeed!=1024*64)
+ {
+ currentSpeed=1024*64;
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+ }
+ ui->SliderSpeed->setValue(4);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*64));
+ }
+ else
+ {
+ if(currentSpeed!=1024*128)
+ {
+ currentSpeed=1024*128;
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("currentSpeed"),currentSpeed);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+ }
+ ui->SliderSpeed->setValue(5);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*128));
+ }
+ }
+ else
+ {
+ ui->checkBox_limitSpeed->setChecked(currentSpeed>0);
+ if(currentSpeed>0)
+ ui->limitSpeed->setValue(currentSpeed);
+ ui->checkBox_limitSpeed->setEnabled(currentSpeed!=-1);
+ ui->limitSpeed->setEnabled(ui->checkBox_limitSpeed->isChecked());
+ }
+}
+
+void ThemesFactory::progressColorWrite_clicked()
+{
+ QColor color=QColorDialog::getColor(progressColorWrite,NULL,tr("Select a color"));
+ if(!color.isValid())
+ return;
+ progressColorWrite=color;
+ QPixmap pixmap(75,20);
+ pixmap.fill(progressColorWrite);
+ ui->progressColorWrite->setIcon(pixmap);
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("progressColorWrite"),progressColorWrite);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::progressColorRead_clicked()
+{
+ QColor color=QColorDialog::getColor(progressColorRead,NULL,tr("Select a color"));
+ if(!color.isValid())
+ return;
+ progressColorRead=color;
+ QPixmap pixmap(75,20);
+ pixmap.fill(progressColorRead);
+ ui->progressColorRead->setIcon(pixmap);
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("progressColorRead"),progressColorRead);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::progressColorRemaining_clicked()
+{
+ QColor color=QColorDialog::getColor(progressColorRemaining,NULL,tr("Select a color"));
+ if(!color.isValid())
+ return;
+ progressColorRemaining=color;
+ QPixmap pixmap(75,20);
+ pixmap.fill(progressColorRemaining);
+ ui->progressColorRemaining->setIcon(pixmap);
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("progressColorRemaining"),progressColorRemaining);
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
+
+void ThemesFactory::updateProgressionColorBar()
+{
+ ui->labelProgressionColor->setVisible(ui->showDualProgression->isChecked());
+ ui->frameProgressionColor->setVisible(ui->showDualProgression->isChecked());
+}
+
+void ThemesFactory::setShowProgressionInTheTitle()
+{
+ if(optionsEngine!=NULL)
+ optionsEngine->setOptionValue(QStringLiteral("showProgressionInTheTitle"),ui->showProgressionInTheTitle->isChecked());
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"internal error, crash prevented");
+}
diff --git a/plugins-alternative/Themes/Supercopier/factory.h b/plugins-alternative/Themes/Supercopier/factory.h
new file mode 100644
index 0000000..11607d2
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/factory.h
@@ -0,0 +1,83 @@
+/** \file factory.h
+\brief Define the factory, to create instance of the interface
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef FACTORY_H
+#define FACTORY_H
+
+#include <QObject>
+#include <QWidget>
+#include <QMenu>
+#include <QCloseEvent>
+#include <QFile>
+#include <QIcon>
+#include <QColor>
+#include <QPixmap>
+
+#include "../../../interface/PluginInterface_Themes.h"
+#include "ui_themesOptions.h"
+#include "interface.h"
+#include "Environment.h"
+
+namespace Ui {
+ class themesOptions;
+}
+
+/// \brief Define the factory, to create instance of the interface
+class ThemesFactory : public PluginInterface_ThemesFactory
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.ThemesFactory/1.0.1.0" FILE "plugin.json")
+ Q_INTERFACES(PluginInterface_ThemesFactory)
+public:
+ ThemesFactory();
+ ~ThemesFactory();
+ /// \brief to return the instance of the copy engine
+ PluginInterface_Themes * getInstance();
+ /// \brief set the resources, to store options, to have facilityInterface
+ void setResources(OptionInterface * optionsEngine,const QString &
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ writePath
+ #endif
+ ,const QString &
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ pluginPath
+ #endif
+ ,FacilityInterface * facilityEngine,const bool &portableVersion);
+ /// \brief to get the default options widget
+ QWidget * options();
+ /// \brief to get a resource icon
+ QIcon getIcon(const QString &fileName) const;
+private slots:
+ void checkBoxShowSpeedHaveChanged(bool toggled);
+ void checkBoxStartWithMoreButtonPushedHaveChanged(bool toggled);
+ void comboBox_copyEnd(int value);
+ void speedWithProgressBar(bool toggled);
+ void checkBoxShowSpeed(bool checked);
+ void minimizeToSystray(bool checked);
+ void alwaysOnTop(bool checked);
+ void showDualProgression(bool checked);
+ void on_SliderSpeed_valueChanged(int value);
+ void uiUpdateSpeed();
+ void updateSpeed();
+ void progressColorWrite_clicked();
+ void progressColorRead_clicked();
+ void progressColorRemaining_clicked();
+ void updateProgressionColorBar();
+ void setShowProgressionInTheTitle();
+public slots:
+ void resetOptions();
+ void newLanguageLoaded();
+private:
+ OptionInterface * optionsEngine;
+ Ui::themesOptions *ui;
+ QWidget *tempWidget;
+ FacilityInterface * facilityEngine;
+ qint32 currentSpeed;///< in KB/s, assume as 0KB/s as default like every where
+ QColor progressColorWrite,progressColorRead,progressColorRemaining;
+signals:
+ void reloadLanguage() const;
+};
+
+#endif // FACTORY_H
diff --git a/plugins-alternative/Themes/Supercopier/informations.xml b/plugins-alternative/Themes/Supercopier/informations.xml
new file mode 100644
index 0000000..25a77f9
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/informations.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<package>
+ <title xml:lang="en"><![CDATA[Supercopier style for Ultracopier]]></title><!-- english is required -->
+ <title xml:lang="fr"><![CDATA[Style Supercopier pour Ultracopier]]></title>
+ <!-- What kind of plugin this is -->
+ <category>Themes</category>
+ <!-- Who wrote this plugin -->
+ <author><![CDATA[BRULE Herman, alpha_one_x86 (alpha_one_x86@first-world.info)]]></author>
+ <!-- URL of page or site for this plugin (may provide additional information, bug reports, feature requests). -->
+ <website xml:lang="en"><![CDATA[http://ultracopier.first-world.info/]]></website><!-- not required -->
+ <website xml:lang="fr"><![CDATA[http://ultracopier-fr.first-world.info/]]></website><!-- not required -->
+ <!-- the date-time format should be in timestamps format -->
+ <pubDate>1287496800</pubDate>
+ <!-- the architecture code of this plugin, found PlatformMacro.h into ultracopier source -->
+ <architecture>windows-x86</architecture>
+ <!-- Detailed description -->
+ <description xml:lang="en"><![CDATA[Supercopier style for Ultracopier]]></description>
+ <description xml:lang="fr"><![CDATA[Style Supercopier pour Ultracopier]]></description>
+ <!-- Version of this release of this plugin, need be like that's: A.B.C.D, where A, B, C and D is number -->
+ <version>1.2.3.6</version>
+ <!-- This internal name should never change, because it is used to detect when a particular plugin is updated. It must comprise only lower case ASCII characters (a-z), numerical digits (0-9), "-", "." or "_", and it must be be unique within the category. And have size lower than 64 char. -->
+ <name>Supercopier</name>
+ <!-- Dependency checking. This is used to check when a plugin may not be compatible with an updated version of either Ultracopier or another plugin. This example only checks Ultracopier. -->
+ <dependencies><![CDATA[
+ ]]></dependencies>
+</package> \ No newline at end of file
diff --git a/plugins-alternative/Themes/Supercopier/interface.cpp b/plugins-alternative/Themes/Supercopier/interface.cpp
new file mode 100644
index 0000000..7af05e8
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/interface.cpp
@@ -0,0 +1,1332 @@
+/** \file interface.cpp
+\brief Define the interface core
+\author alpha_one_x86
+*/
+
+#include <QMessageBox>
+#include <QMimeData>
+#include <QScrollArea>
+#include <QColorDialog>
+#include <QRect>
+#include <QPainter>
+#include <cmath>
+#ifdef Q_OS_WIN
+ #ifndef NOMINMAX
+ #define NOMINMAX
+ #endif
+ #include <windows.h>
+#endif
+
+#include "interface.h"
+#include "ui_interface.h"
+#include "factory.h"
+
+// The cmath header from MSVC does not contain round()
+#if (defined(_WIN64) || defined(_WIN32)) && defined(_MSC_VER)
+inline double round(double d) {
+ return floor( d + 0.5 );
+}
+#endif
+
+QIcon Themes::player_pause=QIcon(QStringLiteral(":/Themes/Supercopier/resources/player_pause.png"));
+QIcon Themes::player_play=QIcon(QStringLiteral(":/Themes/Supercopier/resources/player_play.png"));
+
+Themes::Themes(const bool &alwaysOnTop,
+ const bool &showProgressionInTheTitle,
+ const QColor &progressColorWrite,
+ const QColor &progressColorRead,
+ const QColor &progressColorRemaining,
+ const bool &showDualProgression,
+ const quint8 &comboBox_copyEnd,
+ const bool &speedWithProgressBar,
+ const qint32 &currentSpeed,
+ const bool &checkBoxShowSpeed,
+ FacilityInterface * facilityEngine,
+ const bool &moreButtonPushed,
+ const bool &minimizeToSystray) :
+ ui(new Ui::interfaceCopy()),
+ uiOptions(new Ui::themesOptions())
+{
+ this->facilityEngine=facilityEngine;
+ ui->setupUi(this);
+ uiOptions->setupUi(ui->optionsTab);
+
+ currentFile = 0;
+ totalFile = 0;
+ currentSize = 0;
+ totalSize = 0;
+ getOldProgression = 200;
+ haveError = false;
+ stat = status_never_started;
+ modeIsForced = false;
+ haveStarted = false;
+ storeIsInPause = false;
+ durationStarted = false;
+
+ this->progressColorWrite = progressColorWrite;
+ this->progressColorRead = progressColorRead;
+ this->progressColorRemaining= progressColorRemaining;
+ this->currentSpeed = currentSpeed;
+ uiOptions->showProgressionInTheTitle->setChecked(showProgressionInTheTitle);
+ uiOptions->speedWithProgressBar->setChecked(speedWithProgressBar);
+ uiOptions->showDualProgression->setChecked(showDualProgression);
+ uiOptions->alwaysOnTop->setChecked(alwaysOnTop);
+ uiOptions->minimizeToSystray->setChecked(minimizeToSystray);
+ //uiOptions->setupUi(ui->tabWidget->widget(ui->tabWidget->count()-1));
+ uiOptions->labelStartWithMoreButtonPushed->setVisible(false);
+ uiOptions->checkBoxStartWithMoreButtonPushed->setVisible(false);
+ uiOptions->label_Slider_speed->setVisible(false);
+ uiOptions->SliderSpeed->setVisible(false);
+ uiOptions->label_SpeedMaxValue->setVisible(false);
+ uiOptions->comboBox_copyEnd->setCurrentIndex(comboBox_copyEnd);
+ speedWithProgressBar_toggled(speedWithProgressBar);
+ showDualProgression_toggled(showDualProgression);
+ QPixmap pixmap(75,20);
+ pixmap.fill(progressColorWrite);
+ uiOptions->progressColorWrite->setIcon(pixmap);
+ pixmap.fill(progressColorRead);
+ uiOptions->progressColorRead->setIcon(pixmap);
+ pixmap.fill(progressColorRemaining);
+ uiOptions->progressColorRemaining->setIcon(pixmap);
+
+ transferModel.setFacilityEngine(facilityEngine);
+ ui->TransferList->setModel(&transferModel);
+ ui->tabWidget->setCurrentIndex(0);
+ uiOptions->toolBox->setCurrentIndex(0);
+ uiOptions->checkBoxShowSpeed->setChecked(checkBoxShowSpeed);
+ menu=new QMenu(this);
+ ui->add->setMenu(menu);
+
+ #ifdef Q_OS_WIN32
+ pixmapTop=QPixmap(":/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.png");
+ pixmapBottom=QPixmap(":/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png");
+ #else
+ pixmapTop=QPixmap(":/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.png");
+ pixmapBottom=QPixmap(":/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png");
+ #endif
+
+ //connect the options
+ checkBoxShowSpeed_toggled(uiOptions->checkBoxShowSpeed->isChecked());
+ connect(uiOptions->checkBoxShowSpeed,&QCheckBox::stateChanged,this,&Themes::checkBoxShowSpeed_toggled);
+ connect(uiOptions->speedWithProgressBar,&QCheckBox::stateChanged,this,&Themes::speedWithProgressBar_toggled);
+ connect(uiOptions->showProgressionInTheTitle,&QCheckBox::stateChanged,this,&Themes::updateTitle);
+ connect(uiOptions->showDualProgression,&QCheckBox::stateChanged,this,&Themes::showDualProgression_toggled);
+ connect(uiOptions->progressColorWrite,&QAbstractButton::clicked,this,&Themes::progressColorWrite_clicked);
+ connect(uiOptions->progressColorRead, &QAbstractButton::clicked,this,&Themes::progressColorRead_clicked);
+ connect(uiOptions->progressColorRemaining,&QAbstractButton::clicked,this,&Themes::progressColorRemaining_clicked);
+ connect(uiOptions->alwaysOnTop,&QAbstractButton::clicked,this,&Themes::alwaysOnTop_clickedSlot);
+
+ isInPause(false);
+
+ connect(uiOptions->limitSpeed, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &Themes::uiUpdateSpeed);
+ connect(uiOptions->checkBox_limitSpeed,&QAbstractButton::toggled, this, &Themes::uiUpdateSpeed);
+
+ connect(ui->actionAddFile,&QAction::triggered,this,&Themes::forcedModeAddFile);
+ connect(ui->actionAddFileToCopy,&QAction::triggered,this,&Themes::forcedModeAddFileToCopy);
+ connect(ui->actionAddFileToMove,&QAction::triggered,this,&Themes::forcedModeAddFileToMove);
+ connect(ui->actionAddFolderToCopy,&QAction::triggered,this,&Themes::forcedModeAddFolderToCopy);
+ connect(ui->actionAddFolderToMove,&QAction::triggered,this,&Themes::forcedModeAddFolderToMove);
+ connect(ui->actionAddFolder,&QAction::triggered,this,&Themes::forcedModeAddFolder);
+ connect(ui->exportErrorToTransferList,&QToolButton::triggered,this,&Themes::exportErrorIntoTransferList);
+
+ //setup the search part
+ closeTheSearchBox();
+ TimerForSearch = new QTimer(this);
+ TimerForSearch->setInterval(500);
+ TimerForSearch->setSingleShot(true);
+ searchShortcut = new QShortcut(QKeySequence(QKeySequence::Find),this);
+ searchShortcut2 = new QShortcut(QKeySequence(QKeySequence::FindNext),this);
+ searchShortcut3 = new QShortcut(QKeySequence(Qt::Key_Escape),this);
+
+ //connect the search part
+ connect(TimerForSearch, &QTimer::timeout, this, &Themes::hilightTheSearchSlot);
+ connect(searchShortcut, &QShortcut::activated, this, &Themes::searchBoxShortcut);
+ connect(searchShortcut2, &QShortcut::activated, this, &Themes::on_pushButtonSearchNext_clicked);
+ connect(ui->pushButtonCloseSearch, &QPushButton::clicked, this, &Themes::closeTheSearchBox);
+ connect(searchShortcut3, &QShortcut::activated, this, &Themes::closeTheSearchBox);
+
+ //reload directly untranslatable text
+ newLanguageLoaded();
+
+ //unpush the more button
+ ui->moreButton->setChecked(moreButtonPushed);
+ on_moreButton_toggled(moreButtonPushed);
+
+ /// \note important for drag and drop, \see dropEvent()
+ setAcceptDrops(true);
+
+ shutdown=facilityEngine->haveFunctionality(QStringLiteral("shutdown"));
+ ui->shutdown->setVisible(shutdown);
+
+ selectionModel=ui->TransferList->selectionModel();
+
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ connect(&transferModel,&TransferModel::debugInformation,this,&Themes::debugInformation);
+ #endif
+
+ updateSpeed();
+ alwaysOnTop_clicked(false);
+ /*#ifdef Q_OS_WIN32
+ uiOptions->labelAlwaysOnTop->hide();
+ uiOptions->alwaysOnTop->hide();
+ #endif*/
+ #ifdef ULTRACOPIER_VERSION_ULTIMATE
+ ui->ad_ultimate->hide();
+ #else
+ QString ultimateUrl=facilityEngine->ultimateUrl();
+ if(ultimateUrl.isEmpty())
+ ui->ad_ultimate->hide();
+ else
+ ui->ad_ultimate->setText(QStringLiteral("<a href=\"%1\">%2</a>").arg(ultimateUrl).arg(tr("Buy the Ultimate version to fund development")));
+ #endif
+
+ uiOptions->labelDualProgression->hide();
+ uiOptions->showDualProgression->hide();
+ ui->progressBar_all->setMaximumHeight(17);
+ ui->progressBar_file->setMaximumHeight(17);
+ ui->progressBarCurrentSpeed->setMaximumHeight(17);
+ ui->progressBar_all->setMinimumHeight(17);
+ ui->progressBar_file->setMinimumHeight(17);
+ ui->progressBarCurrentSpeed->setMinimumHeight(17);
+ ui->progressBar_all->setStyleSheet(QStringLiteral("QProgressBar{color:#fff;font-weight:bold;border:1px solid black;text-align:center;background-image:url(:/Themes/Supercopier/resources/progressbarright.png);}QProgressBar::chunk{background-image: url(:/Themes/Supercopier/resources/progressbarleft.png);}"));
+ ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{color:#fff;font-weight:bold;border:1px solid black;text-align:center;background-image:url(:/Themes/Supercopier/resources/progressbarright.png);}QProgressBar::chunk{background-image: url(:/Themes/Supercopier/resources/progressbarleft.png);}"));
+ ui->progressBarCurrentSpeed->setStyleSheet(QStringLiteral("QProgressBar{color:#fff;font-weight:bold;border:1px solid black;text-align:center;background-image:url(:/Themes/Supercopier/resources/progressbarright.png);}QProgressBar::chunk{background-image: url(:/Themes/Supercopier/resources/progressbarleft.png);}"));
+
+ show();
+
+ sysTrayIcon = new QSystemTrayIcon(this);
+ connect(sysTrayIcon,&QSystemTrayIcon::activated,this,&Themes::catchAction);
+}
+
+Themes::~Themes()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ //disconnect(ui->actionAddFile);
+ //disconnect(ui->actionAddFolder);
+ delete selectionModel;
+ delete menu;
+ delete sysTrayIcon;
+}
+
+QWidget * Themes::getOptionsEngineWidget()
+{
+ return &optionEngineWidget;
+}
+
+void Themes::getOptionsEngineEnabled(const bool &isEnabled)
+{
+ if(isEnabled)
+ {
+ QScrollArea *scrollArea=new QScrollArea(ui->tabWidget);
+ scrollArea->setWidgetResizable(true);
+ scrollArea->setWidget(&optionEngineWidget);
+ ui->tabWidget->addTab(scrollArea,facilityEngine->translateText(QStringLiteral("Copy engine")));
+ }
+}
+
+void Themes::closeEvent(QCloseEvent *event)
+{
+ event->ignore();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ this->hide();
+ if(uiOptions->minimizeToSystray->isChecked())
+ {
+ updateSysTrayIcon();
+ sysTrayIcon->show();
+ }
+ else
+ emit cancel();
+}
+
+void Themes::updateSysTrayIcon()
+{
+ if(totalSize==0)
+ {
+ sysTrayIcon->setIcon(dynaIcon(0,QStringLiteral("-")));
+ return;
+ }
+ quint64 currentNew=currentSize*100;
+ //update systray icon
+ quint16 getVarProgression=currentNew/totalSize;
+ if(getOldProgression!=getVarProgression)
+ {
+ getOldProgression=getVarProgression;
+ sysTrayIcon->setIcon(dynaIcon(getVarProgression));
+ }
+}
+
+void Themes::updateOverallInformation()
+{
+ if(uiOptions->showProgressionInTheTitle->isChecked())
+ updateTitle();
+ ui->overall->setText(tr("File %1/%2, size: %3/%4").arg(currentFile).arg(totalFile).arg(facilityEngine->sizeToString(currentSize)).arg(facilityEngine->sizeToString(totalSize)));
+}
+
+void Themes::actionInProgess(const Ultracopier::EngineActionInProgress &action)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,QStringLiteral("start: ")+QString::number(action));
+ this->action=action;
+ switch(action)
+ {
+ case Ultracopier::Copying:
+ case Ultracopier::CopyingAndListing:
+ ui->progressBar_all->setMaximum(65535);
+ ui->progressBar_all->setMinimum(0);
+ break;
+ case Ultracopier::Listing:
+ ui->progressBar_all->setMaximum(0);
+ ui->progressBar_all->setMinimum(0);
+ break;
+ case Ultracopier::Idle:
+ ui->progressBar_all->setMaximum(65535);
+ ui->progressBar_all->setMinimum(0);
+ if(haveStarted && transferModel.rowCount()<=0)
+ {
+ if(shutdown && ui->shutdown->isChecked())
+ {
+ facilityEngine->callFunctionality(QStringLiteral("shutdown"));
+ return;
+ }
+ switch(uiOptions->comboBox_copyEnd->currentIndex())
+ {
+ case 2:
+ emit cancel();
+ break;
+ case 0:
+ if(!haveError)
+ emit cancel();
+ else
+ ui->tabWidget->setCurrentWidget(ui->tab_error);
+ break;
+ default:
+ break;
+ }
+ stat = status_stopped;
+ if(durationStarted)
+ {
+ Ultracopier::TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(duration.elapsed()/1000);
+ ui->labelTimeRemaining->setText(QStringLiteral("<html><body style=\"white-space:nowrap;\">")+facilityEngine->translateText(QStringLiteral("Completed in %1")).arg(
+ QString::number(time.hour)+QStringLiteral(":")+QString::number(time.minute).rightJustified(2,'0')+QStringLiteral(":")+QString::number(time.second).rightJustified(2,'0')
+ )+QStringLiteral("</body></html>"));
+ }
+ }
+ break;
+ default:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"Very wrong switch case!");
+ break;
+ }
+ switch(action)
+ {
+ case Ultracopier::Copying:
+ case Ultracopier::CopyingAndListing:
+ ui->pauseButton->setEnabled(true);
+ if(!durationStarted)
+ {
+ duration.start();
+ durationStarted=true;
+ }
+ haveStarted=true;
+ ui->cancelButton->setText(facilityEngine->translateText(QStringLiteral("Quit")));
+ updatePause();
+ break;
+ case Ultracopier::Listing:
+ ui->pauseButton->setEnabled(false);
+ haveStarted=true;//to close if skip at root folder collision
+ break;
+ case Ultracopier::Idle:
+ ui->pauseButton->setEnabled(false);
+ break;
+ default:
+ break;
+ }
+}
+
+void Themes::newFolderListing(const QString &path)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ QString newPath=path;
+ if(newPath.size()>(64+3))
+ newPath=newPath.mid(0,32)+QStringLiteral("...")+newPath.mid(newPath.size()-32,32);
+ if(action==Ultracopier::Listing)
+ ui->from->setText(newPath);
+}
+
+void Themes::detectedSpeed(const quint64 &speed)//in byte per seconds
+{
+ if(uiOptions->speedWithProgressBar->isChecked())
+ {
+ quint64 tempSpeed=speed;
+ if(tempSpeed>999999999)
+ tempSpeed=999999999;
+ if(tempSpeed>(quint64)ui->progressBarCurrentSpeed->maximum())
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("set max speed to: %1").arg(tempSpeed));
+ ui->progressBarCurrentSpeed->setMaximum(tempSpeed);
+ }
+ ui->progressBarCurrentSpeed->setValue(tempSpeed);
+ ui->progressBarCurrentSpeed->setFormat(facilityEngine->speedToString(speed));
+ }
+ else
+ ui->currentSpeed->setText(facilityEngine->speedToString(speed));
+}
+
+void Themes::remainingTime(const int &remainingSeconds)
+{
+ QString labelTimeRemaining(QStringLiteral("<html><body style=\"white-space:nowrap;\">")+facilityEngine->translateText(QStringLiteral("Time remaining:"))+QStringLiteral(" "));
+ if(remainingSeconds==-1)
+ labelTimeRemaining+=QStringLiteral("&#8734;");
+ else
+ {
+ Ultracopier::TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(remainingSeconds);
+ labelTimeRemaining+=QString::number(time.hour)+QStringLiteral(":")+QString::number(time.minute).rightJustified(2,'0')+QStringLiteral(":")+QString::number(time.second).rightJustified(2,'0');
+ }
+ labelTimeRemaining+=QStringLiteral("</body></html>");
+ ui->labelTimeRemaining->setText(labelTimeRemaining);
+}
+
+void Themes::errorDetected()
+{
+ haveError=true;
+}
+
+/// \brief new error
+void Themes::errorToRetry(const QString &source,const QString &destination,const QString &error)
+{
+ ui->errorList->addTopLevelItem(new QTreeWidgetItem(QStringList() << source << destination << error));
+}
+
+/** \brief support speed limitation */
+void Themes::setSupportSpeedLimitation(const bool &supportSpeedLimitationBool)
+{
+ if(!supportSpeedLimitationBool)
+ {
+ ui->label_Slider_speed->setVisible(false);
+ ui->SliderSpeed->setVisible(false);
+ ui->label_SpeedMaxValue->setVisible(false);
+ uiOptions->labelShowSpeedAsMain->setVisible(false);
+ uiOptions->checkBoxShowSpeed->setVisible(false);
+ }
+ else
+ emit newSpeedLimitation(currentSpeed);
+}
+
+//get information about the copy
+void Themes::setGeneralProgression(const quint64 &current,const quint64 &total)
+{
+ currentSize=current;
+ totalSize=total;
+ if(total>0)
+ {
+ int newIndicator=((double)current/total)*65535;
+ ui->progressBar_all->setValue(newIndicator);
+ }
+ else
+ ui->progressBar_all->setValue(0);
+ if(current>0)
+ stat = status_started;
+ updateOverallInformation();
+ if(isHidden())
+ updateSysTrayIcon();
+}
+
+void Themes::setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList)
+{
+ QList<Ultracopier::ProgressionItem> progressionListBis=progressionList;
+ transferModel.setFileProgression(progressionListBis);
+ updateCurrentFileInformation();
+}
+
+//edit the transfer list
+/// \todo check and re-enable to selection
+void Themes::getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start, returnActions.size(): ")+QString::number(returnActions.size()));
+ QList<quint64> returnValue=transferModel.synchronizeItems(returnActions);
+ totalFile+=returnValue.first();
+ totalSize+=returnValue.at(1);
+ currentFile+=returnValue.last();
+ if(transferModel.rowCount()==0)
+ {
+ ui->skipButton->setEnabled(false);
+ ui->progressBar_all->setValue(65535);
+ ui->progressBar_file->setValue(65535);
+ currentSize=totalSize;
+ if(isHidden())
+ updateSysTrayIcon();
+ }
+ else
+ ui->skipButton->setEnabled(true);
+ updateOverallInformation();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("transferModel.rowCount(): ")+QString::number(transferModel.rowCount()));
+}
+
+void Themes::setCopyType(const Ultracopier::CopyType &type)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ this->type=type;
+ updateModeAndType();
+}
+
+void Themes::forceCopyMode(const Ultracopier::CopyMode &mode)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ modeIsForced=true;
+ this->mode=mode;
+ if(mode==Ultracopier::Copy)
+ ui->tabWidget->setTabText(0,tr("Copy list"));
+ else
+ ui->tabWidget->setTabText(0,tr("Move list"));
+ updateModeAndType();
+ updateTitle();
+}
+
+void Themes::setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation)
+{
+ ui->exportTransferList->setVisible(transferListOperation & Ultracopier::TransferListOperation_Export);
+ ui->importTransferList->setVisible(transferListOperation & Ultracopier::TransferListOperation_Import);
+}
+
+void Themes::haveExternalOrder()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+// ui->moreButton->toggle();
+}
+
+void Themes::isInPause(const bool &isInPause)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("isInPause: ")+QString::number(isInPause));
+ //resume in auto the pause
+ storeIsInPause=isInPause;
+ updatePause();
+}
+
+void Themes::updatePause()
+{
+ if(storeIsInPause)
+ {
+ ui->pauseButton->setIcon(player_play);
+ if(stat == status_started)
+ ui->pauseButton->setText(facilityEngine->translateText(QStringLiteral("Resume")));
+ else
+ ui->pauseButton->setText(facilityEngine->translateText(QStringLiteral("Start")));
+ }
+ else
+ {
+ ui->pauseButton->setIcon(player_pause);
+ ui->pauseButton->setText(facilityEngine->translateText(QStringLiteral("Pause")));
+ }
+}
+
+void Themes::updateCurrentFileInformation()
+{
+ TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem();
+ if(transfertItem.haveItem)
+ {
+ QString newPath=transfertItem.from;
+ if(newPath.size()>(64+3))
+ newPath=newPath.mid(0,32)+QStringLiteral("...")+newPath.mid(newPath.size()-32,32);
+ ui->from->setText(newPath);
+ newPath=transfertItem.to;
+ if(newPath.size()>(64+3))
+ newPath=newPath.mid(0,32)+QStringLiteral("...")+newPath.mid(newPath.size()-32,32);
+ ui->to->setText(newPath);
+ ui->current_file->setText(transfertItem.current_file);
+ if(transfertItem.progressBar_read!=-1)
+ {
+ ui->progressBar_file->setRange(0,65535);
+ if(uiOptions->showDualProgression->isChecked())
+ {
+ if(transfertItem.progressBar_read!=transfertItem.progressBar_write)
+ {
+ float permilleread=round((float)transfertItem.progressBar_read/65535*1000)/1000;
+ float permillewrite=permilleread-0.001;
+ ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border: 1px solid grey;text-align: center;background-color: qlineargradient(spread:pad, x1:%1, y1:0, x2:%2, y2:0, stop:0 %3, stop:1 %4);}QProgressBar::chunk{background-color:%5;}")
+ .arg(permilleread)
+ .arg(permillewrite)
+ .arg(progressColorRemaining.name())
+ .arg(progressColorRead.name())
+ .arg(progressColorWrite.name())
+ );
+ }
+ else
+ ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}")
+ .arg(progressColorRemaining.name())
+ .arg(progressColorWrite.name())
+ );
+ ui->progressBar_file->setValue(transfertItem.progressBar_write);
+ }
+ else
+ ui->progressBar_file->setValue((transfertItem.progressBar_read+transfertItem.progressBar_write)/2);
+ }
+ else
+ ui->progressBar_file->setRange(0,0);
+ }
+ else
+ {
+ ui->from->setText(QStringLiteral(""));
+ ui->to->setText(QStringLiteral(""));
+ ui->current_file->setText(QStringLiteral("-"));
+ if(haveStarted && transferModel.rowCount()==0)
+ ui->progressBar_file->setValue(65535);
+ else if(!haveStarted)
+ ui->progressBar_file->setValue(0);
+ }
+}
+
+
+void Themes::on_putOnTop_clicked()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ selectedItems=selectionModel->selectedRows();
+ QList<int> ids;
+ int index=0;
+ const int &loop_size=selectedItems.size();
+ while(index<loop_size)
+ {
+ ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong();
+ index++;
+ }
+ if(ids.size()>0)
+ emit moveItemsOnTop(ids);
+}
+
+void Themes::on_pushUp_clicked()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ selectedItems=selectionModel->selectedRows();
+ QList<int> ids;
+ int index=0;
+ const int &loop_size=selectedItems.size();
+ while(index<loop_size)
+ {
+ ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong();
+ index++;
+ }
+ if(ids.size()>0)
+ emit moveItemsUp(ids);
+}
+
+void Themes::on_pushDown_clicked()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ selectedItems=selectionModel->selectedRows();
+ QList<int> ids;
+ int index=0;
+ const int &loop_size=selectedItems.size();
+ while(index<loop_size)
+ {
+ ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong();
+ index++;
+ }
+ if(ids.size()>0)
+ emit moveItemsDown(ids);
+}
+
+void Themes::on_putOnBottom_clicked()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ selectedItems=selectionModel->selectedRows();
+ QList<int> ids;
+ int index=0;
+ const int &loop_size=selectedItems.size();
+ while(index<loop_size)
+ {
+ ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong();
+ index++;
+ }
+ if(ids.size()>0)
+ emit moveItemsOnBottom(ids);
+}
+
+void Themes::on_del_clicked()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ selectedItems=selectionModel->selectedRows();
+ QList<int> ids;
+ int index=0;
+ const int &loop_size=selectedItems.size();
+ while(index<loop_size)
+ {
+ ids << transferModel.data(selectedItems.at(index),Qt::UserRole).toULongLong();
+ index++;
+ }
+ if(ids.size()>0)
+ emit removeItems(ids);
+}
+
+void Themes::on_cancelButton_clicked()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ this->hide();
+ emit cancel();
+}
+
+
+void Themes::speedWithProgressBar_toggled(bool checked)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ ui->progressBarCurrentSpeed->setVisible(checked);
+ ui->currentSpeed->setVisible(!checked);
+}
+
+void Themes::showDualProgression_toggled(bool checked)
+{
+ Q_UNUSED(checked);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ updateProgressionColorBar();
+}
+
+void Themes::checkBoxShowSpeed_toggled(bool checked)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ Q_UNUSED(checked);
+ updateSpeed();
+}
+
+void Themes::on_SliderSpeed_valueChanged(int value)
+{
+ if(!uiOptions->checkBoxShowSpeed->isChecked())
+ return;
+ switch(value)
+ {
+ case 0:
+ currentSpeed=0;
+ break;
+ case 1:
+ currentSpeed=1024;
+ break;
+ case 2:
+ currentSpeed=1024*4;
+ break;
+ case 3:
+ currentSpeed=1024*16;
+ break;
+ case 4:
+ currentSpeed=1024*64;
+ break;
+ case 5:
+ currentSpeed=1024*128;
+ break;
+ }
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("value: %1").arg(value));
+ emit newSpeedLimitation(currentSpeed);
+ updateSpeed();
+}
+
+void Themes::uiUpdateSpeed()
+{
+ if(uiOptions->checkBoxShowSpeed->isChecked())
+ return;
+ if(!uiOptions->checkBox_limitSpeed->isChecked())
+ currentSpeed=0;
+ else
+ currentSpeed=uiOptions->limitSpeed->value();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("emit newSpeedLimitation(%1)").arg(currentSpeed));
+ emit newSpeedLimitation(currentSpeed);
+}
+
+void Themes::updateSpeed()
+{
+ ui->label_Slider_speed->setVisible(uiOptions->checkBoxShowSpeed->isChecked());
+ ui->SliderSpeed->setVisible(uiOptions->checkBoxShowSpeed->isChecked());
+ ui->label_SpeedMaxValue->setVisible(uiOptions->checkBoxShowSpeed->isChecked());
+ uiOptions->limitSpeed->setVisible(!uiOptions->checkBoxShowSpeed->isChecked());
+ uiOptions->checkBox_limitSpeed->setVisible(!uiOptions->checkBoxShowSpeed->isChecked());
+
+ if(uiOptions->checkBoxShowSpeed->isChecked())
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("checked, currentSpeed: %1").arg(currentSpeed));
+ uiOptions->limitSpeed->setEnabled(false);
+ if(currentSpeed==0)
+ {
+ ui->SliderSpeed->setValue(0);
+ ui->label_SpeedMaxValue->setText(facilityEngine->translateText(QStringLiteral("Unlimited")));
+ }
+ else if(currentSpeed<=1024)
+ {
+ if(currentSpeed!=1024)
+ {
+ currentSpeed=1024;
+ emit newSpeedLimitation(currentSpeed);
+ }
+ ui->SliderSpeed->setValue(1);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*1));
+ }
+ else if(currentSpeed<=1024*4)
+ {
+ if(currentSpeed!=1024*4)
+ {
+ currentSpeed=1024*4;
+ emit newSpeedLimitation(currentSpeed);
+ }
+ ui->SliderSpeed->setValue(2);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*4));
+ }
+ else if(currentSpeed<=1024*16)
+ {
+ if(currentSpeed!=1024*16)
+ {
+ currentSpeed=1024*16;
+ emit newSpeedLimitation(currentSpeed);
+ }
+ ui->SliderSpeed->setValue(3);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*16));
+ }
+ else if(currentSpeed<=1024*64)
+ {
+ if(currentSpeed!=1024*64)
+ {
+ currentSpeed=1024*64;
+ emit newSpeedLimitation(currentSpeed);
+ }
+ ui->SliderSpeed->setValue(4);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*64));
+ }
+ else
+ {
+ if(currentSpeed!=1024*128)
+ {
+ currentSpeed=1024*128;
+ emit newSpeedLimitation(currentSpeed);
+ }
+ ui->SliderSpeed->setValue(5);
+ ui->label_SpeedMaxValue->setText(facilityEngine->speedToString((double)(1024*1024)*128));
+ }
+ }
+ else
+ {
+ uiOptions->checkBox_limitSpeed->setChecked(currentSpeed>0);
+ if(currentSpeed>0)
+ uiOptions->limitSpeed->setValue(currentSpeed);
+ uiOptions->checkBox_limitSpeed->setEnabled(currentSpeed!=-1);
+ uiOptions->limitSpeed->setEnabled(uiOptions->checkBox_limitSpeed->isChecked());
+ }
+}
+
+void Themes::on_pauseButton_clicked()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ if(storeIsInPause)
+ emit resume();
+ else
+ emit pause();
+}
+
+void Themes::on_skipButton_clicked()
+{
+ TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem();
+ if(transfertItem.haveItem)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("skip at running: %1").arg(transfertItem.id));
+ emit skip(transfertItem.id);
+ }
+ else
+ {
+ if(transferModel.rowCount()>1)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("skip at idle: %1").arg(transferModel.firstId()));
+ emit skip(transferModel.firstId());
+ }
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"unable to skip the transfer, because no transfer running");
+ }
+}
+
+void Themes::updateModeAndType()
+{
+ menu->clear();
+ if(modeIsForced)
+ {
+ menu->addAction(ui->actionAddFile);
+ if(type==Ultracopier::FileAndFolder)
+ menu->addAction(ui->actionAddFolder);
+ }
+ else
+ {
+ menu->addAction(ui->actionAddFileToCopy);
+ menu->addAction(ui->actionAddFileToMove);
+ if(type==Ultracopier::FileAndFolder)
+ {
+ menu->addAction(ui->actionAddFolderToCopy);
+ menu->addAction(ui->actionAddFolderToMove);
+ }
+ }
+}
+
+void Themes::forcedModeAddFile()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ emit userAddFile(mode);
+}
+
+void Themes::forcedModeAddFolder()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ emit userAddFolder(mode);
+}
+
+void Themes::forcedModeAddFileToCopy()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ emit userAddFile(Ultracopier::Copy);
+}
+
+void Themes::forcedModeAddFolderToCopy()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ emit userAddFolder(Ultracopier::Copy);
+}
+
+void Themes::forcedModeAddFileToMove()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ emit userAddFile(Ultracopier::Move);
+}
+
+void Themes::forcedModeAddFolderToMove()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ emit userAddFolder(Ultracopier::Move);
+}
+
+void Themes::newLanguageLoaded()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ if(modeIsForced)
+ forceCopyMode(mode);
+ ui->retranslateUi(this);
+ uiOptions->retranslateUi(this);
+ uiOptions->comboBox_copyEnd->setItemText(0,tr("Don't close if errors are found"));
+ uiOptions->comboBox_copyEnd->setItemText(1,tr("Never close"));
+ uiOptions->comboBox_copyEnd->setItemText(2,tr("Always close"));
+ if(!haveStarted)
+ ui->current_file->setText(tr("File Name, 0KB"));
+ else
+ updateCurrentFileInformation();
+ updateOverallInformation();
+ updateSpeed();
+ if(ui->tabWidget->count()>=4)
+ ui->tabWidget->setTabText(ui->tabWidget->count()-1,facilityEngine->translateText(QStringLiteral("Copy engine")));
+ on_moreButton_toggled(ui->moreButton->isChecked());
+}
+
+void Themes::on_pushButtonCloseSearch_clicked()
+{
+ closeTheSearchBox();
+}
+
+//close the search box
+void Themes::closeTheSearchBox()
+{
+ currentIndexSearch = -1;
+ ui->lineEditSearch->clear();
+ ui->lineEditSearch->hide();
+ ui->pushButtonSearchPrev->hide();
+ ui->pushButtonSearchNext->hide();
+ ui->pushButtonCloseSearch->hide();
+ ui->searchButton->setChecked(false);
+ hilightTheSearch();
+}
+
+//search box shortcut
+void Themes::searchBoxShortcut()
+{
+/* if(ui->lineEditSearch->isHidden())
+ {*/
+ ui->lineEditSearch->show();
+ ui->pushButtonSearchPrev->show();
+ ui->pushButtonSearchNext->show();
+ ui->pushButtonCloseSearch->show();
+ ui->lineEditSearch->setFocus(Qt::ShortcutFocusReason);
+ ui->searchButton->setChecked(true);
+/* }
+ else
+ closeTheSearchBox();*/
+}
+
+//hilight the search
+void Themes::hilightTheSearch(bool searchNext)
+{
+ int result=transferModel.search(ui->lineEditSearch->text(),searchNext);
+ if(ui->lineEditSearch->text().isEmpty())
+ ui->lineEditSearch->setStyleSheet("");
+ else
+ {
+ if(result==-1)
+ ui->lineEditSearch->setStyleSheet(QStringLiteral("background-color: rgb(255, 150, 150);"));
+ else
+ {
+ ui->lineEditSearch->setStyleSheet(QStringLiteral("background-color: rgb(193,255,176);"));
+ ui->TransferList->scrollTo(transferModel.index(result,0));
+ }
+ }
+}
+
+void Themes::hilightTheSearchSlot()
+{
+ hilightTheSearch();
+}
+
+void Themes::on_pushButtonSearchPrev_clicked()
+{
+ int result=transferModel.searchPrev(ui->lineEditSearch->text());
+ if(ui->lineEditSearch->text().isEmpty())
+ ui->lineEditSearch->setStyleSheet("");
+ else
+ {
+ if(result==-1)
+ ui->lineEditSearch->setStyleSheet(QStringLiteral("background-color: rgb(255, 150, 150);"));
+ else
+ {
+ ui->lineEditSearch->setStyleSheet(QStringLiteral("background-color: rgb(193,255,176);"));
+ ui->TransferList->scrollTo(transferModel.index(result,0));
+ }
+ }
+}
+
+void Themes::on_pushButtonSearchNext_clicked()
+{
+ hilightTheSearch(true);
+}
+
+void Themes::on_lineEditSearch_returnPressed()
+{
+ hilightTheSearch();
+}
+
+void Themes::on_lineEditSearch_textChanged(QString text)
+{
+ if(text=="")
+ {
+ TimerForSearch->stop();
+ hilightTheSearch();
+ }
+ else
+ TimerForSearch->start();
+}
+
+void Themes::on_moreButton_toggled(bool checked)
+{
+ if(checked)
+ this->setMaximumHeight(16777215);
+ else
+ this->setMaximumHeight(130);
+ // usefull under windows
+ this->updateGeometry();
+ this->update();
+ this->adjustSize();
+}
+
+/* drag event processing
+
+need setAcceptDrops(true); into the constructor
+need implementation to accept the drop:
+void dragEnterEvent(QDragEnterEvent* event);
+void dragMoveEvent(QDragMoveEvent* event);
+void dragLeaveEvent(QDragLeaveEvent* event);
+*/
+void Themes::dropEvent(QDropEvent *event)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ const QMimeData* mimeData = event->mimeData();
+ if(mimeData->hasUrls())
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("hasUrls"));
+ emit urlDropped(mimeData->urls());
+ event->acceptProposedAction();
+ }
+}
+
+void Themes::dragEnterEvent(QDragEnterEvent* event)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ // if some actions should not be usable, like move, this code must be adopted
+ const QMimeData* mimeData = event->mimeData();
+ if(mimeData->hasUrls())
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("hasUrls"));
+ event->acceptProposedAction();
+ }
+}
+
+void Themes::dragMoveEvent(QDragMoveEvent* event)
+{
+ // if some actions should not be usable, like move, this code must be adopted
+ const QMimeData* mimeData = event->mimeData();
+ if(mimeData->hasUrls())
+ event->acceptProposedAction();
+}
+
+void Themes::dragLeaveEvent(QDragLeaveEvent* event)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ event->accept();
+}
+
+void Themes::on_searchButton_toggled(bool checked)
+{
+ if(checked)
+ searchBoxShortcut();
+ else
+ closeTheSearchBox();
+}
+
+void Themes::on_exportTransferList_clicked()
+{
+ emit exportTransferList();
+}
+
+void Themes::on_importTransferList_clicked()
+{
+ emit importTransferList();
+}
+
+void Themes::progressColorWrite_clicked()
+{
+ QColor color=QColorDialog::getColor(progressColorWrite,this,tr("Select a color"));
+ if(!color.isValid())
+ return;
+ progressColorWrite=color;
+ QPixmap pixmap(75,20);
+ pixmap.fill(progressColorWrite);
+ uiOptions->progressColorWrite->setIcon(pixmap);
+ updateProgressionColorBar();
+}
+
+void Themes::progressColorRead_clicked()
+{
+ QColor color=QColorDialog::getColor(progressColorRead,this,tr("Select a color"));
+ if(!color.isValid())
+ return;
+ progressColorRead=color;
+ QPixmap pixmap(75,20);
+ pixmap.fill(progressColorRead);
+ uiOptions->progressColorRead->setIcon(pixmap);
+ updateProgressionColorBar();
+}
+
+void Themes::progressColorRemaining_clicked()
+{
+ QColor color=QColorDialog::getColor(progressColorRemaining,this,tr("Select a color"));
+ if(!color.isValid())
+ return;
+ progressColorRemaining=color;
+ QPixmap pixmap(75,20);
+ pixmap.fill(progressColorRemaining);
+ uiOptions->progressColorRemaining->setIcon(pixmap);
+ updateProgressionColorBar();
+}
+
+void Themes::alwaysOnTop_clicked(bool reshow)
+{
+ Qt::WindowFlags flags = windowFlags();
+ #ifdef Q_OS_WIN32
+ if(uiOptions->alwaysOnTop->isChecked())
+ SetWindowPos((HWND)this->winId(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
+ else
+ SetWindowPos((HWND)this->winId(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
+ #endif
+ #ifdef Q_OS_LINUX
+ if(uiOptions->alwaysOnTop->isChecked())
+ flags=flags | Qt::X11BypassWindowManagerHint;
+ else
+ flags=flags & ~Qt::X11BypassWindowManagerHint;
+ #endif
+ if(uiOptions->alwaysOnTop->isChecked())
+ flags=flags | Qt::WindowStaysOnTopHint;
+ else
+ flags=flags & ~Qt::WindowStaysOnTopHint;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"uiOptions->alwaysOnTop->isChecked(): "+QString::number(uiOptions->alwaysOnTop->isChecked())+", flags: "+QString::number(flags));
+ setWindowFlags(flags);
+ if(reshow)
+ show();
+}
+
+void Themes::alwaysOnTop_clickedSlot()
+{
+ alwaysOnTop_clicked(true);
+}
+
+void Themes::updateProgressionColorBar()
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ uiOptions->labelProgressionColor->setVisible(uiOptions->showDualProgression->isChecked());
+ uiOptions->frameProgressionColor->setVisible(uiOptions->showDualProgression->isChecked());
+ if(!uiOptions->showDualProgression->isChecked())
+ {
+ /*ui->progressBar_all->setStyleSheet("");
+ ui->progressBar_file->setStyleSheet("");
+ ui->progressBarCurrentSpeed->setStyleSheet("");*/
+ }
+ else
+ {
+ ui->progressBar_all->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}")
+ .arg(progressColorRemaining.name())
+ .arg(progressColorWrite.name())
+ );
+ ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}")
+ .arg(progressColorRemaining.name())
+ .arg(progressColorWrite.name())
+ );
+ ui->progressBarCurrentSpeed->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}")
+ .arg(progressColorRemaining.name())
+ .arg(progressColorWrite.name())
+ );
+ }
+ if(stat==status_never_started)
+ updateCurrentFileInformation();
+}
+
+void Themes::updateTitle()
+{
+ if(uiOptions->showProgressionInTheTitle->isChecked() && totalSize>0)
+ {
+ if(!modeIsForced)
+ this->setWindowTitle(tr("%1 %2% of %3").arg(facilityEngine->translateText("Transfer")).arg((currentSize*100)/totalSize).arg(facilityEngine->sizeToString(totalSize))+QStringLiteral(" - ")+facilityEngine->softwareName());
+ else
+ {
+ if(mode==Ultracopier::Copy)
+ this->setWindowTitle(tr("%1 %2% of %3").arg(facilityEngine->translateText("Copy")).arg((currentSize*100)/totalSize).arg(facilityEngine->sizeToString(totalSize))+QStringLiteral(" - ")+facilityEngine->softwareName());
+ else
+ this->setWindowTitle(tr("%1 %2% of %3").arg(facilityEngine->translateText("Move")).arg((currentSize*100)/totalSize).arg(facilityEngine->sizeToString(totalSize))+QStringLiteral(" - ")+facilityEngine->softwareName());
+ }
+ }
+ else
+ {
+ if(!modeIsForced)
+ this->setWindowTitle(QStringLiteral("%1").arg(facilityEngine->translateText("Transfer"))+QStringLiteral(" - ")+facilityEngine->softwareName());
+ else
+ {
+ if(mode==Ultracopier::Copy)
+ this->setWindowTitle(QStringLiteral("%1").arg(facilityEngine->translateText("Copy"))+QStringLiteral(" - ")+facilityEngine->softwareName());
+ else
+ this->setWindowTitle(QStringLiteral("%1").arg(facilityEngine->translateText("Move"))+QStringLiteral(" - ")+facilityEngine->softwareName());
+ }
+ }
+}
+
+/** \brief Create progessive icon
+
+Do QIcon with top and bottom image mixed and percent writed on it.
+The icon it be search in the style path.
+Do by mongaulois, remake by alpha_one_x86.
+\param percent indique how many percent need be showed, sould be between 0 and 100
+\param text The showed text if needed (optionnal)
+\return QIcon of the final image
+\note Can be used as it: dynaIcon(75,"...")
+*/
+QIcon Themes::dynaIcon(int percent,QString text) const
+{
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ if(pixmapTop.isNull() || pixmapBottom.isNull())
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Error loading the icons");
+ #endif
+ if(percent==-1)
+ percent=getOldProgression;
+ if(percent<0)
+ percent=0;
+ if(percent>100)
+ percent=100;
+ //pixmap avec un fond transparent
+ #ifdef Q_OS_WIN32
+ quint8 imageSize=16;
+ #else
+ quint8 imageSize=22;
+ #endif
+ QPixmap resultImage(imageSize,imageSize);
+ resultImage.fill(Qt::transparent);
+ {
+ QPainter painter(&resultImage);
+ #ifndef Q_OS_WIN32
+ QFont font(QStringLiteral("Courier New"),9);
+ font.setBold(true);
+ font.setKerning(true);
+ painter.setFont(font);
+ #endif
+ #ifdef Q_OS_WIN32
+ QFont font(QStringLiteral("Courier New"),8);
+ font.setBold(true);
+ font.setKerning(true);
+ painter.setFont(font);
+ #endif
+
+ //preprocessing the calcul
+ quint8 bottomPixel=(percent*imageSize)/100;
+ quint8 topPixel=imageSize-bottomPixel;
+
+ //top image
+ if(topPixel>0)
+ {
+ QRect target(0, 0, imageSize, topPixel);
+ QRect source(0, 0, imageSize, topPixel);
+ painter.drawPixmap(target, pixmapTop, source);
+ }
+
+ //bottom image
+ if(bottomPixel>0)
+ {
+ QRect target2(0, topPixel, imageSize, bottomPixel);
+ QRect source2(0, topPixel, imageSize, bottomPixel);
+ painter.drawPixmap(target2, pixmapBottom, source2);
+ }
+
+ qint8 textxOffset=0;
+ qint8 textyOffset=0;
+ if(text.isEmpty())
+ {
+ if(percent!=100)
+ text=QString::number(percent);
+ else
+ {
+ text=QStringLiteral(":)");
+ #ifdef Q_OS_WIN32
+ textyOffset-=2;
+ #else
+ textyOffset-=1;
+ #endif
+ }
+ }
+ if(text.size()==1)
+ {
+ textxOffset+=3;
+ #ifdef Q_OS_WIN32
+ textxOffset-=1;
+ #endif
+ }
+ else
+ {
+ #ifdef Q_OS_WIN32
+ textxOffset-=1;
+ #endif
+ }
+ #ifndef Q_OS_WIN32
+ textxOffset+=2;
+ textyOffset+=3;
+ #endif
+ painter.setPen(QPen(Qt::black));
+ painter.drawText(3+textxOffset,13+textyOffset,text);
+ painter.setPen(QPen(Qt::white));
+ painter.drawText(2+textxOffset,12+textyOffset,text);
+ }
+ return QIcon(resultImage);
+}
+
+/** \brief For catch an action on the systray icon
+\param reason Why it activated
+*/
+void Themes::catchAction(QSystemTrayIcon::ActivationReason reason)
+{
+ if(reason==QSystemTrayIcon::DoubleClick || reason==QSystemTrayIcon::Trigger)
+ {
+ sysTrayIcon->hide();
+ this->show();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"Double Click detected");
+ }
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,QStringLiteral("reason: %1").arg(reason));
+}
+
+void Themes::on_exportErrorToTransferList_clicked()
+{
+ emit exportErrorIntoTransferList();
+}
diff --git a/plugins-alternative/Themes/Supercopier/interface.h b/plugins-alternative/Themes/Supercopier/interface.h
new file mode 100644
index 0000000..6929f07
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/interface.h
@@ -0,0 +1,221 @@
+/** \file interface.h
+\brief Define the interface
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef INTERFACE_H
+#define INTERFACE_H
+
+#include <QObject>
+#include <QWidget>
+#include <QMenu>
+#include <QCloseEvent>
+#include <QShortcut>
+#include <QItemSelectionModel>
+#include <QTimer>
+#include <QTime>
+#include <QSystemTrayIcon>
+#include <QPixmap>
+
+#include "../../../interface/PluginInterface_Themes.h"
+
+#include "ui_interface.h"
+#include "ui_themesOptions.h"
+#include "Environment.h"
+#include "TransferModel.h"
+
+// for windows progress bar
+#ifndef __GNUC__
+#include <shobjidl.h>
+#endif
+
+namespace Ui {
+ class interfaceCopy;
+ class themesOptions;
+}
+
+/// \brief Define the interface
+class Themes : public PluginInterface_Themes
+{
+ Q_OBJECT
+public:
+ Themes(const bool &alwaysOnTop,
+ const bool &showProgressionInTheTitle,
+ const QColor &progressColorWrite,
+ const QColor &progressColorRead,
+ const QColor &progressColorRemaining,
+ const bool &showDualProgression,
+ const quint8 &comboBox_copyEnd,
+ const bool &speedWithProgressBar,
+ const qint32 &currentSpeed,
+ const bool &checkBoxShowSpeed,
+ FacilityInterface * facilityEngine,
+ const bool &moreButtonPushed,
+ const bool &minimizeToSystray);
+ ~Themes();
+ //send information about the copy
+ /// \brief to set the action in progress
+ void actionInProgess(const Ultracopier::EngineActionInProgress &);
+ /// \brief the new folder is listing
+ void newFolderListing(const QString &path);
+ /** \brief show the detected speed
+ * in byte per seconds */
+ void detectedSpeed(const quint64 &speed);
+ /** \brief show the remaining time
+ * time in seconds */
+ void remainingTime(const int &remainingSeconds);
+ /// \brief set the current collision action
+ void newCollisionAction(const QString &action);
+ /// \brief set the current error action
+ void newErrorAction(const QString &action);
+ /// \brief set one error is detected
+ void errorDetected();
+ /// \brief new error
+ void errorToRetry(const QString &source,const QString &destination,const QString &error);
+ /** \brief support speed limitation */
+ void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool);
+ //get information about the copy
+ /// \brief show the general progression
+ void setGeneralProgression(const quint64 &current,const quint64 &total);
+ /// \brief show the file progression
+ void setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList);
+ /// \brief set the copyType -> file or folder
+ void setCopyType(const Ultracopier::CopyType &);
+ /// \brief set the copyMove -> copy or move, to force in copy or move, else support both
+ void forceCopyMode(const Ultracopier::CopyMode &);
+ /// \brief set if transfer list is exportable/importable
+ void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation);
+ //edit the transfer list
+ /// \brief get action on the transfer list (add/move/remove)
+ void getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions);
+ /** \brief set if the order is external (like file manager copy)
+ * to notify the interface, which can hide add folder/filer button */
+ void haveExternalOrder();
+ /// \brief set if is in pause
+ void isInPause(const bool &);
+ /// \brief get the widget for the copy engine
+ QWidget * getOptionsEngineWidget();
+ /// \brief to set if the copy engine is found
+ void getOptionsEngineEnabled(const bool &isEnabled);
+ enum status{status_never_started,status_started,status_stopped};
+ status stat;
+public slots:
+ /// \brief set the translate
+ void newLanguageLoaded();
+private slots:
+ void on_putOnTop_clicked();
+ void on_pushUp_clicked();
+ void on_pushDown_clicked();
+ void on_putOnBottom_clicked();
+ void on_del_clicked();
+ void on_cancelButton_clicked();
+ void speedWithProgressBar_toggled(bool checked);
+ void showDualProgression_toggled(bool checked);
+ void checkBoxShowSpeed_toggled(bool checked);
+ void on_SliderSpeed_valueChanged(int value);
+ void on_pauseButton_clicked();
+ void on_skipButton_clicked();
+ void forcedModeAddFile();
+ void forcedModeAddFolder();
+ void forcedModeAddFileToCopy();
+ void forcedModeAddFolderToCopy();
+ void forcedModeAddFileToMove();
+ void forcedModeAddFolderToMove();
+ void uiUpdateSpeed();
+ void on_pushButtonCloseSearch_clicked();
+ //close the search box
+ void closeTheSearchBox();
+ //search box shortcut
+ void searchBoxShortcut();
+ //hilight the search
+ void hilightTheSearch(bool searchNext=false);
+ void hilightTheSearchSlot();
+ //auto connect
+ void on_pushButtonSearchPrev_clicked();
+ void on_pushButtonSearchNext_clicked();
+ void on_lineEditSearch_returnPressed();
+ void on_lineEditSearch_textChanged(QString text);
+ void on_moreButton_toggled(bool checked);
+ void on_searchButton_toggled(bool checked);
+ void on_exportTransferList_clicked();
+ void on_importTransferList_clicked();
+ void progressColorWrite_clicked();
+ void progressColorRead_clicked();
+ void progressColorRemaining_clicked();
+ void alwaysOnTop_clicked(bool reshow);
+ void alwaysOnTop_clickedSlot();
+ void updateProgressionColorBar();
+ void updateTitle();
+ void catchAction(QSystemTrayIcon::ActivationReason reason);
+ void on_exportErrorToTransferList_clicked();
+
+private:
+ QTime duration;
+ bool durationStarted;
+ QPixmap pixmapTop,pixmapBottom;
+ QColor progressColorWrite,progressColorRead,progressColorRemaining;
+ Ui::interfaceCopy *ui;
+ Ui::themesOptions *uiOptions;
+ quint64 currentFile;
+ quint64 totalFile;
+ quint64 currentSize;
+ quint64 totalSize;
+ quint8 getOldProgression;
+ QSystemTrayIcon *sysTrayIcon;
+ void updateOverallInformation();
+ void updateCurrentFileInformation();
+ QMenu *menu;
+ Ultracopier::EngineActionInProgress action;
+ void closeEvent(QCloseEvent *event);
+ qint32 currentSpeed;///< in KB/s, assume as 0KB/s as default like every where
+ void updateSpeed();
+ bool storeIsInPause;
+ bool modeIsForced;
+ Ultracopier::CopyType type;
+ Ultracopier::CopyMode mode;
+ void updateModeAndType();
+ bool haveStarted;
+ bool haveError;
+ QWidget optionEngineWidget;
+ QShortcut *searchShortcut;
+ QShortcut *searchShortcut2;
+ QShortcut *searchShortcut3;
+ QTimer *TimerForSearch;
+ int currentIndexSearch; ///< Current index search in starting at the end
+ FacilityInterface * facilityEngine;
+ QItemSelectionModel *selectionModel;
+ QModelIndexList selectedItems;
+ /// \brief the custom transfer model
+ TransferModel transferModel;
+
+ static QIcon player_play,player_pause;
+
+ /** \brief drag event processing
+
+ need setAcceptDrops(true); into the constructor
+ need implementation to accept the drop:
+ void dragEnterEvent(QDragEnterEvent* event);
+ void dragMoveEvent(QDragMoveEvent* event);
+ void dragLeaveEvent(QDragLeaveEvent* event);
+ */
+ void dropEvent(QDropEvent *event);
+ /** \brief accept all event to allow the drag and drop
+ \see dropEvent() */
+ void dragEnterEvent(QDragEnterEvent* event);
+ /** \brief accept all event to allow the drag and drop
+ \see dropEvent() */
+ void dragMoveEvent(QDragMoveEvent* event);
+ /** \brief accept all event to allow the drag and drop
+ \see dropEvent() */
+ void dragLeaveEvent(QDragLeaveEvent* event);
+ //have functionality
+ bool shutdown;
+ void updatePause();
+ QIcon dynaIcon(int percent,QString text="") const;
+ void updateSysTrayIcon();
+signals:
+ /// \brief To debug source
+ void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne) const;
+};
+
+#endif // INTERFACE_H
diff --git a/plugins-alternative/Themes/Supercopier/interface.pro b/plugins-alternative/Themes/Supercopier/interface.pro
new file mode 100644
index 0000000..809a84c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/interface.pro
@@ -0,0 +1,59 @@
+CONFIG += c++11
+QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra"
+mac:QMAKE_CXXFLAGS+="-stdlib=libc++"
+
+QT += widgets
+TEMPLATE = lib
+CONFIG += plugin
+HEADERS = interface.h \
+ StructEnumDefinition.h \
+ factory.h \
+ DebugEngineMacro.h \
+ Environment.h \
+ Variable.h \
+ ../../../interface/PluginInterface_Themes.h \
+ ../../../interface/FacilityInterface.h \
+ ../../../interface/OptionInterface.h \
+ TransferModel.h
+SOURCES = interface.cpp \
+ factory.cpp \
+ TransferModel.cpp
+TARGET = $$qtLibraryTarget(interface)
+TRANSLATIONS += Languages/ar/translation.ts \
+ Languages/de/translation.ts \
+ Languages/el/translation.ts \
+ Languages/en/translation.ts \
+ Languages/es/translation.ts \
+ Languages/fr/translation.ts \
+ Languages/hi/translation.ts \
+ Languages/hu/translation.ts \
+ Languages/id/translation.ts \
+ Languages/it/translation.ts \
+ Languages/ja/translation.ts \
+ Languages/ko/translation.ts \
+ Languages/nl/translation.ts \
+ Languages/no/translation.ts \
+ Languages/pl/translation.ts \
+ Languages/pt/translation.ts \
+ Languages/ru/translation.ts \
+ Languages/th/translation.ts \
+ Languages/tr/translation.ts \
+ Languages/zh/translation.ts
+
+win32 {
+ RESOURCES +=
+}
+!win32 {
+ RESOURCES +=
+}
+
+!CONFIG(static) {
+RESOURCES += \
+ interfaceResources.qrc \
+ interfaceResources_unix.qrc \
+ interfaceResources_windows.qrc
+}
+
+FORMS += \
+ interface.ui \
+ themesOptions.ui
diff --git a/plugins-alternative/Themes/Supercopier/interface.ui b/plugins-alternative/Themes/Supercopier/interface.ui
new file mode 100644
index 0000000..e5b84a5
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/interface.ui
@@ -0,0 +1,845 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>interfaceCopy</class>
+ <widget class="QWidget" name="interfaceCopy">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>508</width>
+ <height>448</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string notr="true">Supercopier</string>
+ </property>
+ <property name="windowIcon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/main.png</normaloff>:/Themes/Supercopier/resources/main.png</iconset>
+ </property>
+ <layout class="QVBoxLayout">
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <property name="margin">
+ <number>1</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout">
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="from_label">
+ <property name="text">
+ <string>From:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="from">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="ad_ultimate">
+ <property name="openExternalLinks">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <property name="spacing">
+ <number>5</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="to_label">
+ <property name="text">
+ <string>To:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="to">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <widget class="QLabel" name="overall">
+ <property name="text">
+ <string notr="true">File 0/0, Total: 0KB</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="labelTimeRemaining">
+ <property name="textFormat">
+ <enum>Qt::RichText</enum>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="shutdown">
+ <property name="maximumSize">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Close at the end of the transfers</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/SystemTrayIcon/exit.png</normaloff>:/Themes/Supercopier/resources/SystemTrayIcon/exit.png</iconset>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="progressBar_all">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximum">
+ <number>65535</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="current_file">
+ <property name="text">
+ <string notr="true">File Name, 0KB</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::PlainText</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="progressBar_file">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximum">
+ <number>65535</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="currentSpeed">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>60</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string notr="true">0KB/sec</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="progressBarCurrentSpeed">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximum">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="format">
+ <string notr="true">0KB/sec</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="moreButton">
+ <property name="text">
+ <string>&amp;More</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/moveDown.png</normaloff>:/Themes/Supercopier/resources/moveDown.png</iconset>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pauseButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Pause</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/player_pause.png</normaloff>:/Themes/Supercopier/resources/player_pause.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="skipButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Skip</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/player_end.png</normaloff>:/Themes/Supercopier/resources/player_end.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton">
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/cancel.png</normaloff>:/Themes/Supercopier/resources/cancel.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="limitSpeedAsMain">
+ <item>
+ <widget class="QLabel" name="label_Slider_speed">
+ <property name="text">
+ <string>Limit copy speed to:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSlider" name="SliderSpeed">
+ <property name="maximum">
+ <number>5</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_SpeedMaxValue">
+ <property name="text">
+ <string notr="true">Unlimited</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>1</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="tab_main">
+ <attribute name="title">
+ <string>Transfer list</string>
+ </attribute>
+ <layout class="QHBoxLayout">
+ <item>
+ <layout class="QVBoxLayout">
+ <property name="spacing">
+ <number>1</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="putOnTop">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Move the selected items to the top</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/putOnTop.png</normaloff>:/Themes/Supercopier/resources/putOnTop.png</iconset>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="pushUp">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Move up the selected items</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/moveUp.png</normaloff>:/Themes/Supercopier/resources/moveUp.png</iconset>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="pushDown">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Move down the selected items</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/moveDown.png</normaloff>:/Themes/Supercopier/resources/moveDown.png</iconset>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="putOnBottom">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Move the selected items to the bottom</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/putOnBottom.png</normaloff>:/Themes/Supercopier/resources/putOnBottom.png</iconset>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="add">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Add file/folder</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset>
+ </property>
+ <property name="popupMode">
+ <enum>QToolButton::InstantPopup</enum>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="del">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Delete the selected items</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/remove.png</normaloff>:/Themes/Supercopier/resources/remove.png</iconset>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="searchButton">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Search</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/search.png</normaloff>:/Themes/Supercopier/resources/search.png</iconset>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="exportTransferList">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Export the transfer list</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/export-transfer-list.png</normaloff>:/Themes/Supercopier/resources/export-transfer-list.png</iconset>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="importTransferList">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Import the transfer list</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/import-transfer-list.png</normaloff>:/Themes/Supercopier/resources/import-transfer-list.png</iconset>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QTreeView" name="TransferList">
+ <property name="selectionMode">
+ <enum>QAbstractItemView::ExtendedSelection</enum>
+ </property>
+ <property name="rootIsDecorated">
+ <bool>false</bool>
+ </property>
+ <property name="uniformRowHeights">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayoutSearch">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="lineEditSearch"/>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButtonSearchPrev">
+ <property name="text">
+ <string>Previous</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButtonSearchNext">
+ <property name="text">
+ <string>Next</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButtonCloseSearch">
+ <property name="minimumSize">
+ <size>
+ <width>25</width>
+ <height>25</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>25</width>
+ <height>25</height>
+ </size>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/remove.png</normaloff>:/Themes/Supercopier/resources/remove.png</iconset>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_error">
+ <attribute name="title">
+ <string>Error</string>
+ </attribute>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QToolButton" name="exportErrorToTransferList">
+ <property name="minimumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>22</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Export the errors into transfer list</string>
+ </property>
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/export-transfer-list.png</normaloff>:/Themes/Supercopier/resources/export-transfer-list.png</iconset>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="errorList">
+ <property name="selectionMode">
+ <enum>QAbstractItemView::NoSelection</enum>
+ </property>
+ <property name="rootIsDecorated">
+ <bool>false</bool>
+ </property>
+ <property name="uniformRowHeights">
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text">
+ <string>Source</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Destination</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Error</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_interface">
+ <attribute name="title">
+ <string>Interface</string>
+ </attribute>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QScrollArea" name="optionsTab">
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>492</width>
+ <height>243</height>
+ </rect>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ <action name="actionAddFile">
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Add file</string>
+ </property>
+ </action>
+ <action name="actionAddFolder">
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Add folder</string>
+ </property>
+ </action>
+ <action name="actionAddFileToMove">
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Move file(s)</string>
+ </property>
+ </action>
+ <action name="actionAddFolderToMove">
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Move folder</string>
+ </property>
+ </action>
+ <action name="actionAddFileToCopy">
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Copy file(s)</string>
+ </property>
+ </action>
+ <action name="actionAddFolderToCopy">
+ <property name="icon">
+ <iconset resource="interfaceResources.qrc">
+ <normaloff>:/Themes/Supercopier/resources/add.png</normaloff>:/Themes/Supercopier/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Copy folder</string>
+ </property>
+ </action>
+ </widget>
+ <resources>
+ <include location="interfaceResources.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>moreButton</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>tabWidget</receiver>
+ <slot>setVisible(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>218</x>
+ <y>144</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>149</x>
+ <y>305</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/plugins-alternative/Themes/Supercopier/interfaceResources.qrc b/plugins-alternative/Themes/Supercopier/interfaceResources.qrc
new file mode 100644
index 0000000..d8990aa
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/interfaceResources.qrc
@@ -0,0 +1,24 @@
+<RCC>
+ <qresource prefix="/Themes/Supercopier">
+ <file>resources/add.png</file>
+ <file>resources/cancel.png</file>
+ <file>resources/main.png</file>
+ <file>resources/moveDown.png</file>
+ <file>resources/moveUp.png</file>
+ <file>resources/player_end.png</file>
+ <file>resources/player_pause.png</file>
+ <file>resources/player_play.png</file>
+ <file>resources/putOnBottom.png</file>
+ <file>resources/putOnTop.png</file>
+ <file>resources/remove.png</file>
+ <file>resources/search.png</file>
+ <file>resources/export-transfer-list.png</file>
+ <file>resources/import-transfer-list.png</file>
+ <file>resources/SystemTrayIcon/add.png</file>
+ <file>resources/SystemTrayIcon/exit.png</file>
+ <file>resources/SystemTrayIcon/informations.png</file>
+ <file>resources/SystemTrayIcon/options.png</file>
+ <file>resources/progressbarleft.png</file>
+ <file>resources/progressbarright.png</file>
+ </qresource>
+</RCC>
diff --git a/plugins-alternative/Themes/Supercopier/interfaceResources_unix.qrc b/plugins-alternative/Themes/Supercopier/interfaceResources_unix.qrc
new file mode 100644
index 0000000..52bc325
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/interfaceResources_unix.qrc
@@ -0,0 +1,9 @@
+<RCC>
+ <qresource prefix="/Themes/Supercopier">
+ <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file>
+ <file>resources/SystemTrayIcon/systray_Semiuncaught_Unix.png</file>
+ <file>resources/SystemTrayIcon/systray_Uncaught_Unix.png</file>
+ <file>resources/SystemTrayIcon/systray_Top_Progress_Unix.png</file>
+ <file>resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png</file>
+ </qresource>
+</RCC>
diff --git a/plugins-alternative/Themes/Supercopier/interfaceResources_windows.qrc b/plugins-alternative/Themes/Supercopier/interfaceResources_windows.qrc
new file mode 100644
index 0000000..aed7063
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/interfaceResources_windows.qrc
@@ -0,0 +1,9 @@
+<RCC>
+ <qresource prefix="/Themes/Supercopier">
+ <file>resources/SystemTrayIcon/systray_Caught_Windows.png</file>
+ <file>resources/SystemTrayIcon/systray_Semiuncaught_Windows.png</file>
+ <file>resources/SystemTrayIcon/systray_Uncaught_Windows.png</file>
+ <file>resources/SystemTrayIcon/systray_Top_Progress_Windows.png</file>
+ <file>resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png</file>
+ </qresource>
+</RCC>
diff --git a/plugins-alternative/Themes/Supercopier/plugin.json b/plugins-alternative/Themes/Supercopier/plugin.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/plugin.json
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/add.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/add.png
new file mode 100644
index 0000000..d41fce6
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/add.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/exit.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/exit.png
new file mode 100644
index 0000000..9599bba
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/exit.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/informations.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/informations.png
new file mode 100644
index 0000000..86c9ba6
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/informations.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/options.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/options.png
new file mode 100644
index 0000000..cf699d5
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/options.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png
new file mode 100644
index 0000000..543aaf1
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png
new file mode 100644
index 0000000..ff110d9
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Bottom_Progress_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Unix.png
new file mode 100644
index 0000000..be2ba20
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Windows.png
new file mode 100644
index 0000000..9c597af
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Caught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
new file mode 100644
index 0000000..be2ba20
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
new file mode 100644
index 0000000..9c597af
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.png
new file mode 100644
index 0000000..1d93cb1
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.png
new file mode 100644
index 0000000..2074ee8
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Top_Progress_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Unix.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Unix.png
new file mode 100644
index 0000000..4da8cc0
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Windows.png b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Windows.png
new file mode 100644
index 0000000..8bfbcf9
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/SystemTrayIcon/systray_Uncaught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/add.png b/plugins-alternative/Themes/Supercopier/resources/add.png
new file mode 100644
index 0000000..af8a401
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/add.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/cancel.png b/plugins-alternative/Themes/Supercopier/resources/cancel.png
new file mode 100644
index 0000000..1e7579c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/cancel.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/export-transfer-list.png b/plugins-alternative/Themes/Supercopier/resources/export-transfer-list.png
new file mode 100644
index 0000000..2bcc455
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/export-transfer-list.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/import-transfer-list.png b/plugins-alternative/Themes/Supercopier/resources/import-transfer-list.png
new file mode 100644
index 0000000..d208342
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/import-transfer-list.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/main.png b/plugins-alternative/Themes/Supercopier/resources/main.png
new file mode 100644
index 0000000..9bec399
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/main.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/moveDown.png b/plugins-alternative/Themes/Supercopier/resources/moveDown.png
new file mode 100644
index 0000000..7f4ff27
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/moveDown.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/moveUp.png b/plugins-alternative/Themes/Supercopier/resources/moveUp.png
new file mode 100644
index 0000000..9397b76
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/moveUp.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/player_end.png b/plugins-alternative/Themes/Supercopier/resources/player_end.png
new file mode 100644
index 0000000..9730302
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/player_end.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/player_pause.png b/plugins-alternative/Themes/Supercopier/resources/player_pause.png
new file mode 100644
index 0000000..429ae43
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/player_pause.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/player_play.png b/plugins-alternative/Themes/Supercopier/resources/player_play.png
new file mode 100644
index 0000000..a28ac73
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/player_play.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/progressbarleft.png b/plugins-alternative/Themes/Supercopier/resources/progressbarleft.png
new file mode 100644
index 0000000..bbee9c8
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/progressbarleft.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/progressbarright.png b/plugins-alternative/Themes/Supercopier/resources/progressbarright.png
new file mode 100644
index 0000000..93e5781
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/progressbarright.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/putOnBottom.png b/plugins-alternative/Themes/Supercopier/resources/putOnBottom.png
new file mode 100644
index 0000000..9ac517c
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/putOnBottom.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/putOnTop.png b/plugins-alternative/Themes/Supercopier/resources/putOnTop.png
new file mode 100644
index 0000000..5682829
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/putOnTop.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/remove.png b/plugins-alternative/Themes/Supercopier/resources/remove.png
new file mode 100644
index 0000000..3a2a9f1
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/remove.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/resources/search.png b/plugins-alternative/Themes/Supercopier/resources/search.png
new file mode 100644
index 0000000..567f498
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/resources/search.png
Binary files differ
diff --git a/plugins-alternative/Themes/Supercopier/themesOptions.ui b/plugins-alternative/Themes/Supercopier/themesOptions.ui
new file mode 100644
index 0000000..46c7f97
--- /dev/null
+++ b/plugins-alternative/Themes/Supercopier/themesOptions.ui
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>themesOptions</class>
+ <widget class="QWidget" name="themesOptions">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>540</width>
+ <height>325</height>
+ </rect>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QToolBox" name="toolBox">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="page">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>530</width>
+ <height>237</height>
+ </rect>
+ </property>
+ <attribute name="label">
+ <string>Use</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="labelStartWithMoreButtonPushed">
+ <property name="text">
+ <string>Start with the &quot;more button&quot; pushed</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QCheckBox" name="checkBoxStartWithMoreButtonPushed"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="labelAlwaysOnTop">
+ <property name="text">
+ <string>Always on top</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QCheckBox" name="alwaysOnTop"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Minimize on close to systray</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+ <widget class="QCheckBox" name="minimizeToSystray"/>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>At the end of the copy</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2">
+ <widget class="QComboBox" name="comboBox_copyEnd">
+ <item>
+ <property name="text">
+ <string notr="true">Don't close if errors are found</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string notr="true">Never close</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string notr="true">Always close</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_Slider_speed">
+ <property name="text">
+ <string>Limit copy speed to</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QSlider" name="SliderSpeed">
+ <property name="maximum">
+ <number>5</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="2">
+ <widget class="QLabel" name="label_SpeedMaxValue">
+ <property name="text">
+ <string notr="true">Unlimited</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QCheckBox" name="checkBox_limitSpeed">
+ <property name="text">
+ <string>Limit copy speed to</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QSpinBox" name="limitSpeed">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="suffix">
+ <string> KB/s</string>
+ </property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>999999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="2">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>71</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="page_3">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>241</width>
+ <height>33</height>
+ </rect>
+ </property>
+ <attribute name="label">
+ <string>Informations</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QLabel" name="labelShowSpeedAsMain">
+ <property name="text">
+ <string>Show speed as main information</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QCheckBox" name="checkBoxShowSpeed"/>
+ </item>
+ <item row="1" column="1">
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>201</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="page_2">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>441</width>
+ <height>107</height>
+ </rect>
+ </property>
+ <attribute name="label">
+ <string>Display</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="0">
+ <widget class="QLabel" name="labelSpeedWithProgressBar">
+ <property name="text">
+ <string>Speed with progress bar</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QCheckBox" name="speedWithProgressBar"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Show progression in the title</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QCheckBox" name="showProgressionInTheTitle"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="labelDualProgression">
+ <property name="text">
+ <string>Show dual progression</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+ <widget class="QCheckBox" name="showDualProgression"/>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="labelProgressionColor">
+ <property name="text">
+ <string>Progression color</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2">
+ <widget class="QFrame" name="frameProgressionColor">
+ <property name="minimumSize">
+ <size>
+ <width>225</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>225</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Click to edit the color</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="progressColorWrite">
+ <property name="minimumSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="progressColorRead">
+ <property name="minimumSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="progressColorRemaining">
+ <property name="minimumSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>75</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>127</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>checkBox_limitSpeed</sender>
+ <signal>clicked(bool)</signal>
+ <receiver>limitSpeed</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>109</x>
+ <y>144</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>199</x>
+ <y>144</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/plugins-alternative/Themes/Teracopy/DebugEngineMacro.h b/plugins-alternative/Themes/Teracopy/DebugEngineMacro.h
index a3dd648..4582010 100644
--- a/plugins-alternative/Themes/Teracopy/DebugEngineMacro.h
+++ b/plugins-alternative/Themes/Teracopy/DebugEngineMacro.h
@@ -1,12 +1,15 @@
/** \file DebugEngineMacro.h
\brief Define the macro for the debug
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#ifndef DEBUGENGINEMACRO_H
#define DEBUGENGINEMACRO_H
+#ifdef WIN32
+# define __func__ __FUNCTION__
+#endif
+
/// \brief Macro for the debug log
#ifdef ULTRACOPIER_PLUGIN_DEBUG
#if defined (__FILE__) && defined (__LINE__)
diff --git a/plugins-alternative/Themes/Teracopy/Environment.h b/plugins-alternative/Themes/Teracopy/Environment.h
index 94fd104..265a5a6 100644
--- a/plugins-alternative/Themes/Teracopy/Environment.h
+++ b/plugins-alternative/Themes/Teracopy/Environment.h
@@ -1,8 +1,7 @@
/** \file Environment.h
\brief Define the environment variable and global function
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#include "Variable.h"
/// \brief The global include
diff --git a/plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/ar/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/de/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/de/translation.ts
index 237dc4f..a2da10c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/de/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/de/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0" language="de" sourcelanguage="en">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation>Total: %1 von %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation>%1 von %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation>%1% erledigt</translation>
</message>
@@ -24,27 +24,27 @@
<message>
<location filename="../../interface.ui" line="159"/>
<source>&amp;More</source>
- <translation>Mehr</translation>
+ <translation>&amp;Mehr</translation>
</message>
<message>
<location filename="../../interface.ui" line="172"/>
<source>...</source>
- <translation></translation>
+ <translation>...</translation>
</message>
<message>
<location filename="../../interface.ui" line="210"/>
<source>&amp;Pause</source>
- <translation></translation>
+ <translation>&amp;Pause</translation>
</message>
<message>
<location filename="../../interface.ui" line="232"/>
<source>&amp;Skip</source>
- <translation>überspringen</translation>
+ <translation>überspringen (&amp;S)</translation>
</message>
<message>
<location filename="../../interface.ui" line="251"/>
<source>&amp;Cancel</source>
- <translation>Stornieren</translation>
+ <translation>Abbrechen (&amp;C)</translation>
</message>
<message>
<location filename="../../interface.ui" line="281"/>
@@ -72,22 +72,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../interface.ui" line="326"/>
<source>Move file(s)</source>
- <translation>Bewegen Sie Datei (en)</translation>
+ <translation>Datei (en) verschieben</translation>
</message>
<message>
<location filename="../../interface.ui" line="335"/>
<source>Move folder</source>
- <translation>bewegen Sie Ordner</translation>
+ <translation>Ordner verschieben</translation>
</message>
<message>
<location filename="../../interface.ui" line="344"/>
<source>Copy file(s)</source>
- <translation>Kopieren Sie die Datei (en)</translation>
+ <translation>Datei (en) kopieren</translation>
</message>
<message>
<location filename="../../interface.ui" line="353"/>
<source>Copy folder</source>
- <translation>kopieren Sie das Verzeichnis</translation>
+ <translation>Verzeichnis kopieren</translation>
</message>
</context>
</TS>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/el/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/el/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/el/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/el/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/en/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/en/translation.ts
new file mode 100644
index 0000000..d9fb1d6
--- /dev/null
+++ b/plugins-alternative/Themes/Teracopy/Languages/en/translation.ts
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="95"/>
+ <source>Total: %1 of %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="96"/>
+ <source>%1 of %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="250"/>
+ <source>%1% done</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="159"/>
+ <source>&amp;More</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="172"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="210"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="232"/>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="251"/>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="281"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://ultracopier.first-world.info/&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0057ae;&quot;&gt;Support Ultracopier&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="308"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="317"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="335"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="344"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="353"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/es/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/es/translation.ts
index fe526da..5081c0f 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/es/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/es/translation.ts
@@ -2,21 +2,21 @@
<!DOCTYPE TS>
<TS version="2.0" language="es" sourcelanguage="en">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
- <translation>Total: %1 de %2</translation>
+ <translation type="unfinished">Total: %1 de %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
- <translation>%1 de %2</translation>
+ <translation type="unfinished">%1 de %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
- <translation>%1% hecho</translation>
+ <translation type="unfinished">%1% hecho</translation>
</message>
</context>
<context>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts
index 42ac61d..fd6eaa1 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/fr/translation.ts
@@ -2,20 +2,21 @@
<!DOCTYPE TS>
<TS version="2.0" language="fr" sourcelanguage="en">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation>Total: %1 sur %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation>%1 sur %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
+ <translatorcomment>Exemple: 90% fait</translatorcomment>
<translation>%1% fait</translation>
</message>
</context>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/hi/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/hu/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/hu/translation.ts
new file mode 100644
index 0000000..3d940b4
--- /dev/null
+++ b/plugins-alternative/Themes/Teracopy/Languages/hu/translation.ts
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="95"/>
+ <source>Total: %1 of %2</source>
+ <translation>Összesen: %1 / %2</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="96"/>
+ <source>%1 of %2</source>
+ <translation>%1 / %2</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="250"/>
+ <source>%1% done</source>
+ <translation>%1% kész</translation>
+ </message>
+</context>
+<context>
+ <name>interfaceCopy</name>
+ <message>
+ <location filename="../../interface.ui" line="159"/>
+ <source>&amp;More</source>
+ <translation>&amp;Több</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="172"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="210"/>
+ <source>&amp;Pause</source>
+ <translation>&amp;Szünet</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="232"/>
+ <source>&amp;Skip</source>
+ <translation>&amp;Kihagy</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="251"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Mégse</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="281"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://ultracopier.first-world.info/&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0057ae;&quot;&gt;Support Ultracopier&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://ultracopier.first-world.info/&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0057ae;&quot;&gt;Támogasd az Ultracopier-t&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="308"/>
+ <source>Add file</source>
+ <translation>Fájl hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="317"/>
+ <source>Add folder</source>
+ <translation>Mappa hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="326"/>
+ <source>Move file(s)</source>
+ <translation>Fájl(ok) mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="335"/>
+ <source>Move folder</source>
+ <translation>Mappa mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="344"/>
+ <source>Copy file(s)</source>
+ <translation>Fájl(ok) másolása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="353"/>
+ <source>Copy folder</source>
+ <translation>Mappa másolása</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/id/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/id/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/id/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/id/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/it/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/it/translation.ts
index 746b8a6..31d775e 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/it/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/it/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0" language="it" sourcelanguage="en">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation>Totale: %1 di %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation>%1 di %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation>%1% fatto</translation>
</message>
@@ -24,27 +24,27 @@
<message>
<location filename="../../interface.ui" line="159"/>
<source>&amp;More</source>
- <translation>Di più</translation>
+ <translation>Alt&amp;o</translation>
</message>
<message>
<location filename="../../interface.ui" line="172"/>
<source>...</source>
- <translation></translation>
+ <translation>...</translation>
</message>
<message>
<location filename="../../interface.ui" line="210"/>
<source>&amp;Pause</source>
- <translation>Pausa</translation>
+ <translation>&amp;Pausa</translation>
</message>
<message>
<location filename="../../interface.ui" line="232"/>
<source>&amp;Skip</source>
- <translation>Saltare</translation>
+ <translation>&amp;Salta</translation>
</message>
<message>
<location filename="../../interface.ui" line="251"/>
<source>&amp;Cancel</source>
- <translation>Annullare</translation>
+ <translation>&amp;Annulla</translation>
</message>
<message>
<location filename="../../interface.ui" line="281"/>
@@ -57,7 +57,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://ultracopier.first-world.info/&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0057ae;&quot;&gt;Sostenere Ultracopier&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://ultracopier.first-world.info/&quot;&gt;&lt;span style=&quot; font-size:8pt; text-decoration: underline; color:#0057ae;&quot;&gt;Supporto Ultracopier&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../interface.ui" line="308"/>
@@ -72,17 +72,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../interface.ui" line="326"/>
<source>Move file(s)</source>
- <translation>Spostare file(s)</translation>
+ <translation>Sposta file</translation>
</message>
<message>
<location filename="../../interface.ui" line="335"/>
<source>Move folder</source>
- <translation>Spostare la cartella</translation>
+ <translation>Sposta la cartella</translation>
</message>
<message>
<location filename="../../interface.ui" line="344"/>
<source>Copy file(s)</source>
- <translation>Copiare il file(s)</translation>
+ <translation>Copia file</translation>
</message>
<message>
<location filename="../../interface.ui" line="353"/>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/ja/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts
index 6c66c5a..06946e9 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/ko/translation.ts
@@ -2,9 +2,9 @@
<!DOCTYPE TS>
<TS version="2.0" language="ko_KR">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="+76"/>
+ <location filename="../../interface.cpp" line="+95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished">전체: %3 / %2 {1 ?}</translation>
</message>
@@ -14,7 +14,7 @@
<translation type="unfinished">%1 / %2</translation>
</message>
<message>
- <location line="+135"/>
+ <location line="+154"/>
<source>%1% done</source>
<translation type="unfinished">%1% 완료</translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/nl/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/no/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/no/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/no/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/no/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/pl/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts
index 1219c56..db1059e 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/ru/translation.ts
@@ -2,21 +2,21 @@
<!DOCTYPE TS>
<TS version="2.0" language="ru" sourcelanguage="et">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
- <translation>Всего: %1 из %2</translation>
+ <translation type="unfinished">Всего: %1 из %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
- <translation>%1 из %2</translation>
+ <translation type="unfinished">%1 из %2</translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
- <translation>%1% сделанный</translation>
+ <translation type="unfinished">%1% сделанный</translation>
</message>
</context>
<context>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/th/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/th/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/th/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/th/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/tr/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts b/plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts
index 33cd084..b76694c 100644
--- a/plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts
+++ b/plugins-alternative/Themes/Teracopy/Languages/zh/translation.ts
@@ -2,19 +2,19 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
- <name>InterfacePlugin</name>
+ <name>Themes</name>
<message>
- <location filename="../../interface.cpp" line="76"/>
+ <location filename="../../interface.cpp" line="95"/>
<source>Total: %1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="77"/>
+ <location filename="../../interface.cpp" line="96"/>
<source>%1 of %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../interface.cpp" line="212"/>
+ <location filename="../../interface.cpp" line="250"/>
<source>%1% done</source>
<translation type="unfinished"></translation>
</message>
diff --git a/plugins-alternative/Themes/Teracopy/TransferModel.cpp b/plugins-alternative/Themes/Teracopy/TransferModel.cpp
index 569d31c..24812a0 100644
--- a/plugins-alternative/Themes/Teracopy/TransferModel.cpp
+++ b/plugins-alternative/Themes/Teracopy/TransferModel.cpp
@@ -6,145 +6,146 @@
TransferModel::TransferModel()
{
- iconStart=QIcon(":/resources/player_play.png");
- iconPause=QIcon(":/resources/player_pause.png");
- iconStop=QIcon(":/resources/checkbox.png");
- currentIndexSearch=0;
- haveSearchItem=false;
+ iconStart=QIcon(":/Themes/Teracopy/resources/player_play.png");
+ iconPause=QIcon(":/Themes/Teracopy/resources/player_pause.png");
+ iconStop=QIcon(":/Themes/Teracopy/resources/checkbox.png");
+ currentIndexSearch=0;
+ haveSearchItem=false;
+ facilityEngine=NULL;
}
int TransferModel::columnCount( const QModelIndex& parent ) const
{
- return parent == QModelIndex() ? COLUMN_COUNT : 0;
+ return parent == QModelIndex() ? COLUMN_COUNT : 0;
}
QVariant TransferModel::data( const QModelIndex& index, int role ) const
{
- int row,column;
- row=index.row();
- column=index.column();
- if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT)
- return QVariant();
+ int row,column;
+ row=index.row();
+ column=index.column();
+ if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT)
+ return QVariant();
- const transfertItem& item = transfertItemList[row];
- if(role==Qt::UserRole)
- return item.id;
- else if(role==Qt::DisplayRole)
- {
- switch(column)
- {
- case 0:
- return item.source;
- break;
- case 1:
- return item.size;
- break;
- case 2:
- return item.destination;
- break;
- default:
- return QVariant();
- }
- }
- else if(role==Qt::DecorationRole)
- {
- switch(column)
- {
- case 0:
- /*if(item.done)
- return iconStop;
- else */if(stopId.contains(item.id))
- return iconPause;
- else if(startId.contains(item.id))
- return iconStart;
- else
- return QVariant();
- break;
- default:
- return QVariant();
- }
- }
- else if(role==Qt::BackgroundRole)
- {
- if(!search_text.isEmpty() && (item.source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || item.destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1))
- {
- if(haveSearchItem && searchId==item.id)
- return QColor(255,150,150,100);
- else
- return QColor(255,255,0,100);
- }
- else
- return QVariant();
- }
- return QVariant();
+ const transfertItem& item = transfertItemList[row];
+ if(role==Qt::UserRole)
+ return item.id;
+ else if(role==Qt::DisplayRole)
+ {
+ switch(column)
+ {
+ case 0:
+ return item.source;
+ break;
+ case 1:
+ return item.size;
+ break;
+ case 2:
+ return item.destination;
+ break;
+ default:
+ return QVariant();
+ }
+ }
+ else if(role==Qt::DecorationRole)
+ {
+ switch(column)
+ {
+ case 0:
+ /*if(item.done)
+ return iconStop;
+ else */if(stopId.contains(item.id))
+ return iconPause;
+ else if(startId.contains(item.id))
+ return iconStart;
+ else
+ return QVariant();
+ break;
+ default:
+ return QVariant();
+ }
+ }
+ else if(role==Qt::BackgroundRole)
+ {
+ if(!search_text.isEmpty() && (item.source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || item.destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1))
+ {
+ if(haveSearchItem && searchId==item.id)
+ return QColor(255,150,150,100);
+ else
+ return QColor(255,255,0,100);
+ }
+ else
+ return QVariant();
+ }
+ return QVariant();
}
int TransferModel::rowCount( const QModelIndex& parent ) const
{
- return parent == QModelIndex() ? transfertItemList.count() : 0;
+ return parent == QModelIndex() ? transfertItemList.count() : 0;
}
quint64 TransferModel::firstId()
{
- if(transfertItemList.count()>0)
- return transfertItemList[0].id;
- else
- return 0;
+ if(transfertItemList.count()>0)
+ return transfertItemList[0].id;
+ else
+ return 0;
}
QVariant TransferModel::headerData( int section, Qt::Orientation orientation, int role ) const
{
- if ( role == Qt::DisplayRole && orientation == Qt::Horizontal && section >= 0 && section < COLUMN_COUNT ) {
- switch ( section ) {
- case 0:
- return facilityEngine->translateText("Source");
- case 1:
- return facilityEngine->translateText("Size");
- case 2:
- return facilityEngine->translateText("Destination");
- }
- }
+ if ( role == Qt::DisplayRole && orientation == Qt::Horizontal && section >= 0 && section < COLUMN_COUNT ) {
+ switch ( section ) {
+ case 0:
+ return facilityEngine->translateText("Source");
+ case 1:
+ return facilityEngine->translateText("Size");
+ case 2:
+ return facilityEngine->translateText("Destination");
+ }
+ }
- return QAbstractTableModel::headerData( section, orientation, role );
+ return QAbstractTableModel::headerData( section, orientation, role );
}
bool TransferModel::setData( const QModelIndex& index, const QVariant& value, int role )
{
- row=index.row();
- column=index.column();
- if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT)
- return false;
+ row=index.row();
+ column=index.column();
+ if(index.parent()!=QModelIndex() || row < 0 || row >= transfertItemList.count() || column < 0 || column >= COLUMN_COUNT)
+ return false;
- transfertItem& item = transfertItemList[row];
- if(role==Qt::UserRole)
- {
- item.id=value.toULongLong();
- return true;
- }
- else if(role==Qt::DisplayRole)
- {
- switch(column)
- {
- case 0:
- item.source=value.toString();
- emit dataChanged(index,index);
- return true;
- break;
- case 1:
- item.size=value.toString();
- emit dataChanged(index,index);
- return true;
- break;
- case 2:
- item.destination=value.toString();
- emit dataChanged(index,index);
- return true;
- break;
- default:
- return false;
- }
- }
- return false;
+ transfertItem& item = transfertItemList[row];
+ if(role==Qt::UserRole)
+ {
+ item.id=value.toULongLong();
+ return true;
+ }
+ else if(role==Qt::DisplayRole)
+ {
+ switch(column)
+ {
+ case 0:
+ item.source=value.toString();
+ emit dataChanged(index,index);
+ return true;
+ break;
+ case 1:
+ item.size=value.toString();
+ emit dataChanged(index,index);
+ return true;
+ break;
+ case 2:
+ item.destination=value.toString();
+ emit dataChanged(index,index);
+ return true;
+ break;
+ default:
+ return false;
+ }
+ }
+ return false;
}
/*
@@ -152,290 +153,376 @@ bool TransferModel::setData( const QModelIndex& index, const QVariant& value, in
Return[1]: totalSize
Return[2]: currentFile
*/
-QList<quint64> TransferModel::synchronizeItems(const QList<returnActionOnCopyList>& returnActions)
+QList<quint64> TransferModel::synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions)
{
- loop_size=returnActions.size();
- index_for_loop=0;
- totalFile=0;
- totalSize=0;
- currentFile=0;
- emit layoutAboutToBeChanged();
- while(index_for_loop<loop_size)
- {
- const returnActionOnCopyList& action=returnActions.at(index_for_loop);
- switch(action.type)
- {
- case AddingItem:
- {
- transfertItem newItem;
- newItem.id=action.addAction.id;
- newItem.source=action.addAction.sourceFullPath;
- newItem.size=facilityEngine->sizeToString(action.addAction.size);
- newItem.destination=action.addAction.destinationFullPath;
+ loop_size=returnActions.size();
+ index_for_loop=0;
+ totalFile=0;
+ totalSize=0;
+ currentFile=0;
+ emit layoutAboutToBeChanged();
+ while(index_for_loop<loop_size)
+ {
+ const Ultracopier::ReturnActionOnCopyList& action=returnActions.at(index_for_loop);
+ switch(action.type)
+ {
+ case Ultracopier::AddingItem:
+ {
+ transfertItem newItem;
+ newItem.id=action.addAction.id;
+ newItem.source=action.addAction.sourceFullPath;
+ newItem.size=facilityEngine->sizeToString(action.addAction.size);
+ newItem.destination=action.addAction.destinationFullPath;
// newItem.done=false;
- transfertItemList<<newItem;
- totalFile++;
- totalSize+=action.addAction.size;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, size: %2, name: %3").arg(action.addAction.id).arg(action.addAction.size).arg(action.addAction.sourceFullPath));
- }
- break;
- case MoveItem:
- {
- //bool current_entry=
- if(action.userAction.position<0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
- break;
- }
- if(action.userAction.position>(transfertItemList.size()-1))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
- break;
- }
- if(action.userAction.moveAt<0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
- break;
- }
- if(action.userAction.moveAt>(transfertItemList.size()-1))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
- break;
- }
- transfertItemList.move(action.userAction.position,action.userAction.moveAt);
- }
- break;
- case RemoveItem:
- {
- if(currentIndexSearch>0 && action.userAction.position<=currentIndexSearch)
- currentIndexSearch--;
- if(action.userAction.position<0)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
- break;
- }
- if(action.userAction.position>(transfertItemList.size()-1))
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
- break;
- }
- transfertItemList.removeAt(action.userAction.position);
- currentFile++;
- startId.remove(action.addAction.id);
- stopId.remove(action.addAction.id);
- }
- break;
- case PreOperation:
- {
- ItemOfCopyListWithMoreInformations tempItem;
- tempItem.currentProgression=0;
- tempItem.generalData=action.addAction;
- tempItem.actionType=action.type;
- internalRunningOperation[action.addAction.id]=tempItem;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("set for file %1: actionType: PreOperation").arg(action.addAction.id));
- }
- break;
- case Transfer:
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("found entry for file %1: actionType: Transfer").arg(action.addAction.id));
- if(!startId.contains(action.addAction.id))
- startId << action.addAction.id;
- stopId.remove(action.addAction.id);
- if(internalRunningOperation.contains(action.addAction.id))
- internalRunningOperation[action.addAction.id].actionType=action.type;
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("unable to found entry for file %1: actionType: Transfer").arg(action.addAction.id));
- }
- break;
- case PostOperation:
- {
- if(!stopId.contains(action.addAction.id))
- stopId << action.addAction.id;
- startId.remove(action.addAction.id);
- internalRunningOperation.remove(action.addAction.id);
- }
- break;
- case CustomOperation:
- {
- bool custom_with_progression=(action.addAction.size==1);
- //without progression
- if(custom_with_progression)
- {
- if(startId.remove(action.addAction.id))
- if(!stopId.contains(action.addAction.id))
- stopId << action.addAction.id;
- }
- //with progression
- else
- {
- stopId.remove(action.addAction.id);
- if(!startId.contains(action.addAction.id))
- startId << action.addAction.id;
- }
- if(internalRunningOperation.contains(action.addAction.id))
- {
- ItemOfCopyListWithMoreInformations &item=internalRunningOperation[action.addAction.id];
- item.actionType=action.type;
- item.custom_with_progression=custom_with_progression;
- item.currentProgression=0;
- }
- }
- break;
- default:
- //unknow code, ignore it
- break;
- }
- index_for_loop++;
- }
- emit layoutChanged();
- return QList<quint64>() << totalFile << totalSize << currentFile;
+ transfertItemList<<newItem;
+ totalFile++;
+ totalSize+=action.addAction.size;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, size: %2, name: %3").arg(action.addAction.id).arg(action.addAction.size).arg(action.addAction.sourceFullPath));
+ }
+ break;
+ case Ultracopier::MoveItem:
+ {
+ //bool current_entry=
+ if(action.userAction.position<0)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.position>(transfertItemList.size()-1))
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.moveAt<0)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.moveAt>(transfertItemList.size()-1))
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ transfertItemList.move(action.userAction.position,action.userAction.moveAt);
+ }
+ break;
+ case Ultracopier::RemoveItem:
+ {
+ if(currentIndexSearch>0 && action.userAction.position<=currentIndexSearch)
+ currentIndexSearch--;
+ if(action.userAction.position<0)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ if(action.userAction.position>(transfertItemList.size()-1))
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("id: %1, position is wrong: %3").arg(action.addAction.id).arg(action.userAction.position));
+ break;
+ }
+ transfertItemList.removeAt(action.userAction.position);
+ currentFile++;
+ startId.remove(action.addAction.id);
+ stopId.remove(action.addAction.id);
+ internalRunningOperation.remove(action.addAction.id);
+ }
+ break;
+ case Ultracopier::PreOperation:
+ {
+ ItemOfCopyListWithMoreInformations tempItem;
+ tempItem.currentReadProgression=0;
+ tempItem.currentWriteProgression=0;
+ tempItem.generalData=action.addAction;
+ tempItem.actionType=action.type;
+ internalRunningOperation[action.addAction.id]=tempItem;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("set for file %1: actionType: PreOperation").arg(action.addAction.id));
+ }
+ break;
+ case Ultracopier::Transfer:
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("found entry for file %1: actionType: Transfer").arg(action.addAction.id));
+ if(!startId.contains(action.addAction.id))
+ startId << action.addAction.id;
+ stopId.remove(action.addAction.id);
+ if(internalRunningOperation.contains(action.addAction.id))
+ internalRunningOperation[action.addAction.id].actionType=action.type;
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unable to found entry for file %1: actionType: Transfer").arg(action.addAction.id));
+ }
+ break;
+ case Ultracopier::PostOperation:
+ {
+ if(!stopId.contains(action.addAction.id))
+ stopId << action.addAction.id;
+ startId.remove(action.addAction.id);
+ }
+ break;
+ case Ultracopier::CustomOperation:
+ {
+ bool custom_with_progression=(action.addAction.size==1);
+ //without progression
+ if(custom_with_progression)
+ {
+ if(startId.remove(action.addAction.id))
+ if(!stopId.contains(action.addAction.id))
+ stopId << action.addAction.id;
+ }
+ //with progression
+ else
+ {
+ stopId.remove(action.addAction.id);
+ if(!startId.contains(action.addAction.id))
+ startId << action.addAction.id;
+ }
+ if(internalRunningOperation.contains(action.addAction.id))
+ {
+ ItemOfCopyListWithMoreInformations &item=internalRunningOperation[action.addAction.id];
+ item.actionType=action.type;
+ item.custom_with_progression=custom_with_progression;
+ item.currentReadProgression=0;
+ item.currentWriteProgression=0;
+ }
+ }
+ break;
+ default:
+ //unknow code, ignore it
+ break;
+ }
+ index_for_loop++;
+ }
+ emit layoutChanged();
+ return QList<quint64>() << totalFile << totalSize << currentFile;
}
void TransferModel::setFacilityEngine(FacilityInterface * facilityEngine)
{
- this->facilityEngine=facilityEngine;
+ this->facilityEngine=facilityEngine;
}
int TransferModel::search(const QString &text,bool searchNext)
{
- emit layoutAboutToBeChanged();
- search_text=text;
- emit layoutChanged();
- if(transfertItemList.size()==0)
- return -1;
- if(text.isEmpty())
- return -1;
- if(searchNext)
- {
- currentIndexSearch++;
- if(currentIndexSearch>=loop_size)
- currentIndexSearch=0;
- }
- index_for_loop=0;
- loop_size=transfertItemList.size();
- while(index_for_loop<loop_size)
- {
- if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)
- {
- haveSearchItem=true;
- searchId=transfertItemList.at(currentIndexSearch).id;
- return currentIndexSearch;
- }
- currentIndexSearch++;
- if(currentIndexSearch>=loop_size)
- currentIndexSearch=0;
- index_for_loop++;
- }
- haveSearchItem=false;
- return -1;
+ emit layoutAboutToBeChanged();
+ search_text=text;
+ emit layoutChanged();
+ if(transfertItemList.size()==0)
+ return -1;
+ if(text.isEmpty())
+ return -1;
+ if(searchNext)
+ {
+ currentIndexSearch++;
+ if(currentIndexSearch>=loop_size)
+ currentIndexSearch=0;
+ }
+ index_for_loop=0;
+ loop_size=transfertItemList.size();
+ while(index_for_loop<loop_size)
+ {
+ if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)
+ {
+ haveSearchItem=true;
+ searchId=transfertItemList.at(currentIndexSearch).id;
+ return currentIndexSearch;
+ }
+ currentIndexSearch++;
+ if(currentIndexSearch>=loop_size)
+ currentIndexSearch=0;
+ index_for_loop++;
+ }
+ haveSearchItem=false;
+ return -1;
}
int TransferModel::searchPrev(const QString &text)
{
- emit layoutAboutToBeChanged();
- search_text=text;
- emit layoutChanged();
- if(transfertItemList.size()==0)
- return -1;
- if(text.isEmpty())
- return -1;
- if(currentIndexSearch==0)
- currentIndexSearch=loop_size-1;
- else
- currentIndexSearch--;
- index_for_loop=0;
- loop_size=transfertItemList.size();
- while(index_for_loop<loop_size)
- {
- if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)
- {
- haveSearchItem=true;
- searchId=transfertItemList.at(currentIndexSearch).id;
- return currentIndexSearch;
- }
- if(currentIndexSearch==0)
- currentIndexSearch=loop_size-1;
- else
- currentIndexSearch--;
- index_for_loop++;
- }
- haveSearchItem=false;
- return -1;
+ emit layoutAboutToBeChanged();
+ search_text=text;
+ emit layoutChanged();
+ if(transfertItemList.size()==0)
+ return -1;
+ if(text.isEmpty())
+ return -1;
+ if(currentIndexSearch==0)
+ currentIndexSearch=loop_size-1;
+ else
+ currentIndexSearch--;
+ index_for_loop=0;
+ loop_size=transfertItemList.size();
+ while(index_for_loop<loop_size)
+ {
+ if(transfertItemList.at(currentIndexSearch).source.indexOf(search_text,0,Qt::CaseInsensitive)!=-1 || transfertItemList.at(currentIndexSearch).destination.indexOf(search_text,0,Qt::CaseInsensitive)!=-1)
+ {
+ haveSearchItem=true;
+ searchId=transfertItemList.at(currentIndexSearch).id;
+ return currentIndexSearch;
+ }
+ if(currentIndexSearch==0)
+ currentIndexSearch=loop_size-1;
+ else
+ currentIndexSearch--;
+ index_for_loop++;
+ }
+ haveSearchItem=false;
+ return -1;
}
-void TransferModel::setFileProgression(QList<ProgressionItem> &progressionList)
+void TransferModel::setFileProgression(QList<Ultracopier::ProgressionItem> &progressionList)
{
- loop_size=progressionList.size();
- index_for_loop=0;
- while(index_for_loop<loop_size)
- {
- if(internalRunningOperation.contains(progressionList.at(index_for_loop).id))
- {
- internalRunningOperation[progressionList.at(index_for_loop).id].generalData.size=progressionList.at(index_for_loop).total;
- internalRunningOperation[progressionList.at(index_for_loop).id].currentProgression=progressionList.at(index_for_loop).current;
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- progressionList.removeAt(index_for_loop);
- #endif
- }
- index_for_loop++;
- }
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- if(progressionList.size()>0)
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"progression remaning items");
- #endif
+ loop_size=progressionList.size();
+ index_for_loop=0;
+ while(index_for_loop<loop_size)
+ {
+ if(internalRunningOperation.contains(progressionList.at(index_for_loop).id))
+ {
+ internalRunningOperation[progressionList.at(index_for_loop).id].generalData.size=progressionList.at(index_for_loop).total;
+ internalRunningOperation[progressionList.at(index_for_loop).id].currentReadProgression=progressionList.at(index_for_loop).currentRead;
+ internalRunningOperation[progressionList.at(index_for_loop).id].currentWriteProgression=progressionList.at(index_for_loop).currentWrite;
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ progressionList.removeAt(index_for_loop);
+ index_for_loop--;
+ loop_size--;
+ #endif
+ }
+ index_for_loop++;
+ }
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ if(progressionList.size()>0)
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"progression remaning items");
+ #endif
}
TransferModel::currentTransfertItem TransferModel::getCurrentTransfertItem()
{
- currentTransfertItem returnItem;
- returnItem.haveItem=startId.size()>0;
- if(returnItem.haveItem)
- {
- if(!internalRunningOperation.contains(*startId.constBegin()))
- {
- returnItem.haveItem=false;
- return returnItem;
- }
- const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*startId.constBegin()];
- returnItem.from=itemTransfer.generalData.sourceFullPath;
- returnItem.to=itemTransfer.generalData.destinationFullPath;
- returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size);
- switch(itemTransfer.actionType)
- {
- case CustomOperation:
- if(!itemTransfer.custom_with_progression)
- returnItem.progressBar_file=-1;
- else
- {
- if(itemTransfer.generalData.size>0)
- returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
- else
- returnItem.progressBar_file=-1;
- }
- break;
- case Transfer:
- if(itemTransfer.generalData.size>0)
- returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
- else
- returnItem.progressBar_file=0;
- break;
- //should never pass here
- case PostOperation:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
- returnItem.progressBar_file=65535;
- break;
- //should never pass here
- case PreOperation:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
- returnItem.progressBar_file=0;
- break;
- default:
- returnItem.progressBar_file=0;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Warning,QString("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
- break;
- }
- }
-/* else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("No have running item"));*/
- return returnItem;
+ currentTransfertItem returnItem;
+ returnItem.progressBar_read=-1;
+ returnItem.progressBar_write=0;
+ returnItem.haveItem=startId.size()>0;
+ if(returnItem.haveItem)
+ {
+ if(!internalRunningOperation.contains(*startId.constBegin()))
+ {
+ returnItem.haveItem=false;
+ return returnItem;
+ }
+ const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*startId.constBegin()];
+ returnItem.from=itemTransfer.generalData.sourceFullPath;
+ returnItem.to=itemTransfer.generalData.destinationFullPath;
+ returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size);
+ returnItem.id=itemTransfer.generalData.id;
+ switch(itemTransfer.actionType)
+ {
+ case Ultracopier::CustomOperation:
+ if(!itemTransfer.custom_with_progression)
+ returnItem.progressBar_read=-1;
+ else
+ {
+ if(itemTransfer.generalData.size>0)
+ {
+ returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535;
+ returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535;
+ }
+ else
+ returnItem.progressBar_read=-1;
+ }
+ break;
+ case Ultracopier::Transfer:
+ if(itemTransfer.generalData.size>0)
+ {
+ returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535;
+ returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535;
+ }
+ else
+ {
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ }
+ break;
+ //should never pass here
+ case Ultracopier::PostOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_read=65535;
+ returnItem.progressBar_write=65535;
+ break;
+ //should never pass here
+ case Ultracopier::PreOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ break;
+ default:
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ break;
+ }
+ }
+ else
+ {
+ returnItem.haveItem=stopId.size()>0;
+ if(returnItem.haveItem)
+ {
+ if(!internalRunningOperation.contains(*stopId.constBegin()))
+ {
+ returnItem.haveItem=false;
+ return returnItem;
+ }
+ const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*stopId.constBegin()];
+ returnItem.from=itemTransfer.generalData.sourceFullPath;
+ returnItem.to=itemTransfer.generalData.destinationFullPath;
+ returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size);
+ returnItem.id=itemTransfer.generalData.id;
+ switch(itemTransfer.actionType)
+ {
+ case Ultracopier::CustomOperation:
+ if(!itemTransfer.custom_with_progression)
+ returnItem.progressBar_read=-1;
+ else
+ {
+ if(itemTransfer.generalData.size>0)
+ {
+ returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535;
+ returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535;
+ }
+ else
+ returnItem.progressBar_read=-1;
+ }
+ break;
+ case Ultracopier::Transfer:
+ if(itemTransfer.generalData.size>0)
+ {
+ returnItem.progressBar_read=((double)itemTransfer.currentReadProgression/itemTransfer.generalData.size)*65535;
+ returnItem.progressBar_write=((double)itemTransfer.currentWriteProgression/itemTransfer.generalData.size)*65535;
+ }
+ else
+ {
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ }
+ break;
+ case Ultracopier::PostOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_read=65535;
+ returnItem.progressBar_write=65535;
+ break;
+ //should never pass here
+ case Ultracopier::PreOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_read=0;
+ returnItem.progressBar_write=0;
+ break;
+ default:
+ returnItem.progressBar_read=65535;
+ returnItem.progressBar_write=65535;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ break;
+ }
+ }
+ }
+ if(returnItem.haveItem && returnItem.progressBar_read!=-1 && returnItem.progressBar_write>returnItem.progressBar_read)
+ {
+ int tempVar=returnItem.progressBar_write;
+ returnItem.progressBar_write=returnItem.progressBar_read;
+ returnItem.progressBar_read=tempVar;
+ }
+ return returnItem;
}
diff --git a/plugins-alternative/Themes/Teracopy/TransferModel.h b/plugins-alternative/Themes/Teracopy/TransferModel.h
index 486532e..977c986 100644
--- a/plugins-alternative/Themes/Teracopy/TransferModel.h
+++ b/plugins-alternative/Themes/Teracopy/TransferModel.h
@@ -17,76 +17,76 @@
/// \brief model to store the transfer list
class TransferModel : public QAbstractTableModel
{
- Q_OBJECT
+ Q_OBJECT
public:
- /// \brief the transfer item displayed
- struct transfertItem
- {
- quint64 id;
- QString source;
- QString size;
- QString destination;
- };
- /// \brief the transfer item with progression
- struct ItemOfCopyListWithMoreInformations
- {
- quint64 currentProgression;
- ItemOfCopyList generalData;
- ActionTypeCopyList actionType;
- bool custom_with_progression;
- };
- /// \brief returned first transfer item
- struct currentTransfertItem
- {
- quint64 id;
- bool haveItem;
- QString from;
- QString to;
- QString current_file;
- int progressBar_file;
- };
+ /// \brief the transfer item displayed
+ struct transfertItem
+ {
+ quint64 id;
+ QString source;
+ QString size;
+ QString destination;
+ };
+ /// \brief the transfer item with progression
+ struct ItemOfCopyListWithMoreInformations
+ {
+ quint64 currentReadProgression,currentWriteProgression;
+ Ultracopier::ItemOfCopyList generalData;
+ Ultracopier::ActionTypeCopyList actionType;
+ bool custom_with_progression;
+ };
+ /// \brief returned first transfer item
+ struct currentTransfertItem
+ {
+ quint64 id;
+ bool haveItem;
+ QString from;
+ QString to;
+ QString current_file;
+ int progressBar_read,progressBar_write;
+ };
- TransferModel();
+ TransferModel();
- virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
- virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
- virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
- virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
- virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
-
- QList<quint64> synchronizeItems(const QList<returnActionOnCopyList>& returnActions);
- void setFacilityEngine(FacilityInterface * facilityEngine);
+ virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
+ virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
+ virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
+ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
- int search(const QString &text,bool searchNext);
- int searchPrev(const QString &text);
+ QList<quint64> synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions);
+ void setFacilityEngine(FacilityInterface * facilityEngine);
- void setFileProgression(QList<ProgressionItem> &progressionList);
+ int search(const QString &text,bool searchNext);
+ int searchPrev(const QString &text);
- currentTransfertItem getCurrentTransfertItem();
+ void setFileProgression(QList<Ultracopier::ProgressionItem> &progressionList);
- quint64 firstId();
+ currentTransfertItem getCurrentTransfertItem();
+
+ quint64 firstId();
protected:
- QList<transfertItem> transfertItemList;///< To have a transfer list for the user
- QList<transfertItem> transfertItemListDone;///< To have a transfer list for the user
- QSet<quint64> startId,stopId;///< To show what is started, what is stopped
- QHash<quint64,ItemOfCopyListWithMoreInformations> internalRunningOperation;///< to have progression and stat
- QIcon iconStart,iconPause,iconStop;
+ QList<transfertItem> transfertItemList;///< To have a transfer list for the user
+ QList<transfertItem> transfertItemListDone;///< To have a transfer list for the user
+ QSet<quint64> startId,stopId;///< To show what is started, what is stopped
+ QHash<quint64,ItemOfCopyListWithMoreInformations> internalRunningOperation;///< to have progression and stat
+ QIcon iconStart,iconPause,iconStop;
private:
- int loop_size,index_for_loop;
- int sub_loop_size,sub_index_for_loop;
- int row,column;
- quint64 totalFile,totalSize,currentFile;
- FacilityInterface * facilityEngine;
- QString search_text;
- /// \brief index from start the search, decresed by remove before it
- int currentIndexSearch;
- bool haveSearchItem;
- quint64 searchId;
+ int loop_size,index_for_loop;
+ int sub_loop_size,sub_index_for_loop;
+ int row,column;
+ quint64 totalFile,totalSize,currentFile;
+ FacilityInterface * facilityEngine;
+ QString search_text;
+ /// \brief index from start the search, decresed by remove before it
+ int currentIndexSearch;
+ bool haveSearchItem;
+ quint64 searchId;
signals:
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief To debug source
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
- #endif
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ /// \brief To debug source
+ void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
+ #endif
};
#endif // TRANSFERMODEL_H
diff --git a/plugins-alternative/Themes/Teracopy/Variable.h b/plugins-alternative/Themes/Teracopy/Variable.h
index 8179c93..963d0c8 100644
--- a/plugins-alternative/Themes/Teracopy/Variable.h
+++ b/plugins-alternative/Themes/Teracopy/Variable.h
@@ -1,8 +1,7 @@
/** \file Variable.h
\brief Define the environment variable
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#ifndef VARIABLE_H
#define VARIABLE_H
diff --git a/plugins-alternative/Themes/Teracopy/documentation.dox b/plugins-alternative/Themes/Teracopy/documentation.dox
index a61692b..c1720d2 100755..100644
--- a/plugins-alternative/Themes/Teracopy/documentation.dox
+++ b/plugins-alternative/Themes/Teracopy/documentation.dox
@@ -11,12 +11,12 @@
\section mainpage_overview Overview
It's Teracopy interface, to come from Teracopy to Ultracopier.\n
- More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier 0.3 project as alternative plugin.
+ More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier project as alternative plugin.
\section mainpage_platforms Platforms
- This plugin might be usable in all environments where you find Qt 4.\n
- To be compatible with the official Ultracopier plugins, you need compil it with Gcc, Qt4.8, and same env as Ultracopier have been compiled, see the documentation.
+ Ultracopier might be usable in all environments where you find Qt 5.\n
+ Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0.
\section mainpage_downloads Downloads
diff --git a/plugins-alternative/Themes/Teracopy/factory.cpp b/plugins-alternative/Themes/Teracopy/factory.cpp
index 89c3787..2b176bf 100644
--- a/plugins-alternative/Themes/Teracopy/factory.cpp
+++ b/plugins-alternative/Themes/Teracopy/factory.cpp
@@ -1,83 +1,70 @@
/** \file factory.cpp
\brief Define the factory core
\author alpha_one_x86
-\version 0.3
-\date 2010 */
-
-#include <QtCore>
+*/
#include "factory.h"
-PluginInterface_Themes * Factory::getInstance()
+PluginInterface_Themes * ThemesFactory::getInstance()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- PluginInterface_Themes * newInterface=new InterfacePlugin(facilityEngine);
- connect(newInterface,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)));
- connect(this,SIGNAL(reloadLanguage()),newInterface,SLOT(newLanguageLoaded()));
- return newInterface;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ Themes * newInterface=new Themes(facilityEngine);
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ connect(newInterface,&Themes::debugInformation,this,&PluginInterface_ThemesFactory::debugInformation);
+ #endif
+ connect(this,&ThemesFactory::reloadLanguage,newInterface,&Themes::newLanguageLoaded);
+ return newInterface;
}
-void Factory::setResources(OptionInterface *,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,bool portableVersion)
+void ThemesFactory::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion)
{
- this->facilityEngine=facilityEngine;
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, writePath: "+writePath+", pluginPath: "+pluginPath);
- Q_UNUSED(portableVersion);
+ Q_UNUSED(writePath);
+ Q_UNUSED(pluginPath);
+ this->facilityEngine=facilityInterface;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start, writePath: "+writePath+", pluginPath: "+pluginPath);
+ Q_UNUSED(portableVersion);
+ Q_UNUSED(options);
}
-QWidget * Factory::options()
+QWidget * ThemesFactory::options()
{
- return NULL;
+ return NULL;
}
-void Factory::resetOptions()
+void ThemesFactory::resetOptions()
{
}
-QIcon Factory::getIcon(const QString &fileName)
+QIcon ThemesFactory::getIcon(const QString &fileName) const
{
- if(fileName=="SystemTrayIcon/exit.png")
- {
- QIcon tempIcon=QIcon::fromTheme("application-exit");
- if(!tempIcon.isNull())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("use substitution ionc for: %1").arg(fileName));
- return tempIcon;
- }
- }
- if(fileName=="SystemTrayIcon/add.png")
- {
- QIcon tempIcon=QIcon::fromTheme("list-add");
- if(!tempIcon.isNull())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("use substitution ionc for: %1").arg(fileName));
- return tempIcon;
- }
- }
- if(fileName=="SystemTrayIcon/informations.png")
- {
- QIcon tempIcon=QIcon::fromTheme("help-about");
- if(!tempIcon.isNull())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("use substitution ionc for: %1").arg(fileName));
- return tempIcon;
- }
- }
- if(fileName=="SystemTrayIcon/options.png")
- {
- QIcon tempIcon=QIcon::fromTheme("applications-system");
- if(!tempIcon.isNull())
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("use substitution ionc for: %1").arg(fileName));
- return tempIcon;
- }
- }
- return QIcon(":/resources/"+fileName);
+ if(fileName=="SystemTrayIcon/exit.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("application-exit");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/add.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("list-add");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/informations.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("help-about");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/options.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("applications-system");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ return QIcon(":/Themes/Teracopy/resources/"+fileName);
}
-void Factory::newLanguageLoaded()
+void ThemesFactory::newLanguageLoaded()
{
- emit reloadLanguage();
+ emit reloadLanguage();
}
-
-Q_EXPORT_PLUGIN2(interface, Factory);
-
diff --git a/plugins-alternative/Themes/Teracopy/factory.h b/plugins-alternative/Themes/Teracopy/factory.h
index babac47..0b3bb3f 100644
--- a/plugins-alternative/Themes/Teracopy/factory.h
+++ b/plugins-alternative/Themes/Teracopy/factory.h
@@ -1,8 +1,7 @@
/** \file factory.h
\brief Define the factory
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
#ifndef FACTORY_H
#define FACTORY_H
@@ -17,30 +16,27 @@
#include "Environment.h"
/// \brief Define the factory, to create instance of the interface
-class Factory : public PluginInterface_ThemesFactory
+class ThemesFactory : public PluginInterface_ThemesFactory
{
- Q_OBJECT
- Q_INTERFACES(PluginInterface_ThemesFactory)
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.ThemesFactory/1.0.1.0" FILE "plugin.json")
+ Q_INTERFACES(PluginInterface_ThemesFactory)
public:
- /// \brief to return the instance of the copy engine
- PluginInterface_Themes * getInstance();
- /// \brief set the resources, to store options, to have facilityInterface
- void setResources(OptionInterface * optionsEngine,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,bool portableVersion);
- /// \brief to get the default options widget
- QWidget * options();
- /// \brief to get a resource icon
- QIcon getIcon(const QString &fileName);
+ /// \brief to return the instance of the copy engine
+ PluginInterface_Themes * getInstance();
+ /// \brief set the resources, to store options, to have facilityInterface
+ void setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityInterface,const bool &portableVersion);
+ /// \brief to get the default options widget
+ QWidget * options();
+ /// \brief to get a resource icon
+ QIcon getIcon(const QString &fileName) const;
public slots:
- void resetOptions();
- void newLanguageLoaded();
+ void resetOptions();
+ void newLanguageLoaded();
signals:
- void reloadLanguage();
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief To debug source
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
- #endif
+ void reloadLanguage();
private:
- FacilityInterface * facilityEngine;
+ FacilityInterface * facilityEngine;
};
#endif // FACTORY_H
diff --git a/plugins-alternative/Themes/Teracopy/informations.xml b/plugins-alternative/Themes/Teracopy/informations.xml
index 5fd194d..534db9a 100644
--- a/plugins-alternative/Themes/Teracopy/informations.xml
+++ b/plugins-alternative/Themes/Teracopy/informations.xml
@@ -17,11 +17,10 @@
<description xml:lang="en"><![CDATA[Teracopy style for Ultracopier, reproduct with screenshot on internet]]></description>
<description xml:lang="fr"><![CDATA[Style Teracopy pour Ultracopier, reproduit avec les screenshots vu sur internet]]></description>
<!-- Version of this release of this plugin, need be like that's: A.B.C.D, where A, B, C and D is number -->
- <version>0.3.1.0</version>
+ <version>1.2.3.6</version>
<!-- This internal name should never change, because it is used to detect when a particular plugin is updated. It must comprise only lower case ASCII characters (a-z), numerical digits (0-9), "-", "." or "_", and it must be be unique within the category. And have size lower than 64 char. -->
<name>Teracopy</name>
<!-- Dependency checking. This is used to check when a plugin may not be compatible with an updated version of either Ultracopier or another plugin. This example only checks Ultracopier. -->
<dependencies><![CDATA[
- >=ultracopier-0.3.1.0
]]></dependencies>
</package> \ No newline at end of file
diff --git a/plugins-alternative/Themes/Teracopy/interface.cpp b/plugins-alternative/Themes/Teracopy/interface.cpp
index a7014dd..64220d0 100644
--- a/plugins-alternative/Themes/Teracopy/interface.cpp
+++ b/plugins-alternative/Themes/Teracopy/interface.cpp
@@ -1,376 +1,431 @@
/** \file interface.cpp
\brief Define the interface core
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+*/
-#include <QtCore>
#include <QMessageBox>
+#include <cmath>
#include "interface.h"
#include "ui_interface.h"
-InterfacePlugin::InterfacePlugin(FacilityInterface * facilityEngine) :
- ui(new Ui::interfaceCopy())
+// The cmath header from MSVC does not contain round()
+#if (defined(_WIN64) || defined(_WIN32)) && defined(_MSC_VER)
+inline double round(double d) {
+ return floor( d + 0.5 );
+}
+#endif
+
+Themes::Themes(FacilityInterface * facilityEngine) :
+ ui(new Ui::interfaceCopy())
{
- this->facilityEngine=facilityEngine;
- ui->setupUi(this);
- ui->TransferList->setModel(&transferModel);
- transferModel.setFacilityEngine(facilityEngine);
+ this->facilityEngine=facilityEngine;
+ ui->setupUi(this);
+ transferModel.setFacilityEngine(facilityEngine);
+ ui->TransferList->setModel(&transferModel);
+
+ currentFile = 0;
+ totalFile = 0;
+ currentSize = 0;
+ totalSize = 0;
+ storeIsInPause = false;
+ modeIsForced = false;
+ haveStarted = false;
+ speedString = facilityEngine->speedToString(0);
+ ui->toolButtonMenu->setMenu(&menu);
- currentFile = 0;
- totalFile = 0;
- currentSize = 0;
- totalSize = 0;
- this->show();
- storeIsInPause = false;
- isInPause(false);
- modeIsForced = false;
- haveStarted = false;
- speedString = facilityEngine->speedToString(0);
- ui->toolButtonMenu->setMenu(&menu);
-
- connect(ui->actionAddFile,SIGNAL(triggered()),this,SLOT(forcedModeAddFile()));
- connect(ui->actionAddFileToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToCopy()));
- connect(ui->actionAddFileToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFileToMove()));
- connect(ui->actionAddFolderToCopy,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToCopy()));
- connect(ui->actionAddFolderToMove,SIGNAL(triggered()),this,SLOT(forcedModeAddFolderToMove()));
- connect(ui->actionAddFolder,SIGNAL(triggered()),this,SLOT(forcedModeAddFolder()));
+ connect(ui->actionAddFile,&QAction::triggered,this,&Themes::forcedModeAddFile);
+ connect(ui->actionAddFileToCopy,&QAction::triggered,this,&Themes::forcedModeAddFileToCopy);
+ connect(ui->actionAddFileToMove,&QAction::triggered,this,&Themes::forcedModeAddFileToMove);
+ connect(ui->actionAddFolderToCopy,&QAction::triggered,this,&Themes::forcedModeAddFolderToCopy);
+ connect(ui->actionAddFolderToMove,&QAction::triggered,this,&Themes::forcedModeAddFolderToMove);
+ connect(ui->actionAddFolder,&QAction::triggered,this,&Themes::forcedModeAddFolder);
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- connect(&transferModel,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)),this,SIGNAL(debugInformation(DebugLevel,QString,QString,QString,int)));
- #endif
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ connect(&transferModel,&TransferModel::debugInformation,this,&Themes::debugInformation);
+ #endif
+
+ progressColorWrite=QApplication::palette().color(QPalette::Highlight);
+ progressColorRead=QApplication::palette().color(QPalette::AlternateBase);
+ progressColorRemaining=QApplication::palette().color(QPalette::Base);
+
+ ui->progressBar_all->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}")
+ .arg(progressColorRemaining.name())
+ .arg(progressColorWrite.name())
+ );
+ ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}")
+ .arg(progressColorRemaining.name())
+ .arg(progressColorWrite.name())
+ );
+ show();
+ isInPause(false);
}
-InterfacePlugin::~InterfacePlugin()
+Themes::~Themes()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
}
-QWidget * InterfacePlugin::getOptionsEngineWidget()
+QWidget * Themes::getOptionsEngineWidget()
{
- return &optionEngineWidget;
+ return &optionEngineWidget;
}
-void InterfacePlugin::getOptionsEngineEnabled(bool isEnabled)
+void Themes::getOptionsEngineEnabled(const bool &isEnabled)
{
- Q_UNUSED(isEnabled);
+ Q_UNUSED(isEnabled);
}
/// \brief set if transfer list is exportable/importable
-void InterfacePlugin::setTransferListOperation(TransferListOperation transferListOperation)
+void Themes::setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation)
+{
+ Q_UNUSED(transferListOperation);
+}
+
+void Themes::closeEvent(QCloseEvent *event)
+{
+ event->ignore();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ this->hide();
+ emit cancel();
+}
+
+void Themes::updateOverallInformation()
{
- Q_UNUSED(transferListOperation);
+ ui->overall->setText(tr("Total: %1 of %2").arg(facilityEngine->sizeToString(currentSize)).arg(facilityEngine->sizeToString(totalSize)));
+ ui->labelNumberFile->setText(tr("%1 of %2").arg(currentFile).arg(totalFile));
}
-void InterfacePlugin::closeEvent(QCloseEvent *event)
+void Themes::actionInProgess(const Ultracopier::EngineActionInProgress &action)
{
- event->ignore();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- this->hide();
- emit cancel();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"start: "+QString::number(action));
+ this->action=action;
+ ui->pauseButton->setEnabled(action!=Ultracopier::Idle);
+ switch(action)
+ {
+ case Ultracopier::Copying:
+ case Ultracopier::CopyingAndListing:
+ ui->progressBar_all->setMaximum(65535);
+ ui->progressBar_all->setMinimum(0);
+ break;
+ case Ultracopier::Listing:
+ ui->progressBar_all->setMaximum(0);
+ ui->progressBar_all->setMinimum(0);
+ break;
+ case Ultracopier::Idle:
+ if(haveStarted)
+ emit cancel();
+ break;
+ default:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"Very wrong switch case!");
+ break;
+ }
+ switch(action)
+ {
+ case Ultracopier::Copying:
+ case Ultracopier::CopyingAndListing:
+ haveStarted=true;
+ ui->cancelButton->setText(facilityEngine->translateText("Quit"));
+ if(storeIsInPause)
+ ui->pauseButton->setText(facilityEngine->translateText("Start"));
+ else
+ ui->pauseButton->setText(facilityEngine->translateText("Pause"));
+ break;
+ case Ultracopier::Idle:
+ ui->cancelButton->setText(facilityEngine->translateText("Quit"));
+ break;
+ default:
+ break;
+ }
}
-void InterfacePlugin::updateOverallInformation()
+void Themes::newFolderListing(const QString &path)
{
- ui->overall->setText(tr("Total: %1 of %2").arg(facilityEngine->sizeToString(currentSize)).arg(facilityEngine->sizeToString(totalSize)));
- ui->labelNumberFile->setText(tr("%1 of %2").arg(currentFile).arg(totalFile));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ if(action==Ultracopier::Listing)
+ ui->from->setText(path);
}
-void InterfacePlugin::actionInProgess(EngineActionInProgress action)
+void Themes::detectedSpeed(const quint64 &speed)//in byte per seconds
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Information,"start: "+QString::number(action));
- this->action=action;
- ui->pauseButton->setEnabled(action!=Idle);
- switch(action)
- {
- case Copying:
- case CopyingAndListing:
- ui->progressBar_all->setMaximum(65535);
- ui->progressBar_all->setMinimum(0);
- break;
- case Listing:
- ui->progressBar_all->setMaximum(0);
- ui->progressBar_all->setMinimum(0);
- break;
- case Idle:
- if(haveStarted)
- emit cancel();
- break;
- default:
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"Very wrong switch case!");
- break;
- }
- switch(action)
- {
- case Copying:
- case CopyingAndListing:
- haveStarted=true;
- break;
- case Idle:
- ui->cancelButton->setText(facilityEngine->translateText("Quit"));
- break;
- default:
- break;
- }
+ speedString=facilityEngine->speedToString(speed);
}
-void InterfacePlugin::newFolderListing(const QString &path)
+/** \brief support speed limitation */
+void Themes::setSupportSpeedLimitation(const bool &supportSpeedLimitationBool)
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- if(action==Listing)
- ui->from->setText(path);
+ Q_UNUSED(supportSpeedLimitationBool);
}
-void InterfacePlugin::detectedSpeed(const quint64 &speed)//in byte per seconds
+void Themes::remainingTime(const int &remainingSeconds)
{
- speedString=facilityEngine->speedToString(speed);
+ if(remainingSeconds==-1)
+ ui->labelTimeRemaining->setText("<html><body>&#8734;</body></html>");
+ else
+ {
+ Ultracopier::TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(remainingSeconds);
+ ui->labelTimeRemaining->setText(QString::number(time.hour)+":"+QString::number(time.minute)+":"+QString::number(time.second));
+ }
}
-void InterfacePlugin::remainingTime(const int &remainingSeconds)
+void Themes::newCollisionAction(const QString &action)
{
- if(remainingSeconds==-1)
- ui->labelTimeRemaining->setText("<html><body>&#8734;</body></html>");
- else
- {
- TimeDecomposition time=facilityEngine->secondsToTimeDecomposition(remainingSeconds);
- ui->labelTimeRemaining->setText(QString::number(time.hour)+":"+QString::number(time.minute)+":"+QString::number(time.second));
- }
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ Q_UNUSED(action);
}
-void InterfacePlugin::newCollisionAction(const QString &action)
+void Themes::newErrorAction(const QString &action)
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- Q_UNUSED(action);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ Q_UNUSED(action);
}
-void InterfacePlugin::newErrorAction(const QString &action)
+void Themes::errorDetected()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- Q_UNUSED(action);
}
-void InterfacePlugin::errorDetected()
+/// \brief new error
+void Themes::errorToRetry(const QString &source,const QString &destination,const QString &error)
{
+ Q_UNUSED(source);
+ Q_UNUSED(destination);
+ Q_UNUSED(error);
}
//speed limitation
-bool InterfacePlugin::setSpeedLimitation(const qint64 &speedLimitation)
+bool Themes::setSpeedLimitation(const qint64 &speedLimitation)
{
- if(speedLimitation>0)
- emit newSpeedLimitation(0);
- return true;
+ if(speedLimitation>0)
+ emit newSpeedLimitation(0);
+ return true;
}
//get information about the copy
-void InterfacePlugin::setGeneralProgression(const quint64 &current,const quint64 &total)
+void Themes::setGeneralProgression(const quint64 &current,const quint64 &total)
{
- currentSize=current;
- totalSize=total;
- if(total>0)
- {
- int newIndicator=((double)current/total)*65535;
- ui->progressBar_all->setValue(newIndicator);
- }
- else
- ui->progressBar_all->setValue(0);
+ currentSize=current;
+ totalSize=total;
+ if(total>0)
+ {
+ int newIndicator=((double)current/total)*65535;
+ ui->progressBar_all->setValue(newIndicator);
+ }
+ else
+ ui->progressBar_all->setValue(0);
}
-void InterfacePlugin::setCollisionAction(const QList<QPair<QString,QString> > &list)
+void Themes::setCollisionAction(const QList<QPair<QString,QString> > &list)
{
- Q_UNUSED(list);
+ Q_UNUSED(list);
}
-void InterfacePlugin::setErrorAction(const QList<QPair<QString,QString> > &list)
+void Themes::setErrorAction(const QList<QPair<QString,QString> > &list)
{
- Q_UNUSED(list);
+ Q_UNUSED(list);
}
-void InterfacePlugin::setCopyType(CopyType type)
+void Themes::setCopyType(const Ultracopier::CopyType &type)
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- this->type=type;
- updateModeAndType();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ this->type=type;
+ updateModeAndType();
}
-void InterfacePlugin::forceCopyMode(CopyMode mode)
+void Themes::forceCopyMode(const Ultracopier::CopyMode &mode)
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- modeIsForced=true;
- this->mode=mode;
- if(mode==Copy)
- this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Copy"));
- else
- this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Move"));
- updateModeAndType();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ modeIsForced=true;
+ this->mode=mode;
+ if(mode==Ultracopier::Copy)
+ this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Copy"));
+ else
+ this->setWindowTitle("Ultracopier - "+facilityEngine->translateText("Move"));
+ updateModeAndType();
}
-void InterfacePlugin::updateTitle()
+void Themes::updateTitle()
{
- QString startString;
- if(action==Copying || action==CopyingAndListing)
- startString=tr("%1% done").arg(((double)currentSize/totalSize)*100);
- else
- startString="Ultracopier";
- startString+=" - ";
- if(mode==Copy)
- this->setWindowTitle(startString+facilityEngine->translateText("Copy")+" ("+speedString+")");
- else
- this->setWindowTitle(startString+facilityEngine->translateText("Move")+" ("+speedString+")");
+ QString startString;
+ if(action==Ultracopier::Copying || action==Ultracopier::CopyingAndListing)
+ startString=tr("%1% done").arg(((double)currentSize/totalSize)*100);
+ else
+ startString="Ultracopier";
+ startString+=" - ";
+ if(mode==Ultracopier::Copy)
+ this->setWindowTitle(startString+facilityEngine->translateText("Copy")+" ("+speedString+")");
+ else
+ this->setWindowTitle(startString+facilityEngine->translateText("Move")+" ("+speedString+")");
}
-void InterfacePlugin::haveExternalOrder()
+void Themes::haveExternalOrder()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
// ui->moreButton->toggle();
}
-void InterfacePlugin::isInPause(bool isInPause)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"isInPause: "+QString::number(isInPause));
- //resume in auto the pause
- storeIsInPause=isInPause;
- if(isInPause)
- ui->pauseButton->setText(facilityEngine->translateText("Resume"));
- else
- ui->pauseButton->setText(facilityEngine->translateText("Pause"));
-}
-
-void InterfacePlugin::updateCurrentFileInformation()
-{
- TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem();
- if(transfertItem.haveItem)
- {
- ui->from->setText(transfertItem.from);
- //commented because not displayed on this interface
- //ui->to->setText(transfertItem.to);
- //ui->current_file->setText(transfertItem.current_file);
- if(transfertItem.progressBar_file!=-1)
- {
- ui->progressBar_file->setRange(0,65535);
- ui->progressBar_file->setValue(transfertItem.progressBar_file);
- }
- else
- ui->progressBar_file->setRange(0,0);
- }
- else
- {
- ui->from->setText("");
- //commented because not displayed on this interface
- //ui->to->setText("");
- //ui->current_file->setText("-");
- if(haveStarted && transferModel.rowCount()==0)
- ui->progressBar_file->setValue(65535);
- else if(!haveStarted)
- ui->progressBar_file->setValue(0);
- }
+void Themes::isInPause(const bool &isInPause)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"isInPause: "+QString::number(isInPause));
+ //resume in auto the pause
+ storeIsInPause=isInPause;
+ if(isInPause)
+ ui->pauseButton->setText(facilityEngine->translateText("Resume"));
+ else
+ ui->pauseButton->setText(facilityEngine->translateText("Pause"));
+}
+
+void Themes::updateCurrentFileInformation()
+{
+ TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem();
+ if(transfertItem.haveItem)
+ {
+ ui->from->setText(transfertItem.from);
+ //commented because not displayed on this interface
+ //ui->to->setText(transfertItem.to);
+ //ui->current_file->setText(transfertItem.current_file);
+ if(transfertItem.progressBar_read!=-1)
+ {
+ ui->progressBar_file->setRange(0,65535);
+ if(transfertItem.progressBar_read!=transfertItem.progressBar_write)
+ {
+ float permilleread=round((float)transfertItem.progressBar_read/65535*1000)/1000;
+ float permillewrite=permilleread-0.001;
+ ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border: 1px solid grey;text-align: center;background-color: qlineargradient(spread:pad, x1:%1, y1:0, x2:%2, y2:0, stop:0 %3, stop:1 %4);}QProgressBar::chunk{background-color:%5;}")
+ .arg(permilleread)
+ .arg(permillewrite)
+ .arg(progressColorRemaining.name())
+ .arg(progressColorRead.name())
+ .arg(progressColorWrite.name())
+ );
+ }
+ else
+ ui->progressBar_file->setStyleSheet(QStringLiteral("QProgressBar{border:1px solid grey;text-align:center;background-color:%1;}QProgressBar::chunk{background-color:%2;}")
+ .arg(progressColorRemaining.name())
+ .arg(progressColorWrite.name())
+ );
+ ui->progressBar_file->setValue(transfertItem.progressBar_write);
+ }
+ else
+ ui->progressBar_file->setRange(0,0);
+ }
+ else
+ {
+ ui->from->setText("");
+ //commented because not displayed on this interface
+ //ui->to->setText("");
+ //ui->current_file->setText("-");
+ if(haveStarted && transferModel.rowCount()==0)
+ ui->progressBar_file->setValue(65535);
+ else if(!haveStarted)
+ ui->progressBar_file->setValue(0);
+ }
}
-void InterfacePlugin::on_cancelButton_clicked()
+void Themes::on_cancelButton_clicked()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- this->hide();
- emit cancel();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ this->hide();
+ emit cancel();
}
-void InterfacePlugin::on_pauseButton_clicked()
+void Themes::on_pauseButton_clicked()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- if(storeIsInPause)
- emit resume();
- else
- emit pause();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ if(storeIsInPause)
+ emit resume();
+ else
+ emit pause();
}
-void InterfacePlugin::on_skipButton_clicked()
+void Themes::on_skipButton_clicked()
{
- TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem();
- if(transfertItem.haveItem)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("skip at running: %1").arg(transfertItem.id));
- emit skip(transfertItem.id);
- }
- else
- {
- if(transferModel.rowCount()>1)
- {
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("skip at idle: %1").arg(transferModel.firstId()));
- emit skip(transferModel.firstId());
- }
- else
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"unable to skip the transfer, because no transfer running");
- }
+ TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem();
+ if(transfertItem.haveItem)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("skip at running: %1").arg(transfertItem.id));
+ emit skip(transfertItem.id);
+ }
+ else
+ {
+ if(transferModel.rowCount()>1)
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("skip at idle: %1").arg(transferModel.firstId()));
+ emit skip(transferModel.firstId());
+ }
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"unable to skip the transfer, because no transfer running");
+ }
}
-void InterfacePlugin::updateModeAndType()
+void Themes::updateModeAndType()
{
- menu.clear();
- if(modeIsForced)
- {
- menu.addAction(ui->actionAddFile);
- if(type==FileAndFolder)
- menu.addAction(ui->actionAddFolder);
- }
- else
- {
- menu.addAction(ui->actionAddFileToCopy);
- menu.addAction(ui->actionAddFileToMove);
- if(type==FileAndFolder)
- {
- menu.addAction(ui->actionAddFolderToCopy);
- menu.addAction(ui->actionAddFolderToMove);
- }
- }
+ menu.clear();
+ if(modeIsForced)
+ {
+ menu.addAction(ui->actionAddFile);
+ if(type==Ultracopier::FileAndFolder)
+ menu.addAction(ui->actionAddFolder);
+ }
+ else
+ {
+ menu.addAction(ui->actionAddFileToCopy);
+ menu.addAction(ui->actionAddFileToMove);
+ if(type==Ultracopier::FileAndFolder)
+ {
+ menu.addAction(ui->actionAddFolderToCopy);
+ menu.addAction(ui->actionAddFolderToMove);
+ }
+ }
}
-void InterfacePlugin::forcedModeAddFile()
+void Themes::forcedModeAddFile()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit userAddFile(mode);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ emit userAddFile(mode);
}
-void InterfacePlugin::forcedModeAddFolder()
+void Themes::forcedModeAddFolder()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit userAddFolder(mode);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ emit userAddFolder(mode);
}
-void InterfacePlugin::forcedModeAddFileToCopy()
+void Themes::forcedModeAddFileToCopy()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit userAddFile(Copy);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ emit userAddFile(Ultracopier::Copy);
}
-void InterfacePlugin::forcedModeAddFolderToCopy()
+void Themes::forcedModeAddFolderToCopy()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit userAddFolder(Copy);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ emit userAddFolder(Ultracopier::Copy);
}
-void InterfacePlugin::forcedModeAddFileToMove()
+void Themes::forcedModeAddFileToMove()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit userAddFile(Move);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ emit userAddFile(Ultracopier::Move);
}
-void InterfacePlugin::forcedModeAddFolderToMove()
+void Themes::forcedModeAddFolderToMove()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- emit userAddFolder(Move);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ emit userAddFolder(Ultracopier::Move);
}
//set the translate
-void InterfacePlugin::newLanguageLoaded()
+void Themes::newLanguageLoaded()
{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start");
- if(modeIsForced)
- forceCopyMode(mode);
- ui->retranslateUi(this);
- if(haveStarted)
- updateCurrentFileInformation();
- updateOverallInformation();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
+ if(modeIsForced)
+ forceCopyMode(mode);
+ ui->retranslateUi(this);
+ if(haveStarted)
+ updateCurrentFileInformation();
+ updateOverallInformation();
}
/*
@@ -378,68 +433,68 @@ void InterfacePlugin::newLanguageLoaded()
Return[1]: totalSize
Return[2]: currentFile
*/
-void InterfacePlugin::getActionOnList(const QList<returnActionOnCopyList>& returnActions)
-{
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start, returnActions.size(): "+QString::number(returnActions.size()));
- QList<quint64> returnValue=transferModel.synchronizeItems(returnActions);
- totalFile+=returnValue[0];
- totalSize+=returnValue[1];
- currentFile+=returnValue[2];
- if(transferModel.rowCount()==0)
- {
- ui->skipButton->setEnabled(false);
- ui->progressBar_all->setValue(65535);
- ui->progressBar_file->setValue(65535);
- currentSize=totalSize;
- }
- else
- ui->skipButton->setEnabled(true);
- updateOverallInformation();
- ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"transferModel.rowCount(): "+QString::number(transferModel.rowCount()));
-}
-
-void InterfacePlugin::setFileProgression(const QList<ProgressionItem> &progressionList)
-{
- QList<ProgressionItem> progressionListBis=progressionList;
- transferModel.setFileProgression(progressionListBis);
- updateCurrentFileInformation();
-}
-
-InterfacePlugin::currentTransfertItem InterfacePlugin::getCurrentTransfertItem()
-{
- currentTransfertItem returnItem;
- returnItem.haveItem=InternalRunningOperation.size()>0;
- if(returnItem.haveItem)
- {
- const ItemOfCopyListWithMoreInformations &itemTransfer=InternalRunningOperation.first();
- returnItem.from=itemTransfer.generalData.sourceFullPath;
- returnItem.to=itemTransfer.generalData.destinationFullPath;
- returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size);
- switch(itemTransfer.actionType)
- {
- case CustomOperation:
- if(!itemTransfer.custom_with_progression)
- returnItem.progressBar_file=0;
- else
- {
- if(itemTransfer.generalData.size>0)
- returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
- else
- returnItem.progressBar_file=0;
- }
- break;
- case Transfer:
- if(itemTransfer.generalData.size>0)
- returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
- else
- returnItem.progressBar_file=0;
- break;
- case PostOperation:
- returnItem.progressBar_file=65535;
- break;
- default:
- returnItem.progressBar_file=0;
- }
- }
- return returnItem;
+void Themes::getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions)
+{
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start, returnActions.size(): "+QString::number(returnActions.size()));
+ QList<quint64> returnValue=transferModel.synchronizeItems(returnActions);
+ totalFile+=returnValue[0];
+ totalSize+=returnValue[1];
+ currentFile+=returnValue[2];
+ if(transferModel.rowCount()==0)
+ {
+ ui->skipButton->setEnabled(false);
+ ui->progressBar_all->setValue(65535);
+ ui->progressBar_file->setValue(65535);
+ currentSize=totalSize;
+ }
+ else
+ ui->skipButton->setEnabled(true);
+ updateOverallInformation();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"transferModel.rowCount(): "+QString::number(transferModel.rowCount()));
+}
+
+void Themes::setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList)
+{
+ QList<Ultracopier::ProgressionItem> progressionListBis=progressionList;
+ transferModel.setFileProgression(progressionListBis);
+ updateCurrentFileInformation();
+}
+
+Themes::currentTransfertItem Themes::getCurrentTransfertItem()
+{
+ currentTransfertItem returnItem;
+ returnItem.haveItem=InternalRunningOperation.size()>0;
+ if(returnItem.haveItem)
+ {
+ const ItemOfCopyListWithMoreInformations &itemTransfer=InternalRunningOperation.first();
+ returnItem.from=itemTransfer.generalData.sourceFullPath;
+ returnItem.to=itemTransfer.generalData.destinationFullPath;
+ returnItem.current_file=itemTransfer.generalData.destinationFileName+", "+facilityEngine->sizeToString(itemTransfer.generalData.size);
+ switch(itemTransfer.actionType)
+ {
+ case Ultracopier::CustomOperation:
+ if(!itemTransfer.custom_with_progression)
+ returnItem.progressBar_file=0;
+ else
+ {
+ if(itemTransfer.generalData.size>0)
+ returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
+ else
+ returnItem.progressBar_file=0;
+ }
+ break;
+ case Ultracopier::Transfer:
+ if(itemTransfer.generalData.size>0)
+ returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
+ else
+ returnItem.progressBar_file=0;
+ break;
+ case Ultracopier::PostOperation:
+ returnItem.progressBar_file=65535;
+ break;
+ default:
+ returnItem.progressBar_file=0;
+ }
+ }
+ return returnItem;
}
diff --git a/plugins-alternative/Themes/Teracopy/interface.h b/plugins-alternative/Themes/Teracopy/interface.h
index 899a03b..b2f6a70 100644
--- a/plugins-alternative/Themes/Teracopy/interface.h
+++ b/plugins-alternative/Themes/Teracopy/interface.h
@@ -1,16 +1,16 @@
/** \file interface.h
\brief Define the interface test
\author alpha_one_x86
-\version 0.3
-\date 2010 */
+\licence GPL3, see the file COPYING */
-#ifndef INTERFACE_TEST_H
-#define INTERFACE_TEST_H
+#ifndef INTERFACE_H
+#define INTERFACE_H
#include <QObject>
#include <QWidget>
#include <QCloseEvent>
#include <QMenu>
+#include <QColor>
#include "../../../interface/PluginInterface_Themes.h"
@@ -19,151 +19,158 @@
#include "TransferModel.h"
namespace Ui {
- class interfaceCopy;
+ class interfaceCopy;
}
/// \brief Define the interface
-class InterfacePlugin : public PluginInterface_Themes
+class Themes : public PluginInterface_Themes
{
- Q_OBJECT
+ Q_OBJECT
private:
- struct ItemOfCopyListWithMoreInformations
- {
- quint64 currentProgression;
- ItemOfCopyList generalData;
- ActionTypeCopyList actionType;
- bool custom_with_progression;
- };
- struct currentTransfertItem
- {
- quint64 id;
- bool haveItem;
- QString from;
- QString to;
- QString current_file;
- int progressBar_file;
- };
- Ui::interfaceCopy *ui;
- quint64 currentFile;
- quint64 totalFile;
- quint64 currentSize;
- quint64 totalSize;
- void updateOverallInformation();
- void updateCurrentFileInformation();
- EngineActionInProgress action;
- void closeEvent(QCloseEvent *event);
- QList<ItemOfCopyListWithMoreInformations> currentProgressList;
- QString speedString;
- bool storeIsInPause;
- bool modeIsForced;
- CopyType type;
- CopyMode mode;
- void updateModeAndType();
- bool haveStarted;
- QWidget optionEngineWidget;
- void updateTitle();
- QMenu menu;
- FacilityInterface * facilityEngine;
- int loop_size,loop_sub_size,indexAction,index;
- int index_for_loop,sub_loop_size,sub_index_for_loop;
- currentTransfertItem getCurrentTransfertItem();
- QList<quint64> startId,stopId;///< To show what is started, what is stopped
- QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation;///< to have progression and stat
- /// \brief the custom transfer model
- TransferModel transferModel;
+ struct ItemOfCopyListWithMoreInformations
+ {
+ quint64 currentProgression;
+ Ultracopier::ItemOfCopyList generalData;
+ Ultracopier::ActionTypeCopyList actionType;
+ bool custom_with_progression;
+ };
+ struct currentTransfertItem
+ {
+ quint64 id;
+ bool haveItem;
+ QString from;
+ QString to;
+ QString current_file;
+ int progressBar_file;
+ };
+ Ui::interfaceCopy *ui;
+ quint64 currentFile;
+ quint64 totalFile;
+ quint64 currentSize;
+ quint64 totalSize;
+ void updateOverallInformation();
+ void updateCurrentFileInformation();
+ Ultracopier::EngineActionInProgress action;
+ void closeEvent(QCloseEvent *event);
+ QList<ItemOfCopyListWithMoreInformations> currentProgressList;
+ QString speedString;
+ bool storeIsInPause;
+ bool modeIsForced;
+ Ultracopier::CopyType type;
+ Ultracopier::CopyMode mode;
+ void updateModeAndType();
+ bool haveStarted;
+ QWidget optionEngineWidget;
+ void updateTitle();
+ QMenu menu;
+ FacilityInterface * facilityEngine;
+ int loop_size,loop_sub_size,indexAction,index;
+ int index_for_loop,sub_loop_size,sub_index_for_loop;
+ currentTransfertItem getCurrentTransfertItem();
+ QList<quint64> startId,stopId;///< To show what is started, what is stopped
+ QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation;///< to have progression and stat
+ /// \brief the custom transfer model
+ TransferModel transferModel;
+ QColor progressColorWrite;
+ QColor progressColorRead;
+ QColor progressColorRemaining;
public:
- //send information about the copy
- /// \brief to set the action in progress
- void actionInProgess(EngineActionInProgress);
- /// \brief new transfer have started
- void newTransferStart(const ItemOfCopyList &item);
- /** \brief one transfer have been stopped
- * is stopped, example: because error have occurred, and try later, don't remove the item! */
- void newTransferStop(const quint64 &id);
- /// \brief the new folder is listing
- void newFolderListing(const QString &path);
- /** \brief show the detected speed
- * in byte per seconds */
- void detectedSpeed(const quint64 &speed);
- /** \brief show the remaining time
- * time in seconds */
- void remainingTime(const int &remainingSeconds);
- /// \brief set the current collision action
- void newCollisionAction(const QString &action);
- /// \brief set the current error action
- void newErrorAction(const QString &action);
- /// \brief set one error is detected
- void errorDetected();
- //speed limitation
- /** \brief the max speed used
- * in byte per seconds, -1 if not able, 0 if disabled */
- bool setSpeedLimitation(const qint64 &speedLimitation);
- InterfacePlugin(FacilityInterface * facilityEngine);
- ~InterfacePlugin();
- //get information about the copy
- /// \brief show the general progression
- void setGeneralProgression(const quint64 &current,const quint64 &total);
- /// \brief show the file progression
- void setFileProgression(const QList<ProgressionItem> &progressionList);
- /// \brief set collision action
- void setCollisionAction(const QList<QPair<QString,QString> > &);
- /// \brief set error action
- void setErrorAction(const QList<QPair<QString,QString> > &);
- /// \brief set the copyType -> file or folder
- void setCopyType(CopyType);
- /// \brief set the copyMove -> copy or move, to force in copy or move, else support both
- void forceCopyMode(CopyMode);
- /// \brief set if transfer list is exportable/importable
- void setTransferListOperation(TransferListOperation transferListOperation);
- /** \brief set if the order is external (like file manager copy)
- * to notify the interface, which can hide add folder/filer button */
- void haveExternalOrder();
- /// \brief set if is in pause
- void isInPause(bool);
- /// \brief get the widget for the copy engine
- QWidget * getOptionsEngineWidget();
- /// \brief to set if the copy engine is found
- void getOptionsEngineEnabled(bool isEnabled);
+ //send information about the copy
+ /// \brief to set the action in progress
+ void actionInProgess(const Ultracopier::EngineActionInProgress &);
+ /// \brief new transfer have started
+ void newTransferStart(const Ultracopier::ItemOfCopyList &item);
+ /** \brief one transfer have been stopped
+ * is stopped, example: because error have occurred, and try later, don't remove the item! */
+ void newTransferStop(const quint64 &id);
+ /// \brief the new folder is listing
+ void newFolderListing(const QString &path);
+ /** \brief show the detected speed
+ * in byte per seconds */
+ void detectedSpeed(const quint64 &speed);
+ /** \brief support speed limitation */
+ void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool);
+ /** \brief show the remaining time
+ * time in seconds */
+ void remainingTime(const int &remainingSeconds);
+ /// \brief set the current collision action
+ void newCollisionAction(const QString &action);
+ /// \brief set the current error action
+ void newErrorAction(const QString &action);
+ /// \brief set one error is detected
+ void errorDetected();
+ /// \brief new error
+ void errorToRetry(const QString &source,const QString &destination,const QString &error);
+ //speed limitation
+ /** \brief the max speed used
+ * in byte per seconds, -1 if not able, 0 if disabled */
+ bool setSpeedLimitation(const qint64 &speedLimitation);
+ Themes(FacilityInterface * facilityEngine);
+ ~Themes();
+ //get information about the copy
+ /// \brief show the general progression
+ void setGeneralProgression(const quint64 &current,const quint64 &total);
+ /// \brief show the file progression
+ void setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList);
+ /// \brief set collision action
+ void setCollisionAction(const QList<QPair<QString,QString> > &);
+ /// \brief set error action
+ void setErrorAction(const QList<QPair<QString,QString> > &);
+ /// \brief set the copyType -> file or folder
+ void setCopyType(const Ultracopier::CopyType &);
+ /// \brief set the copyMove -> copy or move, to force in copy or move, else support both
+ void forceCopyMode(const Ultracopier::CopyMode &);
+ /// \brief set if transfer list is exportable/importable
+ void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation);
+ /** \brief set if the order is external (like file manager copy)
+ * to notify the interface, which can hide add folder/filer button */
+ void haveExternalOrder();
+ /// \brief set if is in pause
+ void isInPause(const bool &);
+ /// \brief get the widget for the copy engine
+ QWidget * getOptionsEngineWidget();
+ /// \brief to set if the copy engine is found
+ void getOptionsEngineEnabled(const bool &isEnabled);
private slots:
- void on_cancelButton_clicked();
- void on_pauseButton_clicked();
- void on_skipButton_clicked();
- void forcedModeAddFile();
- void forcedModeAddFolder();
- void forcedModeAddFileToCopy();
- void forcedModeAddFolderToCopy();
- void forcedModeAddFileToMove();
- void forcedModeAddFolderToMove();
+ void on_cancelButton_clicked();
+ void on_pauseButton_clicked();
+ void on_skipButton_clicked();
+ void forcedModeAddFile();
+ void forcedModeAddFolder();
+ void forcedModeAddFileToCopy();
+ void forcedModeAddFolderToCopy();
+ void forcedModeAddFileToMove();
+ void forcedModeAddFolderToMove();
signals:
- #ifdef ULTRACOPIER_PLUGIN_DEBUG
- /// \brief To debug source
- void debugInformation(DebugLevel level,QString fonction,QString text,QString file,int ligne);
- #endif
- //set the transfer list
- void removeItems(QList<int> ids);
- void moveItemsOnTop(QList<int> ids);
- void moveItemsUp(QList<int> ids);
- void moveItemsDown(QList<int> ids);
- void moveItemsOnBottom(QList<int> ids);
- void exportTransferList();
- void importTransferList();
- //user ask ask to add folder (add it with interface ask source/destination)
- void userAddFolder(CopyMode);
- void userAddFile(CopyMode);
- void urlDropped(QList<QUrl> urls);
- //action on the copy
- void pause();
- void resume();
- void skip(quint64 id);
- void cancel();
- //edit the action
- void sendCollisionAction(QString action);
- void sendErrorAction(QString action);
- void newSpeedLimitation(qint64);
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ /// \brief To debug source
+ void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
+ #endif
+ //set the transfer list
+ /*void removeItems(QList<int> ids);
+ void moveItemsOnTop(QList<int> ids);
+ void moveItemsUp(QList<int> ids);
+ void moveItemsDown(QList<int> ids);
+ void moveItemsOnBottom(QList<int> ids);
+ void exportTransferList();
+ void importTransferList();
+ //user ask ask to add folder (add it with interface ask source/destination)
+ void userAddFolder(Ultracopier::CopyMode);
+ void userAddFile(Ultracopier::CopyMode);
+ void urlDropped(QList<QUrl> urls);
+ //action on the copy
+ void pause();
+ void resume();
+ void skip(quint64 id);
+ void cancel();
+ //edit the action
+ void sendCollisionAction(QString action);
+ void sendErrorAction(QString action);
+ void newSpeedLimitation(qint64);*/
public slots:
- //set the translate
- void newLanguageLoaded();
- void getActionOnList(const QList<returnActionOnCopyList>& returnActions);
+ //set the translate
+ void newLanguageLoaded();
+ void getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions);
};
-#endif // INTERFACE_TEST_H
+#endif // INTERFACE_H
diff --git a/plugins-alternative/Themes/Teracopy/interface.pro b/plugins-alternative/Themes/Teracopy/interface.pro
index 4cecacb..5049e19 100644
--- a/plugins-alternative/Themes/Teracopy/interface.pro
+++ b/plugins-alternative/Themes/Teracopy/interface.pro
@@ -1,8 +1,12 @@
+CONFIG += c++11
+QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra"
+mac:QMAKE_CXXFLAGS+="-stdlib=libc++"
+
+QT += widgets
TEMPLATE = lib
CONFIG += plugin
HEADERS = interface.h \
- interface/PluginInterface_Themes.h \
- StructEnumDefinition.h \
+ StructEnumDefinition.h \
factory.h \
DebugEngineMacro.h \
Environment.h \
@@ -13,24 +17,25 @@ SOURCES = interface.cpp \
factory.cpp \
TransferModel.cpp
TARGET = $$qtLibraryTarget(interface)
-TRANSLATIONS += Languages/fr/translation.ts \
- Languages/ar/translation.ts \
- Languages/zh/translation.ts \
- Languages/es/translation.ts \
+TRANSLATIONS += Languages/ar/translation.ts \
Languages/de/translation.ts \
Languages/el/translation.ts \
+ Languages/en/translation.ts \
+ Languages/es/translation.ts \
+ Languages/fr/translation.ts \
+ Languages/hi/translation.ts \
+ Languages/hu/translation.ts \
+ Languages/id/translation.ts \
Languages/it/translation.ts \
Languages/ja/translation.ts \
- Languages/id/translation.ts \
+ Languages/ko/translation.ts \
+ Languages/nl/translation.ts \
+ Languages/no/translation.ts \
Languages/pl/translation.ts \
Languages/ru/translation.ts \
- Languages/tr/translation.ts \
Languages/th/translation.ts \
- Languages/hi/translation.ts \
- Languages/nl/translation.ts \
- Languages/no/translation.ts \
- Languages/pt/translation.ts \
- Languages/ko/translation.ts
+ Languages/tr/translation.ts \
+ Languages/zh/translation.ts
RESOURCES += resources.qrc
diff --git a/plugins-alternative/Themes/Teracopy/interface.ui b/plugins-alternative/Themes/Teracopy/interface.ui
index 1bccf44..a5274b3 100644
--- a/plugins-alternative/Themes/Teracopy/interface.ui
+++ b/plugins-alternative/Themes/Teracopy/interface.ui
@@ -27,7 +27,7 @@
</property>
<property name="windowIcon">
<iconset resource="resources.qrc">
- <normaloff>:/resources/main.png</normaloff>:/resources/main.png</iconset>
+ <normaloff>:/Themes/Teracopy/resources/main.png</normaloff>:/Themes/Teracopy/resources/main.png</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
@@ -302,7 +302,7 @@ p, li { white-space: pre-wrap; }
<action name="actionAddFile">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset>
</property>
<property name="text">
<string>Add file</string>
@@ -311,7 +311,7 @@ p, li { white-space: pre-wrap; }
<action name="actionAddFolder">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset>
</property>
<property name="text">
<string>Add folder</string>
@@ -320,7 +320,7 @@ p, li { white-space: pre-wrap; }
<action name="actionAddFileToMove">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset>
</property>
<property name="text">
<string>Move file(s)</string>
@@ -329,7 +329,7 @@ p, li { white-space: pre-wrap; }
<action name="actionAddFolderToMove">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset>
</property>
<property name="text">
<string>Move folder</string>
@@ -338,7 +338,7 @@ p, li { white-space: pre-wrap; }
<action name="actionAddFileToCopy">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset>
</property>
<property name="text">
<string>Copy file(s)</string>
@@ -347,7 +347,7 @@ p, li { white-space: pre-wrap; }
<action name="actionAddFolderToCopy">
<property name="icon">
<iconset>
- <normaloff>:/resources/add.png</normaloff>:/resources/add.png</iconset>
+ <normaloff>:/Themes/Teracopy/resources/add.png</normaloff>:/Themes/Teracopy/resources/add.png</iconset>
</property>
<property name="text">
<string>Copy folder</string>
diff --git a/plugins-alternative/Themes/Teracopy/plugin.json b/plugins-alternative/Themes/Teracopy/plugin.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/plugins-alternative/Themes/Teracopy/plugin.json
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/plugins-alternative/Themes/Teracopy/resources.qrc b/plugins-alternative/Themes/Teracopy/resources.qrc
index 7f9a82c..39105a8 100644
--- a/plugins-alternative/Themes/Teracopy/resources.qrc
+++ b/plugins-alternative/Themes/Teracopy/resources.qrc
@@ -1,5 +1,5 @@
<RCC>
- <qresource prefix="/">
+ <qresource prefix="/Themes/Teracopy">
<file>resources/SystemTrayIcon/add.png</file>
<file>resources/SystemTrayIcon/exit.png</file>
<file>resources/SystemTrayIcon/informations.png</file>
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.png
index 1e03be9..7932127 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/add.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.png
index 201353e..ae3c4e8 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/exit.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.png
index e1eb797..5b7b255 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/informations.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.png
index d35365c..23ec531 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/options.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.png
index a81e70d..6f5d1cf 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.png
index 8072aea..5464856 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Caught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
index f40ea82..3961215 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
index 8d673e4..45d6315 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.png
index 9ce4779..ac4299a 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.png b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.png
index d0fca1b..6e6bae7 100644
--- a/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.png
+++ b/plugins-alternative/Themes/Teracopy/resources/SystemTrayIcon/systray_Uncaught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/checkbox.png b/plugins-alternative/Themes/Teracopy/resources/checkbox.png
index 1c311e2..f7f4388 100644
--- a/plugins-alternative/Themes/Teracopy/resources/checkbox.png
+++ b/plugins-alternative/Themes/Teracopy/resources/checkbox.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/main.png b/plugins-alternative/Themes/Teracopy/resources/main.png
index 8072aea..5464856 100644
--- a/plugins-alternative/Themes/Teracopy/resources/main.png
+++ b/plugins-alternative/Themes/Teracopy/resources/main.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/player_pause.png b/plugins-alternative/Themes/Teracopy/resources/player_pause.png
index a9b3113..68ee21f 100644
--- a/plugins-alternative/Themes/Teracopy/resources/player_pause.png
+++ b/plugins-alternative/Themes/Teracopy/resources/player_pause.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources/player_play.png b/plugins-alternative/Themes/Teracopy/resources/player_play.png
index 80ff3a1..a1c5b83 100644
--- a/plugins-alternative/Themes/Teracopy/resources/player_play.png
+++ b/plugins-alternative/Themes/Teracopy/resources/player_play.png
Binary files differ
diff --git a/plugins-alternative/Themes/Teracopy/resources_unix.qrc b/plugins-alternative/Themes/Teracopy/resources_unix.qrc
index ae3894b..46e3020 100644
--- a/plugins-alternative/Themes/Teracopy/resources_unix.qrc
+++ b/plugins-alternative/Themes/Teracopy/resources_unix.qrc
@@ -1,6 +1,6 @@
<RCC>
- <qresource prefix="/">
- <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file>
+ <qresource prefix="/Themes/Teracopy">
+ <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file>
<file>resources/SystemTrayIcon/systray_Semiuncaught_Unix.png</file>
<file>resources/SystemTrayIcon/systray_Uncaught_Unix.png</file>
</qresource>
diff --git a/plugins-alternative/Themes/Teracopy/resources_windows.qrc b/plugins-alternative/Themes/Teracopy/resources_windows.qrc
index 99829b3..165123a 100644
--- a/plugins-alternative/Themes/Teracopy/resources_windows.qrc
+++ b/plugins-alternative/Themes/Teracopy/resources_windows.qrc
@@ -1,5 +1,5 @@
<RCC>
- <qresource prefix="/">
+ <qresource prefix="/Themes/Teracopy">
<file>resources/SystemTrayIcon/systray_Caught_Windows.png</file>
<file>resources/SystemTrayIcon/systray_Semiuncaught_Windows.png</file>
<file>resources/SystemTrayIcon/systray_Uncaught_Windows.png</file>
diff --git a/plugins-alternative/Themes/Windows/DebugEngineMacro.h b/plugins-alternative/Themes/Windows/DebugEngineMacro.h
new file mode 100644
index 0000000..4582010
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/DebugEngineMacro.h
@@ -0,0 +1,28 @@
+/** \file DebugEngineMacro.h
+\brief Define the macro for the debug
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef DEBUGENGINEMACRO_H
+#define DEBUGENGINEMACRO_H
+
+#ifdef WIN32
+# define __func__ __FUNCTION__
+#endif
+
+/// \brief Macro for the debug log
+#ifdef ULTRACOPIER_PLUGIN_DEBUG
+ #if defined (__FILE__) && defined (__LINE__)
+ #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b,__FILE__,__LINE__)
+ #else
+ #define ULTRACOPIER_DEBUGCONSOLE(a,b) emit debugInformation(a,__func__,b)
+ #endif
+#else // ULTRACOPIER_DEBUG
+ #define ULTRACOPIER_DEBUGCONSOLE(a,b) void()
+#endif // ULTRACOPIER_DEBUG
+
+#endif // DEBUGENGINEMACRO_H
+
+
+
+
diff --git a/plugins-alternative/Themes/Windows/Environment.h b/plugins-alternative/Themes/Windows/Environment.h
new file mode 100644
index 0000000..265a5a6
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Environment.h
@@ -0,0 +1,10 @@
+/** \file Environment.h
+\brief Define the environment variable and global function
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#include "Variable.h"
+/// \brief The global include
+#include "StructEnumDefinition.h"
+#include "DebugEngineMacro.h"
+
diff --git a/plugins-alternative/Themes/Windows/Languages/ar/translation.ts b/plugins-alternative/Themes/Windows/Languages/ar/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/ar/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/de/translation.ts b/plugins-alternative/Themes/Windows/Languages/de/translation.ts
new file mode 100644
index 0000000..7657f03
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/de/translation.ts
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation>Verbleibende Zeit unbekannt</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Übertrage %n Element (%2)</numerusform>
+ <numerusform>Übertrage %n Elemente (%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Kopiere %n Element (%2)</numerusform>
+ <numerusform>Kopiere %n Elemente (%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Verschiebe %n Element (%2)</numerusform>
+ <numerusform>Verschiebe %n Elemente (%2)</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation>von &lt;b&gt;%1&lt;/b&gt; (%2) bis &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation>Warten...</translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation>Name:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation>Von:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation>Nach:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation>verbleibende Zeit:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation>verbleibende Elemente:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation>Geschwindigkeit:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation>Mehr Informationen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation>Datei hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation>Ordner hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation>Datei (en) verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation>Ordner verschieben</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation>Datei (en) kopieren</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation>Ordner kopieren</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/el/translation.ts b/plugins-alternative/Themes/Windows/Languages/el/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/el/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/en/translation.ts b/plugins-alternative/Themes/Windows/Languages/en/translation.ts
new file mode 100644
index 0000000..27cfd09
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/en/translation.ts
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Transferring %n item (%2)</numerusform>
+ <numerusform>Transferring %n items (%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Copying %n item (%2)</numerusform>
+ <numerusform>Copying %n items (%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Moving %n item (%2)</numerusform>
+ <numerusform>Moving %n items (%2)</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/es/translation.ts b/plugins-alternative/Themes/Windows/Languages/es/translation.ts
new file mode 100644
index 0000000..cc4de8a
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/es/translation.ts
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished">desde &lt;b&gt;%1&lt;/b&gt; (%2) hasta &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished">En espera</translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation>Nombre:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation>Desde:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation>Hasta:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation>Tiempo restante:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation>Items restantes:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation>Velocidad:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation>Más información</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation>Cancelar</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation>Añadir archivo</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation>Añadir carpeta</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation>Mover archivo(s)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation>Mueva la carpeta</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation>Copia el archivo(s)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation>Copia la carpeta</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/fr/translation.ts b/plugins-alternative/Themes/Windows/Languages/fr/translation.ts
new file mode 100644
index 0000000..7f99e83
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/fr/translation.ts
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation>Temps restant inconnu</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Transfert de %n élément (%2)</numerusform>
+ <numerusform>Transfert de %n éléments (%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Copie de %n élément (%2)</numerusform>
+ <numerusform>Copie de %n éléments (%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Déplacement de %n élément (%2)</numerusform>
+ <numerusform>Déplacement de %n éléments (%2)</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation>depuis &lt;b&gt;%1&lt;/b&gt; (%2) vers &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation>En attente</translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation>Déplacer des fichiers</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation>Déplacer un dossier</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation>Copier des fichiers</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation>Copier un dossier</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation>Ajouter un dossier</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation>Nom:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation>Depuis:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation>Vers:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation>Temps restant:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation>Éléments restants:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation>Vitesse:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation>Plus d&apos;information</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation>Ajout de fichier</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/hi/translation.ts b/plugins-alternative/Themes/Windows/Languages/hi/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/hi/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/hu/translation.ts b/plugins-alternative/Themes/Windows/Languages/hu/translation.ts
new file mode 100644
index 0000000..ef4bf6d
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/hu/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="hu">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation>Ismeretlen hátralévő idő</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation>
+ <numerusform>%n elem áthelyezése(%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation>
+ <numerusform>%n elem átmásolása(%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation>
+ <numerusform>%n elem mozgatása(%2)</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation>&lt;b&gt;%1&lt;/b&gt; (%2) helyről-&gt; &lt;b&gt;%3&lt;/b&gt; (%4) helyre&lt;br /&gt;%5</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation>Várakozik</translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation>Név:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation>Forrás:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation>Cél:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation>Hátralévő idő:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation>Hátralévő elemek:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation>Sebesség:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation>Több információ</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation>Mégse</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation>Fájl hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation>Mappa hozzáadása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation>Fájl(ok) mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation>Mappa mozgatása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation>Fájl(ok) másolása</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation>Mappa másolása</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/id/translation.ts b/plugins-alternative/Themes/Windows/Languages/id/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/id/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/it/translation.ts b/plugins-alternative/Themes/Windows/Languages/it/translation.ts
new file mode 100644
index 0000000..c3d5a73
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/it/translation.ts
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="it" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation>Tempo rediduo indeterminato</translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Trasferimento di %n elemento (%2)</numerusform>
+ <numerusform>Trasferimento di %n elementi (%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Copia di %n elemento (%2)</numerusform>
+ <numerusform>Copia di %n elementi (%2)</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation>
+ <numerusform>Spostamento di %n elemento (%2)</numerusform>
+ <numerusform>Spostamento di %n elementi (%2)</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translatorcomment>Per esempio: da &lt;b&gt;Cartella di origine&lt;/b&gt; (e: precedente origine) to &lt;b&gt;Cartella di destinazione&lt;/b&gt; (d: destinazione desktop)&lt;br /&gt;Circa 5 ore rimanenti</translatorcomment>
+ <translation>da &lt;b&gt;%1&lt;/b&gt; (%2) a &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation>In attesa</translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation>Nome:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation>Da:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation>A:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation>Tempo residuo:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation>Elementi rimanenti:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation>Velocità:</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation>Maggiori informazioni</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation>Annulla</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation>Aggiungi file</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation>Aggiungi cartella</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation>Sposta file</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation>Sposta la cartella</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation>Copia file</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation>Copia la cartella</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/ja/translation.ts b/plugins-alternative/Themes/Windows/Languages/ja/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/ja/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/ko/translation.ts b/plugins-alternative/Themes/Windows/Languages/ko/translation.ts
new file mode 100644
index 0000000..4d682a3
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/ko/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ko_KR">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="+204"/>
+ <location line="+188"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location line="-55"/>
+ <location line="+2"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+7"/>
+ <location line="+2"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location line="+5"/>
+ <location line="+2"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="+176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Add file</source>
+ <translation type="unfinished">파일 추가</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Add folder</source>
+ <translation type="unfinished">폴더 추가</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished">파일 이동</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Move folder</source>
+ <translation type="unfinished">폴더 이동</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished">파일 복사</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Copy folder</source>
+ <translation type="unfinished">폴더 복사</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/nl/translation.ts b/plugins-alternative/Themes/Windows/Languages/nl/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/nl/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/no/translation.ts b/plugins-alternative/Themes/Windows/Languages/no/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/no/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/pl/translation.ts b/plugins-alternative/Themes/Windows/Languages/pl/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/pl/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/ru/translation.ts b/plugins-alternative/Themes/Windows/Languages/ru/translation.ts
new file mode 100644
index 0000000..02e9260
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/ru/translation.ts
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru" sourcelanguage="en">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation>Добавить файл</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation>Добавить папку</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation>Перемещение файла (ов)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation>Перемещение папки</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation>Копировать файл (ы)</translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation>Копировать папку</translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/th/translation.ts b/plugins-alternative/Themes/Windows/Languages/th/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/th/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/tr/translation.ts b/plugins-alternative/Themes/Windows/Languages/tr/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/tr/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/Languages/zh/translation.ts b/plugins-alternative/Themes/Windows/Languages/zh/translation.ts
new file mode 100644
index 0000000..fe6d20c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Languages/zh/translation.ts
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+ <name>Themes</name>
+ <message>
+ <location filename="../../interface.cpp" line="204"/>
+ <location filename="../../interface.cpp" line="392"/>
+ <source>Unknown remaining time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="337"/>
+ <location filename="../../interface.cpp" line="339"/>
+ <source>Transferring %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="346"/>
+ <location filename="../../interface.cpp" line="348"/>
+ <source>Copying %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../interface.cpp" line="353"/>
+ <location filename="../../interface.cpp" line="355"/>
+ <source>Moving %n item(s) (%2)</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ </translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="403"/>
+ <source>from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;%5</source>
+ <extracomment>Sample: from &lt;b&gt;sources&lt;/b&gt; (e:<byte value="xc"/>oldersource) to &lt;b&gt;destination&lt;/b&gt; (d:desktopdestination)&lt;br /&gt;About 5 Hours remaining</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.cpp" line="412"/>
+ <source>In waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>interface</name>
+ <message>
+ <location filename="../../interface.ui" line="176"/>
+ <source>Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="186"/>
+ <source>From:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="196"/>
+ <source>To:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="206"/>
+ <source>Time remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="216"/>
+ <source>Items remaining:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="226"/>
+ <source>Speed:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="291"/>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="331"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="345"/>
+ <source>Add file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="354"/>
+ <source>Add folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="363"/>
+ <source>Move file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="372"/>
+ <source>Move folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="381"/>
+ <source>Copy file(s)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../interface.ui" line="390"/>
+ <source>Copy folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/plugins-alternative/Themes/Windows/StructEnumDefinition.h b/plugins-alternative/Themes/Windows/StructEnumDefinition.h
new file mode 100644
index 0000000..c1758f4
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/StructEnumDefinition.h
@@ -0,0 +1 @@
+#include "../../../StructEnumDefinition.h"
diff --git a/plugins-alternative/Themes/Windows/TransferModel.cpp b/plugins-alternative/Themes/Windows/TransferModel.cpp
new file mode 100644
index 0000000..7743266
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/TransferModel.cpp
@@ -0,0 +1,286 @@
+#include "TransferModel.h"
+
+#define COLUMN_COUNT 3
+
+// Model
+
+TransferModel::TransferModel()
+{
+ iconStart=QIcon(":/Themes/Windows/resources/player_play.png");
+ iconPause=QIcon(":/Themes/Windows/resources/player_pause.png");
+ iconStop=QIcon(":/Themes/Windows/resources/checkbox.png");
+ currentIndexSearch=0;
+ currentFile = 0;
+ totalFile = 0;
+ currentSize = 0;
+ totalSize = 0;
+ haveSearchItem=false;
+}
+
+int TransferModel::columnCount( const QModelIndex& parent ) const
+{
+ return parent == QModelIndex() ? COLUMN_COUNT : 0;
+}
+
+QVariant TransferModel::data( const QModelIndex& index, int role ) const
+{
+ Q_UNUSED(role);
+ Q_UNUSED(index);
+ return QVariant();
+}
+
+int TransferModel::rowCount( const QModelIndex& parent ) const
+{
+ Q_UNUSED(parent);
+ return 0;
+}
+
+QVariant TransferModel::headerData( int section, Qt::Orientation orientation, int role ) const
+{
+ if ( role == Qt::DisplayRole && orientation == Qt::Horizontal && section >= 0 && section < COLUMN_COUNT ) {
+ switch ( section ) {
+ case 0:
+ return facilityEngine->translateText("Source");
+ case 1:
+ return facilityEngine->translateText("Size");
+ case 2:
+ return facilityEngine->translateText("Destination");
+ }
+ }
+
+ return QAbstractTableModel::headerData( section, orientation, role );
+}
+
+bool TransferModel::setData( const QModelIndex& index, const QVariant& value, int role )
+{
+ Q_UNUSED(index);
+ Q_UNUSED(value);
+ Q_UNUSED(role);
+ return true;
+}
+
+/*
+ Return[0]: totalFile
+ Return[1]: totalSize
+ Return[2]: currentFile
+ */
+QList<quint64> TransferModel::synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions)
+{
+ loop_size=returnActions.size();
+ index_for_loop=0;
+ emit layoutAboutToBeChanged();
+ while(index_for_loop<loop_size)
+ {
+ const Ultracopier::ReturnActionOnCopyList& action=returnActions.at(index_for_loop);
+ switch(action.type)
+ {
+ case Ultracopier::AddingItem:
+ {
+ this->totalFile++;
+ this->totalSize+=action.addAction.size;
+ }
+ break;
+ case Ultracopier::RemoveItem:
+ internalRunningOperation.remove(action.addAction.id);
+ startId.remove(action.addAction.id);
+ stopId.remove(action.addAction.id);
+ this->currentFile++;
+ break;
+ case Ultracopier::PreOperation:
+ {
+ ItemOfCopyListWithMoreInformations tempItem;
+ tempItem.currentProgression=0;
+ tempItem.generalData=action.addAction;
+ tempItem.generalData.destinationFullPath.remove(tempItem.generalData.destinationFullPath.size()-tempItem.generalData.destinationFileName.size(),tempItem.generalData.destinationFileName.size());
+ tempItem.generalData.sourceFullPath.remove(tempItem.generalData.sourceFullPath.size()-tempItem.generalData.sourceFileName.size(),tempItem.generalData.sourceFileName.size());
+ tempItem.actionType=action.type;
+ internalRunningOperation[action.addAction.id]=tempItem;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("set for file %1: actionType: PreOperation").arg(action.addAction.id));
+ }
+ break;
+ case Ultracopier::Transfer:
+ {
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("found entry for file %1: actionType: Transfer").arg(action.addAction.id));
+ if(!startId.contains(action.addAction.id))
+ startId << action.addAction.id;
+ stopId.remove(action.addAction.id);
+ if(internalRunningOperation.contains(action.addAction.id))
+ internalRunningOperation[action.addAction.id].actionType=action.type;
+ else
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unable to found entry for file %1: actionType: Transfer").arg(action.addAction.id));
+ }
+ break;
+ case Ultracopier::PostOperation:
+ {
+ if(!stopId.contains(action.addAction.id))
+ stopId << action.addAction.id;
+ startId.remove(action.addAction.id);
+ }
+ break;
+ case Ultracopier::CustomOperation:
+ {
+ bool custom_with_progression=(action.addAction.size==1);
+ //without progression
+ if(custom_with_progression)
+ {
+ if(startId.remove(action.addAction.id))
+ if(!stopId.contains(action.addAction.id))
+ stopId << action.addAction.id;
+ }
+ //with progression
+ else
+ {
+ stopId.remove(action.addAction.id);
+ if(!startId.contains(action.addAction.id))
+ startId << action.addAction.id;
+ }
+ if(internalRunningOperation.contains(action.addAction.id))
+ {
+ ItemOfCopyListWithMoreInformations &item=internalRunningOperation[action.addAction.id];
+ item.actionType=action.type;
+ item.custom_with_progression=custom_with_progression;
+ item.currentProgression=0;
+ }
+ }
+ break;
+ default:
+ //unknow code, ignore it
+ break;
+ }
+ index_for_loop++;
+ }
+ emit layoutChanged();
+ return QList<quint64>() << totalFile << totalSize << currentFile;
+}
+
+void TransferModel::setFacilityEngine(FacilityInterface * facilityEngine)
+{
+ this->facilityEngine=facilityEngine;
+}
+
+void TransferModel::setFileProgression(QList<Ultracopier::ProgressionItem> &progressionList)
+{
+ loop_size=progressionList.size();
+ index_for_loop=0;
+ while(index_for_loop<loop_size)
+ {
+ if(internalRunningOperation.contains(progressionList.at(index_for_loop).id))
+ {
+ internalRunningOperation[progressionList.at(index_for_loop).id].generalData.size=progressionList.at(index_for_loop).total;
+ internalRunningOperation[progressionList.at(index_for_loop).id].currentProgression=(progressionList.at(index_for_loop).currentRead+progressionList.at(index_for_loop).currentWrite)/2;
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ progressionList.removeAt(index_for_loop);
+ index_for_loop--;
+ loop_size--;
+ #endif
+ }
+ index_for_loop++;
+ }
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ if(progressionList.size()>0)
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"progression remaning items");
+ #endif
+}
+
+TransferModel::currentTransfertItem TransferModel::getCurrentTransfertItem()
+{
+ currentTransfertItem returnItem;
+ returnItem.haveItem=startId.size()>0;
+ if(returnItem.haveItem)
+ {
+ if(!internalRunningOperation.contains(*startId.constBegin()))
+ {
+ returnItem.haveItem=false;
+ return returnItem;
+ }
+ const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*startId.constBegin()];
+ returnItem.from=itemTransfer.generalData.sourceFullPath;
+ returnItem.to=itemTransfer.generalData.destinationFullPath;
+ returnItem.current_file=itemTransfer.generalData.destinationFileName;
+ returnItem.size=facilityEngine->sizeToString(itemTransfer.generalData.size);
+ switch(itemTransfer.actionType)
+ {
+ case Ultracopier::CustomOperation:
+ if(!itemTransfer.custom_with_progression)
+ returnItem.progressBar_file=-1;
+ else
+ {
+ if(itemTransfer.generalData.size>0)
+ returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
+ else
+ returnItem.progressBar_file=-1;
+ }
+ break;
+ case Ultracopier::Transfer:
+ if(itemTransfer.generalData.size>0)
+ returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
+ else
+ returnItem.progressBar_file=0;
+ break;
+ //should never pass here
+ case Ultracopier::PostOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_file=65535;
+ break;
+ //should never pass here
+ case Ultracopier::PreOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_file=0;
+ break;
+ default:
+ returnItem.progressBar_file=0;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ break;
+ }
+ }
+ else
+ {
+ if(!internalRunningOperation.contains(*stopId.constBegin()))
+ {
+ returnItem.haveItem=false;
+ return returnItem;
+ }
+ else
+ returnItem.haveItem=true;
+ const ItemOfCopyListWithMoreInformations &itemTransfer=internalRunningOperation[*stopId.constBegin()];
+ returnItem.from=itemTransfer.generalData.sourceFullPath;
+ returnItem.to=itemTransfer.generalData.destinationFullPath;
+ returnItem.current_file=itemTransfer.generalData.destinationFileName;
+ returnItem.size=facilityEngine->sizeToString(itemTransfer.generalData.size);
+ switch(itemTransfer.actionType)
+ {
+ case Ultracopier::CustomOperation:
+ if(!itemTransfer.custom_with_progression)
+ returnItem.progressBar_file=-1;
+ else
+ {
+ if(itemTransfer.generalData.size>0)
+ returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
+ else
+ returnItem.progressBar_file=-1;
+ }
+ break;
+ case Ultracopier::Transfer:
+ if(itemTransfer.generalData.size>0)
+ returnItem.progressBar_file=((double)itemTransfer.currentProgression/itemTransfer.generalData.size)*65535;
+ else
+ returnItem.progressBar_file=0;
+ break;
+ //should never pass here
+ case Ultracopier::PostOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_file=65535;
+ break;
+ //should never pass here
+ case Ultracopier::PreOperation:
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("wrong action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ returnItem.progressBar_file=0;
+ break;
+ default:
+ returnItem.progressBar_file=65535;
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("unknow action type for file %1: actionType: %2").arg(itemTransfer.generalData.id).arg(itemTransfer.actionType));
+ break;
+ }
+ }
+ return returnItem;
+}
diff --git a/plugins-alternative/Themes/Windows/TransferModel.h b/plugins-alternative/Themes/Windows/TransferModel.h
new file mode 100644
index 0000000..c2d89aa
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/TransferModel.h
@@ -0,0 +1,90 @@
+#ifndef TRANSFERMODEL_H
+#define TRANSFERMODEL_H
+
+#include <QAbstractTableModel>
+#include <QModelIndex>
+#include <QVariant>
+#include <QList>
+#include <QSet>
+#include <QIcon>
+#include <QString>
+
+#include "StructEnumDefinition.h"
+#include "Environment.h"
+
+#include "../../../interface/FacilityInterface.h"
+
+/// \brief model to store the transfer list
+class TransferModel : public QAbstractTableModel
+{
+ Q_OBJECT
+public:
+ /// \brief the transfer item displayed
+ struct transfertItem
+ {
+ quint64 id;
+ QString source;
+ QString size;
+ QString destination;
+ };
+ /// \brief the transfer item with progression
+ struct ItemOfCopyListWithMoreInformations
+ {
+ quint64 currentProgression;
+ Ultracopier::ItemOfCopyList generalData;
+ Ultracopier::ActionTypeCopyList actionType;
+ bool custom_with_progression;
+ };
+ /// \brief returned first transfer item
+ struct currentTransfertItem
+ {
+ quint64 id;
+ bool haveItem;
+ QString from;
+ QString to;
+ QString current_file;
+ QString size;
+ int progressBar_file;
+ };
+
+ TransferModel();
+
+ virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
+ virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
+ virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
+ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
+
+ QList<quint64> synchronizeItems(const QList<Ultracopier::ReturnActionOnCopyList>& returnActions);
+ void setFacilityEngine(FacilityInterface * facilityEngine);
+
+ void setFileProgression(QList<Ultracopier::ProgressionItem> &progressionList);
+
+ currentTransfertItem getCurrentTransfertItem();
+
+ quint64 currentFile;
+ quint64 totalFile;
+ quint64 currentSize;
+ quint64 totalSize;
+protected:
+ QSet<quint64> startId,stopId;///< To show what is started, what is stopped
+ QHash<quint64,ItemOfCopyListWithMoreInformations> internalRunningOperation;///< to have progression and stat
+ QIcon iconStart,iconPause,iconStop;
+private:
+ int loop_size,index_for_loop;
+ int sub_loop_size,sub_index_for_loop;
+ int row,column;
+ FacilityInterface * facilityEngine;
+ QString search_text;
+ /// \brief index from start the search, decresed by remove before it
+ int currentIndexSearch;
+ bool haveSearchItem;
+ quint64 searchId;
+signals:
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ /// \brief To debug source
+ void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
+ #endif
+};
+
+#endif // TRANSFERMODEL_H
diff --git a/plugins-alternative/Themes/Windows/Variable.h b/plugins-alternative/Themes/Windows/Variable.h
new file mode 100644
index 0000000..963d0c8
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/Variable.h
@@ -0,0 +1,15 @@
+/** \file Variable.h
+\brief Define the environment variable
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef VARIABLE_H
+#define VARIABLE_H
+
+//Un-comment this next line to put ultracopier plugin in debug mode
+#define ULTRACOPIER_PLUGIN_DEBUG
+
+#endif // VARIABLE_H
+
+
+
diff --git a/plugins-alternative/Themes/Windows/documentation.dox b/plugins-alternative/Themes/Windows/documentation.dox
new file mode 100644
index 0000000..df43161
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/documentation.dox
@@ -0,0 +1,29 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- **/
+
+/*
+ This file contains NO source code, just some documentation for doxygen to
+ parse.
+*/
+
+/*!
+ \mainpage Windows
+
+ \section mainpage_overview Overview
+
+ It's interface to have interface like windows for Ultracopier.\n
+ More informations on <a href="http://ultracopier-wiki.first-world.info/">the wiki of ultracopier</a>. Is part of Ultracopier project as alternative plugin.
+
+ \section mainpage_platforms Platforms
+
+ Ultracopier might be usable in all environments where you find Qt 5.\n
+ Ultracopier requires Qt 5.0 or newer. Tested on Qt 5.0.
+
+ \section mainpage_downloads Downloads
+
+ You can found link on <a href="http://ultracopier.first-world.info/">Ultracopier (Supercopier/Teracopy)</a> project page, via git, snapshot sources, ...
+
+ \section license GPL Version 3
+ The code source is under GPL3.
+
+*/
+
diff --git a/plugins-alternative/Themes/Windows/factory.cpp b/plugins-alternative/Themes/Windows/factory.cpp
new file mode 100644
index 0000000..dbce51a
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/factory.cpp
@@ -0,0 +1,74 @@
+/** \file factory.cpp
+\brief Define the factory core
+\author alpha_one_x86
+*/
+
+#include "factory.h"
+
+QRegularExpression ThemesFactory::slashEnd;
+QRegularExpression ThemesFactory::isolateName;
+
+ThemesFactory::ThemesFactory()
+{
+ slashEnd=QRegularExpression("/$");
+ isolateName=QRegularExpression("^.*/([^/]+)$");
+}
+
+PluginInterface_Themes * ThemesFactory::getInstance()
+{
+ Themes * newInterface=new Themes(facilityEngine);
+ connect(this,&ThemesFactory::reloadLanguage,newInterface,&Themes::newLanguageLoaded);
+ return newInterface;
+}
+
+void ThemesFactory::setResources(OptionInterface * options,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,const bool &portableVersion)
+{
+ Q_UNUSED(options)
+ Q_UNUSED(writePath)
+ Q_UNUSED(pluginPath)
+ this->facilityEngine=facilityEngine;
+ Q_UNUSED(portableVersion)
+}
+
+QWidget * ThemesFactory::options()
+{
+ return NULL;
+}
+
+QIcon ThemesFactory::getIcon(const QString &fileName) const
+{
+ if(fileName=="SystemTrayIcon/exit.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("application-exit");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/add.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("list-add");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/informations.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("help-about");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ if(fileName=="SystemTrayIcon/options.png")
+ {
+ QIcon tempIcon=QIcon::fromTheme("applications-system");
+ if(!tempIcon.isNull())
+ return tempIcon;
+ }
+ return QIcon(":/Themes/Windows/resources/"+fileName);
+}
+
+void ThemesFactory::resetOptions()
+{
+}
+
+void ThemesFactory::newLanguageLoaded()
+{
+ emit reloadLanguage();
+}
diff --git a/plugins-alternative/Themes/Windows/factory.h b/plugins-alternative/Themes/Windows/factory.h
new file mode 100644
index 0000000..32ea9f1
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/factory.h
@@ -0,0 +1,45 @@
+/** \file factory.h
+\brief Define the factory, to create instance of the interface
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef FACTORY_H
+#define FACTORY_H
+
+#include <QObject>
+#include <QWidget>
+#include <QIcon>
+#include <QRegularExpression>
+
+#include "interface.h"
+#include "../../../interface/PluginInterface_Themes.h"
+
+/// \brief Define the factory, to create instance of the interface
+class ThemesFactory : public PluginInterface_ThemesFactory
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.ThemesFactory/1.0.1.0" FILE "plugin.json")
+ Q_INTERFACES(PluginInterface_ThemesFactory)
+ public:
+ ThemesFactory();
+ /// \brief to return the instance of the copy engine
+ PluginInterface_Themes * getInstance();
+ /// \brief set the resources, to store options, to have facilityInterface
+ void setResources(OptionInterface * optionsEngine,const QString &writePath,const QString &pluginPath,FacilityInterface * facilityEngine,const bool &portableVersion);
+ /// \brief to get the default options widget
+ QWidget * options();
+ /// \brief to get a resource icon
+ QIcon getIcon(const QString &fileName) const;
+ //regex
+ static QRegularExpression slashEnd;
+ static QRegularExpression isolateName;
+ signals:
+ void reloadLanguage();
+ public slots:
+ void resetOptions();
+ void newLanguageLoaded();
+ private:
+ FacilityInterface * facilityEngine;
+};
+
+#endif // FACTORY_H
diff --git a/plugins-alternative/Themes/Windows/informations.xml b/plugins-alternative/Themes/Windows/informations.xml
new file mode 100644
index 0000000..b0d6f22
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/informations.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<package>
+ <title xml:lang="en"><![CDATA[Windows dialog for Ultracopier]]></title><!-- english is required -->
+ <title xml:lang="fr"><![CDATA[Dialogue de Windows pour Ultracopier]]></title>
+ <!-- What kind of plugin this is -->
+ <category>Themes</category>
+ <!-- Who wrote this plugin -->
+ <author><![CDATA[BRULE Herman, alpha_one_x86 (alpha_one_x86@first-world.info)]]></author>
+ <!-- URL of page or site for this plugin (may provide additional information, bug reports, feature requests). -->
+ <website xml:lang="en"><![CDATA[http://ultracopier.first-world.info/]]></website><!-- not required -->
+ <website xml:lang="fr"><![CDATA[http://ultracopier-fr.first-world.info/]]></website><!-- not required -->
+ <!-- the date-time format should be in RFC822 format -->
+ <pubDate>1287496800</pubDate>
+ <!-- the architecture code of this plugin, found PlatformMacro.h into ultracopier source -->
+ <architecture>windows-x86</architecture>
+ <!-- Detailed description -->
+ <description xml:lang="en"><![CDATA[Windows dialog for Ultracopier, to have same copy dialog than windows vista/7/8]]></description>
+ <description xml:lang="fr"><![CDATA[Dialogue de Windows pour Ultracopier, pour avoir une boite de dialogue pour la copie comme windows vista/7/8]]></description>
+ <!-- Version of this release of this plugin, need be like that's: A.B.C.D, where A, B, C and D is number -->
+ <version>1.2.3.6</version>
+ <!-- This internal name should never change, because it is used to detect when a particular plugin is updated. It must comprise only lower case ASCII characters (a-z), numerical digits (0-9), "-", "." or "_", and it must be be unique within the category. And have size lower than 64 char. -->
+ <name>Windows</name>
+ <!-- Dependency checking. This is used to check when a plugin may not be compatible with an updated version of either Ultracopier or another plugin. This example only checks Ultracopier. -->
+ <dependencies><![CDATA[
+ ]]></dependencies>
+</package> \ No newline at end of file
diff --git a/plugins-alternative/Themes/Windows/interface.cpp b/plugins-alternative/Themes/Windows/interface.cpp
new file mode 100644
index 0000000..e358f9c
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/interface.cpp
@@ -0,0 +1,414 @@
+/** \file interface.cpp
+\brief Define the interface core
+\author alpha_one_x86
+*/
+
+#include "interface.h"
+#include "factory.h"
+#include "ui_interface.h"
+
+Themes::Themes(FacilityInterface * facilityEngine) :
+ ui(new Ui::interface())
+{
+ ui->setupUi(this);
+ remainingSeconds= 0;
+ speed = 0;
+ progression_current=0;
+ progression_total=0;
+ modeIsForced = false;
+ haveStarted = false;
+ this->facilityEngine = facilityEngine;
+ transferModel.setFacilityEngine(facilityEngine);
+ menu=new QMenu(this);
+ ui->toolButton->setMenu(menu);
+ updateModeAndType();
+
+ connect(ui->actionAddFile,&QAction::triggered,this,&Themes::forcedModeAddFile);
+ connect(ui->actionAddFileToCopy,&QAction::triggered,this,&Themes::forcedModeAddFileToCopy);
+ connect(ui->actionAddFileToMove,&QAction::triggered,this,&Themes::forcedModeAddFileToMove);
+ connect(ui->actionAddFolderToCopy,&QAction::triggered,this,&Themes::forcedModeAddFolderToCopy);
+ connect(ui->actionAddFolderToMove,&QAction::triggered,this,&Themes::forcedModeAddFolderToMove);
+ connect(ui->actionAddFolder,&QAction::triggered,this,&Themes::forcedModeAddFolder);
+
+ updateDetails();
+
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ connect(&transferModel,&TransferModel::debugInformation,this,&Themes::debugInformation);
+ #endif
+ #ifndef Q_OS_WIN32
+ ui->widget_bottom->setStyleSheet("background-color: rgb(237, 237, 237);");
+ #endif
+ show();
+}
+
+Themes::~Themes()
+{
+ delete menu;
+}
+
+void Themes::forcedModeAddFile()
+{
+ emit userAddFile(mode);
+}
+
+void Themes::forcedModeAddFolder()
+{
+ emit userAddFolder(mode);
+}
+
+void Themes::forcedModeAddFileToCopy()
+{
+ emit userAddFile(Ultracopier::Copy);
+}
+
+void Themes::forcedModeAddFolderToCopy()
+{
+ emit userAddFolder(Ultracopier::Copy);
+}
+
+void Themes::forcedModeAddFileToMove()
+{
+ emit userAddFile(Ultracopier::Move);
+}
+
+void Themes::forcedModeAddFolderToMove()
+{
+ emit userAddFolder(Ultracopier::Move);
+}
+
+void Themes::updateModeAndType()
+{
+ menu->clear();
+ if(modeIsForced)
+ {
+ menu->addAction(ui->actionAddFile);
+ if(type==Ultracopier::FileAndFolder)
+ menu->addAction(ui->actionAddFolder);
+ }
+ else
+ {
+ menu->addAction(ui->actionAddFileToCopy);
+ menu->addAction(ui->actionAddFileToMove);
+ if(type==Ultracopier::FileAndFolder)
+ {
+ menu->addAction(ui->actionAddFolderToCopy);
+ menu->addAction(ui->actionAddFolderToMove);
+ }
+ }
+}
+
+void Themes::closeEvent(QCloseEvent *event)
+{
+ event->ignore();
+ this->hide();
+ emit cancel();
+}
+
+void Themes::detectedSpeed(const quint64 &speed)
+{
+ this->speed=speed;
+ if(ui->more->isChecked())
+ ui->label_speed->setText(facilityEngine->speedToString(speed));
+}
+
+void Themes::setSupportSpeedLimitation(const bool &supportSpeedLimitationBool)
+{
+ Q_UNUSED(supportSpeedLimitationBool);
+}
+
+QWidget * Themes::getOptionsEngineWidget()
+{
+ return NULL;
+}
+
+void Themes::getOptionsEngineEnabled(const bool &isEnabled)
+{
+ Q_UNUSED(isEnabled)
+}
+
+void Themes::setCopyType(const Ultracopier::CopyType &type)
+{
+ this->type=type;
+ updateModeAndType();
+}
+
+void Themes::forceCopyMode(const Ultracopier::CopyMode &mode)
+{
+ modeIsForced=true;
+ this->mode=mode;
+ updateModeAndType();
+ updateInformations();
+}
+
+void Themes::updateTitle()
+{
+ remainingTime(remainingSeconds);
+}
+
+void Themes::actionInProgess(const Ultracopier::EngineActionInProgress &action)
+{
+ this->action=action;
+ switch(action)
+ {
+ case Ultracopier::Copying:
+ case Ultracopier::CopyingAndListing:
+ ui->progressBar->setMaximum(65535);
+ ui->progressBar->setMinimum(0);
+ break;
+ case Ultracopier::Listing:
+ ui->progressBar->setMaximum(0);
+ ui->progressBar->setMinimum(0);
+ break;
+ case Ultracopier::Idle:
+ if(haveStarted)
+ emit cancel();
+ break;
+ default:
+ break;
+ }
+ switch(action)
+ {
+ case Ultracopier::Copying:
+ case Ultracopier::CopyingAndListing:
+ haveStarted=true;
+ break;
+ default:
+ break;
+ }
+}
+
+void Themes::newTransferStart(const Ultracopier::ItemOfCopyList &item)
+{
+ ui->text->setText(item.sourceFullPath);
+}
+
+void Themes::newTransferStop(const quint64 &id)
+{
+ Q_UNUSED(id)
+}
+
+void Themes::newFolderListing(const QString &path)
+{
+ if(action==Ultracopier::Listing)
+ ui->text->setText(path);
+}
+
+void Themes::remainingTime(const int &remainingSeconds)
+{
+ this->remainingSeconds=remainingSeconds;
+
+ QString remainingTime;
+ if(remainingSeconds>=0)
+ remainingTime=facilityEngine->simplifiedRemainingTime(remainingSeconds);
+ else
+ remainingTime=facilityEngine->translateText(tr("Unknown remaining time"));
+
+ this->setWindowTitle(remainingTime);
+
+ if(ui->more->isChecked())
+ ui->label_remaining_time->setText(remainingTime);
+ else
+ updateInformations();
+}
+
+void Themes::newCollisionAction(const QString &action)
+{
+ Q_UNUSED(action)
+}
+
+void Themes::newErrorAction(const QString &action)
+{
+ Q_UNUSED(action)
+}
+
+void Themes::errorDetected()
+{
+}
+
+/// \brief new error
+void Themes::errorToRetry(const QString &source,const QString &destination,const QString &error)
+{
+ Q_UNUSED(source);
+ Q_UNUSED(destination);
+ Q_UNUSED(error);
+}
+
+void Themes::setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation)
+{
+ Q_UNUSED(transferListOperation)
+}
+
+//speed limitation
+bool Themes::setSpeedLimitation(const qint64 &speedLimitation)
+{
+ Q_UNUSED(speedLimitation)
+ return false;
+}
+
+//get information about the copy
+void Themes::setGeneralProgression(const quint64 &current,const quint64 &total)
+{
+ progression_current=current;
+ progression_total=total;
+ ui->progressBar->setValue(((double)current/total)*65535);
+}
+
+void Themes::setCollisionAction(const QList<QPair<QString,QString> > &list)
+{
+ Q_UNUSED(list)
+}
+
+void Themes::setErrorAction(const QList<QPair<QString,QString> > &list)
+{
+ Q_UNUSED(list)
+}
+
+//edit the transfer list
+void Themes::getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions)
+{
+ transferModel.synchronizeItems(returnActions);
+ updateInformations();
+}
+
+void Themes::haveExternalOrder()
+{
+ ui->toolButton->hide();
+}
+
+void Themes::isInPause(const bool &isInPause)
+{
+ //resume in auto the pause
+ if(isInPause)
+ emit resume();
+}
+
+void Themes::newLanguageLoaded()
+{
+ ui->retranslateUi(this);
+ updateTitle();
+ updateInformations();
+}
+
+void Themes::setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList)
+{
+ QList<Ultracopier::ProgressionItem> progressionListBis=progressionList;
+ transferModel.setFileProgression(progressionListBis);
+ updateInformations();
+}
+
+void Themes::on_more_toggled(bool checked)
+{
+ Q_UNUSED(checked);
+ updateDetails();
+ updateInformations();
+}
+
+void Themes::updateDetails()
+{
+ ui->text->setHidden(ui->more->isChecked());
+ ui->details->setHidden(!ui->more->isChecked());
+ if(ui->more->isChecked())
+ {
+ this->setMinimumHeight(242);
+ this->setMaximumHeight(242);
+ ui->more->setIcon(QIcon(":/Themes/Windows/resources/arrow-up.png"));
+ }
+ else
+ {
+ this->setMinimumHeight(168);
+ this->setMaximumHeight(168);
+ ui->more->setIcon(QIcon(":/Themes/Windows/resources/arrow-down.png"));
+ }
+
+ // usefull under windows
+ this->updateGeometry();
+ this->update();
+ this->adjustSize();
+
+ updateInformations();
+}
+
+void Themes::updateInformations()
+{
+ TransferModel::currentTransfertItem transfertItem=transferModel.getCurrentTransfertItem();
+ if(!modeIsForced)
+ {
+ if(transferModel.totalFile>1)
+ ui->label_main->setText(tr("Transferring %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total)));
+ else
+ ui->label_main->setText(tr("Transferring %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total)));
+ }
+ else
+ {
+ if(mode==Ultracopier::Copy)
+ {
+ if(transferModel.totalFile>1)
+ ui->label_main->setText(tr("Copying %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total)));
+ else
+ ui->label_main->setText(tr("Copying %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total)));
+ }
+ else
+ {
+ if(transferModel.totalFile>1)
+ ui->label_main->setText(tr("Moving %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total)));
+ else
+ ui->label_main->setText(tr("Moving %n item(s) (%2)","",transferModel.totalFile).arg(facilityEngine->sizeToString(progression_total)));
+ }
+ }
+
+ if(ui->more->isChecked())
+ {
+ if(transfertItem.haveItem)
+ {
+ QString simplifiedFrom=transfertItem.from;
+ QString simplifiedTo=transfertItem.to;
+ simplifiedFrom.remove(ThemesFactory::slashEnd);
+ simplifiedTo.remove(ThemesFactory::slashEnd);
+ simplifiedFrom.replace('\\','/');
+ simplifiedTo.replace('\\','/');
+ simplifiedFrom.replace(ThemesFactory::isolateName, "\\1");
+ simplifiedTo.replace(ThemesFactory::isolateName, "\\1");
+ ui->label_file->setText(transfertItem.current_file);
+ ui->label_from->setText(QStringLiteral("<b>%1</b> (%2)").arg(simplifiedFrom).arg(transfertItem.from));
+ ui->label_to->setText(QStringLiteral("<b>%1</b> (%2)").arg(simplifiedTo).arg(transfertItem.to));
+ ui->label_items->setText(QStringLiteral("%1 (%2)").arg(transferModel.totalFile-transferModel.currentFile).arg(facilityEngine->sizeToString(progression_total-progression_current)));
+ }
+ else
+ {
+ ui->label_file->setText("");
+ ui->label_from->setText("");
+ ui->label_to->setText("");
+ ui->label_items->setText(QStringLiteral("%1 (%2)").arg(transferModel.totalFile-transferModel.currentFile).arg(facilityEngine->sizeToString(progression_total-progression_current)));
+ }
+ }
+ else
+ {
+ if(transfertItem.haveItem)
+ {
+ QString remainingTime;
+ if(remainingSeconds>=0)
+ remainingTime=facilityEngine->simplifiedRemainingTime(remainingSeconds);
+ else
+ remainingTime=facilityEngine->translateText(tr("Unknown remaining time"));
+ QString simplifiedFrom=transfertItem.from;
+ QString simplifiedTo=transfertItem.to;
+ simplifiedFrom.remove(ThemesFactory::slashEnd);
+ simplifiedTo.remove(ThemesFactory::slashEnd);
+ simplifiedFrom.replace('\\','/');
+ simplifiedTo.replace('\\','/');
+ simplifiedFrom.replace(ThemesFactory::isolateName, "\\1");
+ simplifiedTo.replace(ThemesFactory::isolateName, "\\1");
+ ui->text->setText(
+ //: Sample: from <b>sources</b> (e:\folder\source) to <b>destination</b> (d:\desktop\destination)<br />About 5 Hours remaining
+ tr("from <b>%1</b> (%2) to <b>%3</b> (%4)<br />%5")
+ .arg(simplifiedFrom)
+ .arg(transfertItem.from)
+ .arg(simplifiedTo)
+ .arg(transfertItem.to)
+ .arg(remainingTime)
+ );
+ }
+ else
+ ui->text->setText(tr("In waiting"));
+ }
+}
diff --git a/plugins-alternative/Themes/Windows/interface.h b/plugins-alternative/Themes/Windows/interface.h
new file mode 100644
index 0000000..5de55e6
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/interface.h
@@ -0,0 +1,165 @@
+/** \file interface.h
+\brief Define the interface
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef INTERFACE_TEST_H
+#define INTERFACE_TEST_H
+
+#include <QObject>
+#include <QWidget>
+#include <QMenu>
+#include <QCloseEvent>
+
+#include "../../../interface/PluginInterface_Themes.h"
+#include "TransferModel.h"
+
+namespace Ui {
+ class interface;
+}
+
+/// \brief Define the interface
+class Themes : public PluginInterface_Themes
+{
+ Q_OBJECT
+public slots:
+ //send information about the copy
+ /// \brief to set the action in progress
+ void actionInProgess(const Ultracopier::EngineActionInProgress &);
+ /// \brief new transfer have started
+ void newTransferStart(const Ultracopier::ItemOfCopyList &item);
+ /** \brief one transfer have been stopped
+ * is stopped, example: because error have occurred, and try later, don't remove the item! */
+ void newTransferStop(const quint64 &id);
+ /// \brief the new folder is listing
+ void newFolderListing(const QString &path);
+ /** \brief show the detected speed
+ * in byte per seconds */
+ void detectedSpeed(const quint64 &speed);
+ /** \brief support speed limitation */
+ void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool);
+ /** \brief show the remaining time
+ * time in seconds */
+ void remainingTime(const int &remainingSeconds);
+ /// \brief set the current collision action
+ void newCollisionAction(const QString &action);
+ /// \brief set the current error action
+ void newErrorAction(const QString &action);
+ /// \brief set one error is detected
+ void errorDetected();
+ /// \brief new error
+ void errorToRetry(const QString &source,const QString &destination,const QString &error);
+ //speed limitation
+ /** \brief the max speed used
+ * in byte per seconds, -1 if not able, 0 if disabled */
+ bool setSpeedLimitation(const qint64 &speedLimitation);
+ //set the translate
+ void newLanguageLoaded();
+public:
+ /// \brief the transfer item with progression
+ struct ItemOfCopyListWithMoreInformations
+ {
+ quint64 currentProgression;
+ Ultracopier::ItemOfCopyList generalData;
+ Ultracopier::ActionTypeCopyList actionType;
+ bool custom_with_progression;
+ };
+ /// \brief returned first transfer item
+ struct currentTransfertItem
+ {
+ quint64 id;
+ bool haveItem;
+ QString from;
+ QString to;
+ QString current_file;
+ int progressBar_file;
+ };
+ /// \brief get the widget for the copy engine
+ QWidget * getOptionsEngineWidget();
+ /// \brief to set if the copy engine is found
+ void getOptionsEngineEnabled(const bool &isEnabled);
+ /// \brief get action on the transfer list (add/move/remove)
+ void getActionOnList(const QList<Ultracopier::ReturnActionOnCopyList> &returnActions);
+ //get information about the copy
+ /// \brief show the general progression
+ void setGeneralProgression(const quint64 &current,const quint64 &total);
+ /// \brief show the file progression
+ void setFileProgression(const QList<Ultracopier::ProgressionItem> &progressionList);
+ /// \brief set collision action
+ void setCollisionAction(const QList<QPair<QString,QString> > &);
+ /// \brief set error action
+ void setErrorAction(const QList<QPair<QString,QString> > &);
+ /// \brief set the copyType -> file or folder
+ void setCopyType(const Ultracopier::CopyType &);
+ /// \brief set the copyMove -> copy or move, to force in copy or move, else support both
+ void forceCopyMode(const Ultracopier::CopyMode &);
+ /// \brief set if transfer list is exportable/importable
+ void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation);
+ /** \brief set if the order is external (like file manager copy)
+ * to notify the interface, which can hide add folder/filer button */
+ void haveExternalOrder();
+ /// \brief set if is in pause
+ void isInPause(const bool &);
+signals:
+ #ifdef ULTRACOPIER_PLUGIN_DEBUG
+ /// \brief To debug source
+ void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
+ #endif
+/* //set the transfer list
+ void removeItems(QList<int> ids);
+ void moveItemsOnTop(QList<int> ids);
+ void moveItemsUp(QList<int> ids);
+ void moveItemsDown(QList<int> ids);
+ void moveItemsOnBottom(QList<int> ids);
+ void exportTransferList();
+ void importTransferList();
+ //user ask ask to add folder (add it with interface ask source/destination)
+ void userAddFolder(CopyMode);
+ void userAddFile(CopyMode);
+ void urlDropped(QList<QUrl> urls);
+ //action on the copy
+ void pause();
+ void resume();
+ void skip(quint64 id);
+ void cancel();
+ //edit the action
+ void sendCollisionAction(QString action);
+ void sendErrorAction(QString action);
+ void newSpeedLimitation(qint64);*/
+public:
+ //constructor and destructor
+ Themes(FacilityInterface * facilityEngine);
+ ~Themes();
+private:
+ Ui::interface *ui;
+ TransferModel transferModel;
+ void updateTitle();
+ QMenu *menu;
+ Ultracopier::EngineActionInProgress action;
+ void closeEvent(QCloseEvent *event);
+ void updateModeAndType();
+ bool modeIsForced;
+ Ultracopier::CopyType type;
+ Ultracopier::CopyMode mode;
+ bool haveStarted;
+ QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation;
+ int loop_size,index_for_loop;
+ int sub_loop_size,sub_index_for_loop;
+ FacilityInterface * facilityEngine;
+ void updateDetails();
+ void updateInformations();
+ int remainingSeconds;
+ quint64 progression_current;
+ quint64 progression_total;
+ quint64 speed;
+private slots:
+ void forcedModeAddFile();
+ void forcedModeAddFolder();
+ void forcedModeAddFileToCopy();
+ void forcedModeAddFolderToCopy();
+ void forcedModeAddFileToMove();
+ void forcedModeAddFolderToMove();
+ void on_more_toggled(bool checked);
+};
+
+#endif // INTERFACE_TEST_H
diff --git a/plugins-alternative/Themes/Windows/interface.pro b/plugins-alternative/Themes/Windows/interface.pro
new file mode 100644
index 0000000..9a82f6a
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/interface.pro
@@ -0,0 +1,48 @@
+CONFIG += c++11
+QMAKE_CXXFLAGS+="-std=c++0x -Wall -Wextra"
+mac:QMAKE_CXXFLAGS+="-stdlib=libc++"
+
+QT += widgets
+TEMPLATE = lib
+CONFIG += plugin
+HEADERS = interface.h \
+ StructEnumDefinition.h \
+ factory.h \
+ ../../../interface/PluginInterface_Themes.h \
+ TransferModel.h
+SOURCES = interface.cpp \
+ factory.cpp \
+ TransferModel.cpp
+TARGET = $$qtLibraryTarget(interface)
+TRANSLATIONS += Languages/ar/translation.ts \
+ Languages/de/translation.ts \
+ Languages/el/translation.ts \
+ Languages/en/translation.ts \
+ Languages/es/translation.ts \
+ Languages/fr/translation.ts \
+ Languages/hi/translation.ts \
+ Languages/hu/translation.ts \
+ Languages/id/translation.ts \
+ Languages/it/translation.ts \
+ Languages/ja/translation.ts \
+ Languages/ko/translation.ts \
+ Languages/nl/translation.ts \
+ Languages/no/translation.ts \
+ Languages/pl/translation.ts \
+ Languages/ru/translation.ts \
+ Languages/th/translation.ts \
+ Languages/tr/translation.ts \
+ Languages/zh/translation.ts
+
+FORMS += \
+ interface.ui
+
+RESOURCES += \
+ resources.qrc
+
+win32 {
+ RESOURCES += resources_windows.qrc
+}
+!win32 {
+ RESOURCES += resources_unix.qrc
+}
diff --git a/plugins-alternative/Themes/Windows/interface.ui b/plugins-alternative/Themes/Windows/interface.ui
new file mode 100644
index 0000000..f255562
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/interface.ui
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>interface</class>
+ <widget class="QWidget" name="interface">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>420</width>
+ <height>284</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>420</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>420</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string notr="true">Ultracopier</string>
+ </property>
+ <property name="windowIcon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/Themes/Windows/resources/icon.png</normaloff>:/Themes/Windows/resources/icon.png</iconset>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QWidget" name="widget" native="true">
+ <property name="minimumSize">
+ <size>
+ <width>420</width>
+ <height>42</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>420</width>
+ <height>42</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(230, 240, 255, 255), stop:0.5 rgba(166, 199, 230, 255), stop:1 rgba(3, 40, 84, 255));</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <property name="leftMargin">
+ <number>20</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>20</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_main">
+ <property name="styleSheet">
+ <string notr="true">background-color: rgba(255, 0, 0, 0);
+font: 12pt &quot;Sans Serif&quot;;</string>
+ </property>
+ <property name="text">
+ <string notr="true">Copying 0 item (0KB)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="minimumSize">
+ <size>
+ <width>51</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>51</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">background-color: rgba(255, 0, 0, 0);</string>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="resources.qrc">:/Themes/Windows/resources/icon-top.png</pixmap>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="widget_2" native="true">
+ <property name="minimumSize">
+ <size>
+ <width>420</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>420</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">background-color: rgb(255, 255, 255);</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
+ <number>14</number>
+ </property>
+ <property name="leftMargin">
+ <number>20</number>
+ </property>
+ <property name="topMargin">
+ <number>14</number>
+ </property>
+ <property name="rightMargin">
+ <number>20</number>
+ </property>
+ <property name="bottomMargin">
+ <number>14</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="text">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>28</height>
+ </size>
+ </property>
+ <property name="text">
+ <string notr="true">from &lt;b&gt;%1&lt;/b&gt; (%2) to &lt;b&gt;%3&lt;/b&gt; (%4)&lt;br /&gt;
+%5</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="details" native="true">
+ <layout class="QFormLayout" name="formLayout">
+ <property name="labelAlignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="verticalSpacing">
+ <number>2</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="label_file"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>From:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLabel" name="label_from"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>To:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLabel" name="label_to"/>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Time remaining:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLabel" name="label_remaining_time"/>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Items remaining:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QLabel" name="label_items"/>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_9">
+ <property name="text">
+ <string>Speed:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QLabel" name="label_speed"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QProgressBar" name="progressBar">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>14</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>14</height>
+ </size>
+ </property>
+ <property name="maximum">
+ <number>65535</number>
+ </property>
+ <property name="textVisible">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="widget_bottom" native="true">
+ <property name="minimumSize">
+ <size>
+ <width>420</width>
+ <height>42</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>420</width>
+ <height>42</height>
+ </size>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="leftMargin">
+ <number>20</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>20</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="more">
+ <property name="text">
+ <string>More information</string>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/Themes/Windows/resources/arrow-down.png</normaloff>:/Themes/Windows/resources/arrow-down.png</iconset>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>123</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QToolButton" name="toolButton">
+ <property name="text">
+ <string notr="true">...</string>
+ </property>
+ <property name="popupMode">
+ <enum>QToolButton::InstantPopup</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="Cancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ <action name="actionAddFile">
+ <property name="icon">
+ <iconset>
+ <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Add file</string>
+ </property>
+ </action>
+ <action name="actionAddFolder">
+ <property name="icon">
+ <iconset>
+ <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Add folder</string>
+ </property>
+ </action>
+ <action name="actionAddFileToMove">
+ <property name="icon">
+ <iconset>
+ <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Move file(s)</string>
+ </property>
+ </action>
+ <action name="actionAddFolderToMove">
+ <property name="icon">
+ <iconset>
+ <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Move folder</string>
+ </property>
+ </action>
+ <action name="actionAddFileToCopy">
+ <property name="icon">
+ <iconset>
+ <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Copy file(s)</string>
+ </property>
+ </action>
+ <action name="actionAddFolderToCopy">
+ <property name="icon">
+ <iconset>
+ <normaloff>:/Themes/Windows/resources/add.png</normaloff>:/Themes/Windows/resources/add.png</iconset>
+ </property>
+ <property name="text">
+ <string>Copy folder</string>
+ </property>
+ </action>
+ </widget>
+ <resources>
+ <include location="resources.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>Cancel</sender>
+ <signal>clicked()</signal>
+ <receiver>interface</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>388</x>
+ <y>349</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>523</x>
+ <y>498</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/plugins-alternative/Themes/Windows/plugin.json b/plugins-alternative/Themes/Windows/plugin.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/plugin.json
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/plugins-alternative/Themes/Windows/resources.qrc b/plugins-alternative/Themes/Windows/resources.qrc
new file mode 100644
index 0000000..f7ffc64
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources.qrc
@@ -0,0 +1,10 @@
+<RCC>
+ <qresource prefix="/Themes/Windows">
+ <file>resources/icon.png</file>
+ <file>resources/arrow-down.png</file>
+ <file>resources/arrow-up.png</file>
+ <file>resources/SystemTrayIcon/informations.png</file>
+ <file>resources/icon-top.png</file>
+ <file>resources/empty.png</file>
+ </qresource>
+</RCC>
diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/informations.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/informations.png
new file mode 100644
index 0000000..5b7b255
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/informations.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Unix.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Unix.png
new file mode 100644
index 0000000..6f5d1cf
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Windows.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Windows.png
new file mode 100644
index 0000000..5464856
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Caught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
new file mode 100644
index 0000000..3961215
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
new file mode 100644
index 0000000..45d6315
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Semiuncaught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Unix.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Unix.png
new file mode 100644
index 0000000..ac4299a
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Unix.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Windows.png b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Windows.png
new file mode 100644
index 0000000..6e6bae7
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/SystemTrayIcon/systray_Uncaught_Windows.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/arrow-down.png b/plugins-alternative/Themes/Windows/resources/arrow-down.png
new file mode 100644
index 0000000..39b5c37
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/arrow-down.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/arrow-up.png b/plugins-alternative/Themes/Windows/resources/arrow-up.png
new file mode 100644
index 0000000..5c824fb
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/arrow-up.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/empty.png b/plugins-alternative/Themes/Windows/resources/empty.png
new file mode 100644
index 0000000..846d96d
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/empty.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/icon-top.png b/plugins-alternative/Themes/Windows/resources/icon-top.png
new file mode 100644
index 0000000..64b7992
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/icon-top.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/icon-top.xcf b/plugins-alternative/Themes/Windows/resources/icon-top.xcf
new file mode 100644
index 0000000..9a775e2
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/icon-top.xcf
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources/icon.png b/plugins-alternative/Themes/Windows/resources/icon.png
new file mode 100644
index 0000000..eccfbc5
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources/icon.png
Binary files differ
diff --git a/plugins-alternative/Themes/Windows/resources_unix.qrc b/plugins-alternative/Themes/Windows/resources_unix.qrc
new file mode 100644
index 0000000..3904f69
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources_unix.qrc
@@ -0,0 +1,7 @@
+<RCC>
+ <qresource prefix="/Themes/Windows">
+ <file>resources/SystemTrayIcon/systray_Caught_Unix.png</file>
+ <file>resources/SystemTrayIcon/systray_Semiuncaught_Unix.png</file>
+ <file>resources/SystemTrayIcon/systray_Uncaught_Unix.png</file>
+ </qresource>
+</RCC>
diff --git a/plugins-alternative/Themes/Windows/resources_windows.qrc b/plugins-alternative/Themes/Windows/resources_windows.qrc
new file mode 100644
index 0000000..28666fc
--- /dev/null
+++ b/plugins-alternative/Themes/Windows/resources_windows.qrc
@@ -0,0 +1,7 @@
+<RCC>
+ <qresource prefix="/Themes/Windows">
+ <file>resources/SystemTrayIcon/systray_Caught_Windows.png</file>
+ <file>resources/SystemTrayIcon/systray_Semiuncaught_Windows.png</file>
+ <file>resources/SystemTrayIcon/systray_Uncaught_Windows.png</file>
+ </qresource>
+</RCC>