aboutsummaryrefslogtreecommitdiff
path: root/src-qt5
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5')
-rw-r--r--src-qt5/core-utils/lumina-config/AppDialog.h40
-rw-r--r--src-qt5/core-utils/lumina-config/AppDialog.ui42
-rw-r--r--src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts757
-rw-r--r--src-qt5/core-utils/lumina-config/i18n/lumina-config_de.ts64
-rw-r--r--src-qt5/core-utils/lumina-config/i18n/lumina-config_lt.ts38
-rw-r--r--src-qt5/core-utils/lumina-config/i18n/lumina-config_pl.ts108
-rw-r--r--src-qt5/core-utils/lumina-config/lumina-config.pro8
-rw-r--r--src-qt5/core-utils/lumina-config/pages/getPage.h12
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp195
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_defaultapps.h6
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_interface_panels.cpp35
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_mouse.cpp217
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_mouse.h43
-rw-r--r--src-qt5/core-utils/lumina-config/pages/page_mouse.ui31
-rw-r--r--src-qt5/core-utils/lumina-config/pages/pages.pri6
-rw-r--r--src-qt5/core-utils/lumina-search/i18n/lumina-search_da.ts6
-rw-r--r--src-qt5/core/libLumina/ExternalProcess.h26
-rw-r--r--src-qt5/core/libLumina/LuminaRandR-X11.cpp206
-rw-r--r--src-qt5/core/libLumina/LuminaRandR.cpp1
-rw-r--r--src-qt5/core/libLumina/LuminaRandR.h51
-rw-r--r--src-qt5/core/libLumina/LuminaRandR.pri12
-rw-r--r--src-qt5/core/libLumina/LuminaX11.cpp30
-rw-r--r--src-qt5/core/libLumina/LuminaX11.h13
-rw-r--r--src-qt5/core/libLumina/LuminaXDG.cpp5
-rw-r--r--src-qt5/core/libLumina/NativeWindow.cpp37
-rw-r--r--src-qt5/core/libLumina/NativeWindow.h81
-rw-r--r--src-qt5/core/libLumina/NativeWindow.pri8
-rw-r--r--src-qt5/core/libLumina/NativeWindowSystem.cpp221
-rw-r--r--src-qt5/core/libLumina/NativeWindowSystem.h92
-rw-r--r--src-qt5/core/libLumina/RootSubWindow.cpp110
-rw-r--r--src-qt5/core/libLumina/RootSubWindow.h51
-rw-r--r--src-qt5/core/libLumina/RootWindow.cpp23
-rw-r--r--src-qt5/core/libLumina/RootWindow.h12
-rw-r--r--src-qt5/core/libLumina/RootWindow.pri10
-rw-r--r--src-qt5/core/libLumina/test/main.cpp13
-rw-r--r--src-qt5/core/libLumina/test/test.pro7
-rw-r--r--src-qt5/core/lumina-desktop-unified/LSession.cpp11
-rw-r--r--src-qt5/core/lumina-desktop-unified/global-includes.h2
-rw-r--r--src-qt5/core/lumina-desktop-unified/lumina-desktop.pro1
-rw-r--r--src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp7
-rw-r--r--src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h1
-rw-r--r--src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.cpp129
-rw-r--r--src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.h20
-rw-r--r--src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp3
-rw-r--r--src-qt5/core/lumina-desktop/LDesktop.cpp11
-rw-r--r--src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp5
-rw-r--r--src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp4
-rw-r--r--src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts266
-rw-r--r--src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts76
-rw-r--r--src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts2
-rw-r--r--src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts26
-rw-r--r--src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts96
-rw-r--r--src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp10
-rw-r--r--src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp2
-rw-r--r--src-qt5/core/lumina-info/i18n/lumina-info_da.ts20
-rw-r--r--src-qt5/core/lumina-info/i18n/lumina-info_pl.ts14
-rw-r--r--src-qt5/core/lumina-open/LFileDialog.cpp8
-rw-r--r--src-qt5/core/lumina-open/i18n/lumina-open_da.ts24
-rw-r--r--src-qt5/core/lumina-open/i18n/lumina-open_de.ts12
-rw-r--r--src-qt5/core/lumina-open/i18n/lumina-open_it.ts2
-rw-r--r--src-qt5/core/lumina-open/i18n/lumina-open_lt.ts6
-rw-r--r--src-qt5/core/lumina-session/main.cpp4
-rw-r--r--src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_da.ts14
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/MainUI.cpp19
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/MainUI.h2
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/MainUI.ui15
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp15
-rw-r--r--src-qt5/desktop-utils/lumina-fileinfo/i18n/l-fileinfo_da.ts18
-rw-r--r--src-qt5/desktop-utils/lumina-fm/MainUI.cpp2
-rw-r--r--src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_da.ts376
-rw-r--r--src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_de.ts88
-rw-r--r--src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_lt.ts18
-rw-r--r--src-qt5/desktop-utils/lumina-fm/widgets/DirWidget2.cpp12
-rw-r--r--src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp50
-rw-r--r--src-qt5/desktop-utils/lumina-screenshot/MainUI.h3
-rw-r--r--src-qt5/desktop-utils/lumina-screenshot/MainUI.ui58
-rw-r--r--src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_da.ts34
-rw-r--r--src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_de.ts10
-rw-r--r--src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_pl.ts8
-rw-r--r--src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_da.ts14
-rw-r--r--src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_de.ts10
-rw-r--r--src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp2
-rw-r--r--src-qt5/desktop-utils/lumina-textedit/i18n/l-te_da.ts116
-rw-r--r--src-qt5/desktop-utils/lumina-textedit/i18n/l-te_de.ts16
-rw-r--r--src-qt5/desktop-utils/lumina-textedit/i18n/l-te_pl.ts22
85 files changed, 2590 insertions, 1711 deletions
diff --git a/src-qt5/core-utils/lumina-config/AppDialog.h b/src-qt5/core-utils/lumina-config/AppDialog.h
index ea7615e2..2b03fc76 100644
--- a/src-qt5/core-utils/lumina-config/AppDialog.h
+++ b/src-qt5/core-utils/lumina-config/AppDialog.h
@@ -23,13 +23,22 @@ private:
Ui::AppDialog *ui;
public:
- AppDialog(QWidget *parent = 0) : QDialog(parent), ui(new Ui::AppDialog){
+ AppDialog(QWidget *parent = 0, QString defaultPath = "") : QDialog(parent), ui(new Ui::AppDialog){
ui->setupUi(this); //load the designer file
appreset = false;
- ui->comboBox->clear();
+ ui->listApps->clear();
+ QListWidgetItem *defaultItem = nullptr;
QList<XDGDesktop*> APPS = LXDG::sortDesktopNames(APPSLIST->apps(false,false)); //Don't show all/hidden
for(int i=0; i<APPS.length(); i++){
- ui->comboBox->addItem( LXDG::findIcon(APPS[i]->icon,"application-x-executable"), APPS[i]->name, APPS[i]->filePath);
+ QListWidgetItem *app = new QListWidgetItem(LXDG::findIcon(APPS[i]->icon,"application-x-executable"), APPS[i]->name);
+ app->setData(Qt::UserRole, APPS[i]->filePath);
+ ui->listApps->addItem(app);
+ if(APPS[i]->filePath == defaultPath){
+ defaultItem = app;
+ }
+ }
+ if(ui->listApps->count()){
+ ui->listApps->setCurrentItem(defaultItem != nullptr ? defaultItem : ui->listApps->item(0));
}
this->setWindowIcon( LXDG::findIcon("system-search","") );
if(parent!=0){
@@ -56,7 +65,10 @@ public:
private slots:
void on_buttonBox_accepted(){
- appselected = ui->comboBox->currentData().toString();
+ QListWidgetItem *item = ui->listApps->currentItem();
+ if(item != nullptr){
+ appselected = item->data(Qt::UserRole).toString();
+ }
this->close();
}
void on_buttonBox_rejected(){
@@ -68,6 +80,26 @@ private slots:
this->close();
}
}
+ void on_listApps_itemDoubleClicked(QListWidgetItem *item){
+ appselected = item->data(Qt::UserRole).toString();
+ this->close();
+ }
+ void on_lineSearch_textChanged(const QString &term){
+ QListWidgetItem *first_visible = nullptr;
+ for(int i = 0; i < ui->listApps->count(); i++){
+ QListWidgetItem *item = ui->listApps->item(i);
+ bool visible = item->text().contains(term, Qt::CaseInsensitive);
+ item->setHidden(!visible);
+ if(visible && first_visible == nullptr){
+ first_visible = item;
+ }
+ }
+ //Select the first app
+ ui->listApps->setCurrentItem(first_visible);
+ if(first_visible != nullptr){
+ ui->listApps->scrollToItem(first_visible);
+ }
+ }
};
#endif
diff --git a/src-qt5/core-utils/lumina-config/AppDialog.ui b/src-qt5/core-utils/lumina-config/AppDialog.ui
index 63323f7d..ec7de974 100644
--- a/src-qt5/core-utils/lumina-config/AppDialog.ui
+++ b/src-qt5/core-utils/lumina-config/AppDialog.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>348</width>
- <height>91</height>
+ <height>300</height>
</rect>
</property>
<property name="windowTitle">
@@ -15,46 +15,14 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QComboBox" name="comboBox">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="iconSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
+ <widget class="QLineEdit" name="lineSearch">
+ <property name="placeholderText">
+ <string>Search for....</string>
</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>
+ <widget class="QListWidget" name="listApps"/>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts
index a596d071..add87210 100644
--- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts
+++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_da.ts
@@ -14,7 +14,7 @@
<message>
<location filename="../ColorDialog.ui" line="14"/>
<source>Color Scheme Editor</source>
- <translation>Redigér Farveskema</translation>
+ <translation>Redigér farveskema</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="28"/>
@@ -50,12 +50,12 @@
<message>
<location filename="../ColorDialog.ui" line="105"/>
<source>Sample</source>
- <translation>Eksempel</translation>
+ <translation>Prøve</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="115"/>
<source>Cancel</source>
- <translation>Annullér</translation>
+ <translation>Annuller</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="135"/>
@@ -71,8 +71,8 @@
<location filename="../ColorDialog.cpp" line="98"/>
<source>This color scheme already exists.
Overwrite it?</source>
- <translation>Denne farve eksisterer allerede.
-Skal den overskrives?</translation>
+ <translation>Denne farve eksisterer allerede.
+ Skal den overskrives?</translation>
</message>
<message>
<location filename="../ColorDialog.cpp" line="121"/>
@@ -96,17 +96,17 @@ Skal den overskrives?</translation>
<message>
<location filename="../GetPluginDialog.ui" line="14"/>
<source>Select Plugin</source>
- <translation>Vælg Udvidelsesmodul</translation>
+ <translation>Vælg plugin</translation>
</message>
<message>
<location filename="../GetPluginDialog.ui" line="26"/>
<source>Select a Plugin:</source>
- <translation>Vælg et Udvidelsesmodul:</translation>
+ <translation>Vælg et plugin:</translation>
</message>
<message>
<location filename="../GetPluginDialog.ui" line="57"/>
<source>Cancel</source>
- <translation>Afbryd</translation>
+ <translation>Annuller</translation>
</message>
<message>
<location filename="../GetPluginDialog.ui" line="77"/>
@@ -119,7 +119,7 @@ Skal den overskrives?</translation>
<message>
<location filename="../PanelWidget.ui" line="32"/>
<source>Form</source>
- <translation>Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../PanelWidget.ui" line="93"/>
@@ -139,7 +139,7 @@ Skal den overskrives?</translation>
<message>
<location filename="../PanelWidget.ui" line="138"/>
<source> pixel(s) thick</source>
- <translation> pixel(s) tyk</translation>
+ <translation> pixel(s) bred</translation>
</message>
<message>
<location filename="../PanelWidget.ui" line="157"/>
@@ -154,7 +154,7 @@ Skal den overskrives?</translation>
<message>
<location filename="../PanelWidget.ui" line="204"/>
<source>Appearance</source>
- <translation type="unfinished">Udseende</translation>
+ <translation>Udseende</translation>
</message>
<message>
<location filename="../PanelWidget.ui" line="222"/>
@@ -164,37 +164,37 @@ Skal den overskrives?</translation>
<message>
<location filename="../PanelWidget.ui" line="229"/>
<source>Use Custom Color</source>
- <translation>Anvend brugervalgt farve</translation>
+ <translation>Brug brugerdefineret farve</translation>
</message>
<message>
<location filename="../PanelWidget.ui" line="250"/>
<source>...</source>
- <translation type="unfinished">...</translation>
+ <translation>...</translation>
</message>
<message>
<location filename="../PanelWidget.ui" line="257"/>
<source>Sample</source>
- <translation type="unfinished">Eksempel</translation>
+ <translation>Prøve</translation>
</message>
<message>
<location filename="../PanelWidget.ui" line="287"/>
<source>Plugins</source>
- <translation>Udvidelsesmoduler</translation>
+ <translation>Plugins</translation>
</message>
<message>
<location filename="../PanelWidget.cpp" line="19"/>
<source>Top/Left</source>
- <translation>Øverst/Venstre</translation>
+ <translation>Øverst/venstre</translation>
</message>
<message>
<location filename="../PanelWidget.cpp" line="20"/>
<source>Center</source>
- <translation>Midt</translation>
+ <translation>I midten</translation>
</message>
<message>
<location filename="../PanelWidget.cpp" line="21"/>
<source>Bottom/Right</source>
- <translation>Bund/Højre</translation>
+ <translation>Nederst/højre</translation>
</message>
<message>
<location filename="../PanelWidget.cpp" line="22"/>
@@ -204,29 +204,29 @@ Skal den overskrives?</translation>
<message>
<location filename="../PanelWidget.cpp" line="23"/>
<source>Bottom</source>
- <translation>Bund</translation>
+ <translation>Nederst</translation>
</message>
<message>
<location filename="../PanelWidget.cpp" line="24"/>
<source>Left</source>
- <translation type="unfinished"></translation>
+ <translation>Venstre</translation>
</message>
<message>
<location filename="../PanelWidget.cpp" line="25"/>
<source>Right</source>
- <translation type="unfinished"></translation>
+ <translation>Højre</translation>
</message>
<message>
<location filename="../PanelWidget.cpp" line="44"/>
<location filename="../PanelWidget.cpp" line="117"/>
<source>Panel %1</source>
- <translation type="unfinished"></translation>
+ <translation>Panel %1</translation>
</message>
<message>
<location filename="../PanelWidget.cpp" line="155"/>
<location filename="../PanelWidget.cpp" line="156"/>
<source>Select Color</source>
- <translation type="unfinished">Vælg farve</translation>
+ <translation>Vælg farve</translation>
</message>
</context>
<context>
@@ -234,27 +234,27 @@ Skal den overskrives?</translation>
<message>
<location filename="../LPlugins.cpp" line="80"/>
<source>Desktop Bar</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsbjælke</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="81"/>
<source>This provides shortcuts to everything in the desktop folder - allowing easy access to all your favorite files/applications.</source>
- <translation type="unfinished"></translation>
+ <translation>Dette giver genveje til alt i skrivebordsmappen - hvilket giver nem adgang til alle dine favoritfiler/-programmer.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="87"/>
<source>Spacer</source>
- <translation type="unfinished"></translation>
+ <translation>Afstandsstykke</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="88"/>
<source>Invisible spacer to separate plugins.</source>
- <translation type="unfinished"></translation>
+ <translation>Usynlig afstandsstykke til at afskille plugins.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="102"/>
<source>Controls for switching between the various virtual desktops.</source>
- <translation type="unfinished"></translation>
+ <translation>Kontroller til at skifte mellem de forskellige virtuelle skriveborde.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="108"/>
@@ -269,579 +269,579 @@ Skal den overskrives?</translation>
<message>
<location filename="../LPlugins.cpp" line="115"/>
<source>Time/Date</source>
- <translation>Tid/Dato</translation>
+ <translation>Klokkeslæt/dato</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="116"/>
<source>View the current time and date.</source>
- <translation>Vis det aktuelle tidspunkt og dato.</translation>
+ <translation>Vis det aktuelle klokkeslæt og dato.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="122"/>
<source>System Dashboard</source>
- <translation type="unfinished">Instrumentbræt til skrivebordet</translation>
+ <translation>Systemets instrumentbræt</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="123"/>
<source>View or change system settings (audio volume, screen brightness, battery life, virtual desktops).</source>
- <translation type="unfinished"></translation>
+ <translation>Vis eller ændre systemindstillinger (lydstyrke, skærmlysstyrke, batteriliv, virtuelle skriveborde).</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="129"/>
<location filename="../LPlugins.cpp" line="291"/>
<source>Task Manager</source>
- <translation type="unfinished"></translation>
+ <translation>Opgavehåndtering</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="136"/>
<source>Task Manager (No Groups)</source>
- <translation type="unfinished"></translation>
+ <translation>Opgavehåndtering (ingen grupper)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="143"/>
<source>System Tray</source>
- <translation type="unfinished"></translation>
+ <translation>Systembakke</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="144"/>
<source>Display area for dockable system applications</source>
- <translation type="unfinished"></translation>
+ <translation>Vis område til systemprogrammer som kan dokkes</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="151"/>
<source>Hide all open windows and show the desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Skjul alle åbne vinduer og vis skrivebordet</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="157"/>
<source>Start Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Startmenu</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="190"/>
<source>Calendar</source>
- <translation type="unfinished"></translation>
+ <translation>Kalender</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="191"/>
<source>Display a calendar on the desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Vis en kalender på skrivebordet</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="164"/>
<location filename="../LPlugins.cpp" line="197"/>
<source>Application Launcher</source>
- <translation type="unfinished"></translation>
+ <translation>Programstarter</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="66"/>
<source>User Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Brugermenu</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="67"/>
- <source>Start menu alternative focusing on the user&apos;s files, directories, and favorites.</source>
- <translation type="unfinished"></translation>
+ <source>Start menu alternative focusing on the user's files, directories, and favorites.</source>
+ <translation>Startmenu alternativ som fokusere på brugerens filer, mapper og favoritter.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="73"/>
<source>Application Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Programmenu</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="74"/>
<source>Start menu alternative which focuses on launching applications.</source>
- <translation type="unfinished"></translation>
+ <translation>Startmenu alternativ som fokusere på startende programmer.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="94"/>
<source>Line</source>
- <translation type="unfinished"></translation>
+ <translation>Linje</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="95"/>
<source>Simple line to provide visual separation between items.</source>
- <translation type="unfinished"></translation>
+ <translation>Simpel linje til at give visuel adskillelse mellem poster.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="101"/>
<source>Workspace Switcher</source>
- <translation type="unfinished"></translation>
+ <translation>Arbejdsområdeskifter</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="130"/>
<source>View and control any running application windows (group similar windows under a single button).</source>
- <translation type="unfinished"></translation>
+ <translation>Vis og kontrollér kørende programvinder (gruppér lignende vinduer under en enkelt knap).</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="137"/>
<source>View and control any running application windows (every individual window has a button)</source>
- <translation type="unfinished"></translation>
+ <translation>Vis og kontrollér kørende programvinder (hvert vindue har en knap)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="150"/>
<source>Show Desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Vis skrivebord</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="158"/>
<source>Unified system access and application launch menu.</source>
- <translation type="unfinished"></translation>
+ <translation>Ensartet systemadgang og programstart-menu.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="165"/>
<source>Pin an application shortcut directly to the panel</source>
- <translation type="unfinished"></translation>
+ <translation>Fastgør en programgenvej direkte til panalet</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="198"/>
<source>Desktop button for launching an application</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsknap til at starte et program</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="204"/>
<source>Desktop Icons View</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsikonvisning</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="211"/>
<source>Note Pad</source>
- <translation type="unfinished"></translation>
+ <translation>Notesblok</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="212"/>
<source>Keep simple text notes on your desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Hold simple tekstnoter på dit skrivebord</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="171"/>
<location filename="../LPlugins.cpp" line="218"/>
<source>Audio Player</source>
- <translation type="unfinished"></translation>
+ <translation>Lydafspiller</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="172"/>
<location filename="../LPlugins.cpp" line="219"/>
<source>Play through lists of audio files</source>
- <translation type="unfinished"></translation>
+ <translation>Afspil gennem listen af lydfiler</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="225"/>
<source>System Monitor</source>
- <translation type="unfinished"></translation>
+ <translation>Systemovervågning</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="226"/>
<source>Keep track of system statistics such as CPU/Memory usage and CPU temperatures.</source>
- <translation type="unfinished"></translation>
+ <translation>Hold styr på systemstatisk såsom CPU/hukommelsesforbrug og CPU-temperaturer.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="232"/>
<source>RSS Reader</source>
- <translation type="unfinished"></translation>
+ <translation>RSS-læser</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="233"/>
<source>Monitor RSS Feeds (Requires internet connection)</source>
- <translation type="unfinished"></translation>
+ <translation>Overvåg RSS-feeds (kræver internetforbindelse)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="256"/>
<source>Terminal</source>
- <translation type="unfinished"></translation>
+ <translation>Terminal</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="257"/>
<source>Start the default system terminal.</source>
- <translation type="unfinished"></translation>
+ <translation>Start standardsystemterminalen.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="264"/>
<source>Browse the system with the default file manager.</source>
- <translation type="unfinished"></translation>
+ <translation>Gennemse systemet med standardfilhåndteringen.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="270"/>
<location filename="../pages/getPage.h" line="33"/>
<source>Applications</source>
- <translation type="unfinished"></translation>
+ <translation>Programmer</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="271"/>
<source>Show the system applications menu.</source>
- <translation type="unfinished"></translation>
+ <translation>Vis systemets programmenu.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="277"/>
<source>Separator</source>
- <translation type="unfinished"></translation>
+ <translation>Separator</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="278"/>
<source>Static horizontal line.</source>
- <translation type="unfinished"></translation>
+ <translation>Statisk vandret linje.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="285"/>
<source>Show the desktop settings menu.</source>
- <translation type="unfinished"></translation>
+ <translation>Vis skrivebordsindstillinger-menuen.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="298"/>
<source>Custom App</source>
- <translation type="unfinished"></translation>
+ <translation>Brugerdefineret program</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="299"/>
<source>Start a custom application</source>
- <translation type="unfinished"></translation>
+ <translation>Start et brugerdefineret program</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="178"/>
<location filename="../LPlugins.cpp" line="305"/>
<source>Menu Script</source>
- <translation type="unfinished"></translation>
+ <translation>Menu-script</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="205"/>
<source>Configurable area for automatically showing desktop icons</source>
- <translation type="unfinished"></translation>
+ <translation>Konfigurerbart område til automatisk visning af skrivebordsikoner</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="263"/>
<source>Browse Files</source>
- <translation type="unfinished"></translation>
+ <translation>Gennemse filer</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="284"/>
<source>Preferences</source>
- <translation type="unfinished"></translation>
+ <translation>Præferencer</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="292"/>
<source>List the open, minimized, active, and urgent application windows</source>
- <translation type="unfinished"></translation>
+ <translation>Vis de åbne, minimerede, aktive og vigtige programvinduer</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="179"/>
<location filename="../LPlugins.cpp" line="306"/>
<source>Run an external script to generate a user defined menu</source>
- <translation type="unfinished"></translation>
+ <translation>Kør et eksternt script til generering af en brugerdefineret menu</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="312"/>
<source>Lock Session</source>
- <translation type="unfinished"></translation>
+ <translation>Lås session</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="313"/>
<source>Lock the current desktop session</source>
- <translation type="unfinished"></translation>
+ <translation>Lås den aktuelle skrivebordssession</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="323"/>
<source>Text</source>
- <translation type="unfinished"></translation>
+ <translation>Tekst</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="324"/>
<source>Color to use for all visible text.</source>
- <translation type="unfinished"></translation>
+ <translation>Farve som skal bruges til al synlig tekst.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="329"/>
<source>Text (Disabled)</source>
- <translation type="unfinished"></translation>
+ <translation>Tekst (deaktiveret)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="330"/>
<source>Text color for disabled or inactive items.</source>
- <translation type="unfinished"></translation>
+ <translation>Tekstfarve til deaktiverede eller inaktive poster.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="335"/>
<source>Text (Highlighted)</source>
- <translation type="unfinished"></translation>
+ <translation>Tekst (fremhævet)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="336"/>
<source>Text color when selection is highlighted.</source>
- <translation type="unfinished"></translation>
+ <translation>Tekstfarve til når markering er fremhævet.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="341"/>
<source>Base Window Color</source>
- <translation type="unfinished"></translation>
+ <translation>Basis vinduesfarve</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="342"/>
<source>Main background color for the window/dialog.</source>
- <translation type="unfinished"></translation>
+ <translation>Hovedbaggrundsfarve til vinduet/dialogen.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="347"/>
<source>Base Window Color (Alternate)</source>
- <translation type="unfinished"></translation>
+ <translation>Basis vinduesfarve (alternativ)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="348"/>
<source>Main background color for widgets that list or display collections of items.</source>
- <translation type="unfinished"></translation>
+ <translation>Hovedbaggrundsfarve til widgets som lister eller viser samlinger af poster.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="353"/>
<source>Primary Color</source>
- <translation type="unfinished"></translation>
+ <translation>Primær farve</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="354"/>
<source>Dominant color for the theme.</source>
- <translation type="unfinished"></translation>
+ <translation>Dominerende farve til temaet.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="359"/>
<source>Primary Color (Disabled)</source>
- <translation type="unfinished"></translation>
+ <translation>Primær farve (deaktiveret)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="360"/>
<source>Dominant color for the theme (more subdued).</source>
- <translation type="unfinished"></translation>
+ <translation>Dominerende farve til temaet (mere afdæmpet).</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="365"/>
<source>Secondary Color</source>
- <translation type="unfinished"></translation>
+ <translation>Sekundfær farve</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="366"/>
<source>Alternate color for the theme.</source>
- <translation type="unfinished"></translation>
+ <translation>Alternativ farve til temaet.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="371"/>
<source>Secondary Color (Disabled)</source>
- <translation type="unfinished"></translation>
+ <translation>Sekundær farve (deaktiveret)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="372"/>
<source>Alternate color for the theme (more subdued).</source>
- <translation type="unfinished"></translation>
+ <translation>Alternativ farve til temaet (mere afdæmpet).</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="377"/>
<source>Accent Color</source>
- <translation type="unfinished"></translation>
+ <translation>Accentfarve</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="378"/>
<source>Color used for borders or other accents.</source>
- <translation type="unfinished"></translation>
+ <translation>Farve som bruges til kanter og andre accenter.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="383"/>
<source>Accent Color (Disabled)</source>
- <translation type="unfinished"></translation>
+ <translation>Accentfarve (deaktiveret)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="384"/>
<source>Color used for borders or other accents (more subdued).</source>
- <translation type="unfinished"></translation>
+ <translation>Farve som bruges til kanter og andre accents (mere afdæmpet).</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="389"/>
<source>Highlight Color</source>
- <translation type="unfinished"></translation>
+ <translation>Fremhævningsfarve</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="390"/>
<source>Color used for highlighting an item.</source>
- <translation type="unfinished"></translation>
+ <translation>Farve som skal bruges til fremhævning af en post.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="395"/>
<source>Highlight Color (Disabled)</source>
- <translation type="unfinished"></translation>
+ <translation>Fremhævningsfarve (deaktiveret)</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="396"/>
<source>Color used for highlighting an item (more subdued).</source>
- <translation type="unfinished"></translation>
+ <translation>Farve som skal bruges til fremhævning af post (mere afdæmpet).</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="29"/>
<source>Wallpaper Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Tapetindstillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="29"/>
<source>Change background image(s)</source>
- <translation type="unfinished"></translation>
+ <translation>Skift baggrundsbillede(r)</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="30"/>
<source>Theme Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Temaindstillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="30"/>
<source>Change interface fonts and colors</source>
- <translation type="unfinished"></translation>
+ <translation>Skift brugerfladens skifttyper og farver</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="31"/>
<source>Window Effects</source>
- <translation type="unfinished"></translation>
+ <translation>Vindueseffekter</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="31"/>
<source>Adjust transparency levels and window effects</source>
- <translation type="unfinished"></translation>
+ <translation>Juster transparensniveauer og vindueseffekter</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="32"/>
<source>Startup Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Opstartsindstillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="32"/>
<source>Automatically start applications or services</source>
- <translation type="unfinished"></translation>
+ <translation>Automatisk start af programmer eller tjenester</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="29"/>
<source>Wallpaper</source>
- <translation type="unfinished"></translation>
+ <translation>Tapet</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="30"/>
<source>Theme</source>
- <translation type="unfinished"></translation>
+ <translation>Tema</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="32"/>
<source>Autostart</source>
- <translation type="unfinished"></translation>
+ <translation>Autostart</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="33"/>
<source>Mimetype Settings</source>
- <translation type="unfinished"></translation>
+ <translation>MIME-type-indstillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="33"/>
<source>Change default applications</source>
- <translation type="unfinished"></translation>
+ <translation>Skift standardprogrammer</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="34"/>
<source>Keyboard Shortcuts</source>
- <translation type="unfinished">Tastaturgenveje</translation>
+ <translation>Tastaturgenveje</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="34"/>
<source>Change keyboard shortcuts</source>
- <translation type="unfinished"></translation>
+ <translation>Skift tastaturgenveje</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="35"/>
<source>Window Manager</source>
- <translation type="unfinished"></translation>
+ <translation>Vindueshåndtering</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="35"/>
<source>Window Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Vinduesindstillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="35"/>
<source>Change window settings and appearances</source>
- <translation type="unfinished"></translation>
+ <translation>Skift vinduesindstillinger og udseende</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="36"/>
<source>Desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebord</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="37"/>
<source>Panels</source>
- <translation type="unfinished"></translation>
+ <translation>Paneler</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="38"/>
<source>Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Menu</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="42"/>
<source>Input Device Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Inputenhedsindstillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="42"/>
<source>Adjust keyboard and mouse devices</source>
- <translation type="unfinished"></translation>
+ <translation>Juster tastatur- og museenheder</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="36"/>
<source>Desktop Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebord-plugins</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="36"/>
<source>Change what icons or tools are embedded on the desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Skift hvilke ikoner og værktøjer som er indlejret på skrivebordet</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="37"/>
<source>Panels and Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Paneler og plugins</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="37"/>
<source>Change any floating panels and what they show</source>
- <translation type="unfinished"></translation>
+ <translation>Skift flydende paneler og hvad de viser</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="38"/>
<source>Menu Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Menu-plugins</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="38"/>
<source>Change what options are shown on the desktop context menu</source>
- <translation type="unfinished"></translation>
+ <translation>Skift hvilke valgmuligheder som vises i skrivebordets genvejsmenu</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="39"/>
<source>Locale Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Lokale indstillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="39"/>
<source>Change the default locale settings for this user</source>
- <translation type="unfinished"></translation>
+ <translation>Skift standard lokale indstillinger for denne bruger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="39"/>
<source>Localization</source>
- <translation type="unfinished"></translation>
+ <translation>Lokalisering</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="40"/>
<source>General Options</source>
- <translation type="unfinished">Generelle Instillinger</translation>
+ <translation>Generelle instillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="40"/>
<source>User Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Brugerindstillinger</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="40"/>
<source>Change basic user settings such as time/date formats</source>
- <translation type="unfinished"></translation>
+ <translation>Skift grundlæggende brugerindstillinger såsom klokkeslæt-/datoformater</translation>
</message>
</context>
<context>
@@ -849,48 +849,48 @@ Skal den overskrives?</translation>
<message>
<location filename="../ScriptDialog.ui" line="14"/>
<source>Setup a JSON Menu Script</source>
- <translation type="unfinished"></translation>
+ <translation>Opsæt et JSON-menu-script</translation>
</message>
<message>
<location filename="../ScriptDialog.ui" line="25"/>
<source>Visible Name:</source>
- <translation type="unfinished"></translation>
+ <translation>Synligt navn:</translation>
</message>
<message>
<location filename="../ScriptDialog.ui" line="32"/>
<source>Executable:</source>
- <translation type="unfinished"></translation>
+ <translation>Eksekverbar:</translation>
</message>
<message>
<location filename="../ScriptDialog.ui" line="39"/>
<source>Icon:</source>
- <translation type="unfinished"></translation>
+ <translation>Ikon:</translation>
</message>
<message>
<location filename="../ScriptDialog.ui" line="54"/>
<location filename="../ScriptDialog.ui" line="87"/>
<source>...</source>
- <translation type="unfinished">...</translation>
+ <translation>...</translation>
</message>
<message>
<location filename="../ScriptDialog.ui" line="126"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Annuller</translation>
</message>
<message>
<location filename="../ScriptDialog.ui" line="133"/>
<source>Apply</source>
- <translation type="unfinished"></translation>
+ <translation>Anvend</translation>
</message>
<message>
<location filename="../ScriptDialog.cpp" line="57"/>
<source>Select a menu script</source>
- <translation type="unfinished"></translation>
+ <translation>Vælg et menu-script</translation>
</message>
<message>
<location filename="../ScriptDialog.cpp" line="64"/>
<source>Select an icon file</source>
- <translation type="unfinished"></translation>
+ <translation>Vælg en ikonfil</translation>
</message>
</context>
<context>
@@ -898,45 +898,46 @@ Skal den overskrives?</translation>
<message>
<location filename="../ThemeDialog.ui" line="14"/>
<source>Theme Editor</source>
- <translation type="unfinished"></translation>
+ <translation>Temaredigering</translation>
</message>
<message>
<location filename="../ThemeDialog.ui" line="28"/>
<source>Theme Name:</source>
- <translation type="unfinished"></translation>
+ <translation>Temanavn:</translation>
</message>
<message>
<location filename="../ThemeDialog.ui" line="51"/>
<source>color</source>
- <translation type="unfinished"></translation>
+ <translation>farve</translation>
</message>
<message>
<location filename="../ThemeDialog.ui" line="74"/>
<source>Cancel</source>
- <translation type="unfinished">Annullér</translation>
+ <translation>Annuller</translation>
</message>
<message>
<location filename="../ThemeDialog.ui" line="94"/>
<source>Save</source>
- <translation type="unfinished">Gem</translation>
+ <translation>Gem</translation>
</message>
<message>
<location filename="../ThemeDialog.ui" line="101"/>
<source>Apply</source>
- <translation type="unfinished"></translation>
+ <translation>Anvend</translation>
</message>
<message>
<location filename="../ThemeDialog.cpp" line="65"/>
<location filename="../ThemeDialog.cpp" line="82"/>
<source>Theme Exists</source>
- <translation type="unfinished"></translation>
+ <translation>Tema findes</translation>
</message>
<message>
<location filename="../ThemeDialog.cpp" line="65"/>
<location filename="../ThemeDialog.cpp" line="82"/>
<source>This theme already exists.
Overwrite it?</source>
- <translation type="unfinished"></translation>
+ <translation>Dette tema findes allerede.
+ Overskriv det?</translation>
</message>
</context>
<context>
@@ -944,54 +945,54 @@ Skal den overskrives?</translation>
<message>
<location filename="../mainWindow.ui" line="14"/>
<source>MainWindow</source>
- <translation type="unfinished"></translation>
+ <translation>Hovedvindue</translation>
</message>
<message>
<location filename="../mainWindow.ui" line="23"/>
<source>toolBar</source>
- <translation type="unfinished">Værktøjslinje</translation>
+ <translation>værktøjsbjælke</translation>
</message>
<message>
<location filename="../mainWindow.ui" line="50"/>
<source>Save</source>
- <translation type="unfinished">Gem</translation>
+ <translation>Gem</translation>
</message>
<message>
<location filename="../mainWindow.ui" line="53"/>
<source>Save current changes</source>
- <translation type="unfinished"></translation>
+ <translation>Gem aktuelle ændringer</translation>
</message>
<message>
<location filename="../mainWindow.ui" line="56"/>
<source>Ctrl+S</source>
- <translation type="unfinished">Ctrl+S</translation>
+ <translation>Ctrl+S</translation>
</message>
<message>
<location filename="../mainWindow.ui" line="61"/>
<source>Back to settings</source>
- <translation type="unfinished"></translation>
+ <translation>Tilbage til indstillinger</translation>
</message>
<message>
<location filename="../mainWindow.ui" line="64"/>
<location filename="../mainWindow.ui" line="67"/>
<source>Back to overall settings</source>
- <translation type="unfinished"></translation>
+ <translation>Tilbage til overordnet indstillinger</translation>
</message>
<message>
<location filename="../mainWindow.ui" line="78"/>
<location filename="../mainWindow.ui" line="81"/>
<source>Select monitor/desktop to configure</source>
- <translation type="unfinished"></translation>
+ <translation>Vælg skærm/skrivebord som skal konfigureres</translation>
</message>
<message>
<location filename="../mainWindow.cpp" line="129"/>
<source>Unsaved Changes</source>
- <translation type="unfinished"></translation>
+ <translation>Ugemte ændringer</translation>
</message>
<message>
<location filename="../mainWindow.cpp" line="129"/>
<source>This page currently has unsaved changes, do you wish to save them now?</source>
- <translation type="unfinished"></translation>
+ <translation>Denne side har ugemte ændringer. Vil du gemme dem nu?</translation>
</message>
</context>
<context>
@@ -999,62 +1000,62 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_autostart.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_autostart.ui" line="39"/>
<source>Add New Startup Service</source>
- <translation type="unfinished"></translation>
+ <translation>Tilføj ny opstartstjeneste</translation>
</message>
<message>
<location filename="../pages/page_autostart.ui" line="75"/>
<source>Application</source>
- <translation type="unfinished">Program</translation>
+ <translation>Program</translation>
</message>
<message>
<location filename="../pages/page_autostart.ui" line="85"/>
<source>Binary</source>
- <translation type="unfinished">Binær</translation>
+ <translation>Binær</translation>
</message>
<message>
<location filename="../pages/page_autostart.ui" line="95"/>
<source>File</source>
- <translation type="unfinished">Fil</translation>
+ <translation>Fil</translation>
</message>
<message>
<location filename="../pages/page_autostart.cpp" line="67"/>
<source>Startup Services</source>
- <translation type="unfinished"></translation>
+ <translation>Opstartstjenester</translation>
</message>
<message>
<location filename="../pages/page_autostart.cpp" line="134"/>
<source>Select Binary</source>
- <translation type="unfinished"></translation>
+ <translation>Vælg binær</translation>
</message>
<message>
<location filename="../pages/page_autostart.cpp" line="134"/>
<source>Application Binaries (*)</source>
- <translation type="unfinished"></translation>
+ <translation>Programbinærer (*)</translation>
</message>
<message>
<location filename="../pages/page_autostart.cpp" line="137"/>
<source>Invalid Binary</source>
- <translation type="unfinished"></translation>
+ <translation>Ugyldig binær</translation>
</message>
<message>
<location filename="../pages/page_autostart.cpp" line="137"/>
<source>The selected file is not executable!</source>
- <translation type="unfinished"></translation>
+ <translation>Den valgte fil er ikke eksekverbar!</translation>
</message>
<message>
<location filename="../pages/page_autostart.cpp" line="151"/>
<source>Select File</source>
- <translation type="unfinished">Vælg fil</translation>
+ <translation>Vælg fil</translation>
</message>
<message>
<location filename="../pages/page_autostart.cpp" line="151"/>
<source>All Files (*)</source>
- <translation type="unfinished">Alle filer (*)</translation>
+ <translation>Alle filer (*)</translation>
</message>
</context>
<context>
@@ -1062,22 +1063,22 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_compton.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_compton.ui" line="32"/>
<source>Disable Compositing Manager (session restart required)</source>
- <translation type="unfinished"></translation>
+ <translation>Deaktivér kompositingshåndtering (kræver genstart af session)</translation>
</message>
<message>
<location filename="../pages/page_compton.ui" line="39"/>
<source>Only use compositing with GPU acceleration </source>
- <translation type="unfinished"></translation>
+ <translation>Brug kun komposition med GPU-acceleration </translation>
</message>
<message>
<location filename="../pages/page_compton.cpp" line="38"/>
<source>Compositor Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Kompositorindstillinger</translation>
</message>
</context>
<context>
@@ -1085,83 +1086,83 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_defaultapps.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="166"/>
<source>Advanced</source>
- <translation type="unfinished"></translation>
+ <translation>Avanceret</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="189"/>
<source>Specific File Types</source>
- <translation type="unfinished">Specifikke Filtyper</translation>
+ <translation>Specifikke filtyper</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="226"/>
<source>Type/Group</source>
- <translation type="unfinished">Type/Gruppe</translation>
+ <translation>Type/gruppe</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="231"/>
<source>Default Application</source>
- <translation type="unfinished">Standardprogram</translation>
+ <translation>Standardprogram</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="236"/>
<source>Description</source>
- <translation type="unfinished">Beskrivelse</translation>
+ <translation>Beskrivelse</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="246"/>
<source>Clear</source>
- <translation type="unfinished">Ryd</translation>
+ <translation>Ryd</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="269"/>
<source>Set App</source>
- <translation type="unfinished">Sæt Prog</translation>
+ <translation>Sæt program</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="279"/>
<source>Set Binary</source>
- <translation type="unfinished"></translation>
+ <translation>Sæt binær</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="39"/>
<source>Basic Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Basisindstillinger</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="58"/>
<source>Web Browser:</source>
- <translation type="unfinished">Webbrowser:</translation>
+ <translation>Webbrowser:</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="81"/>
<source>E-Mail Client:</source>
- <translation type="unfinished">E-post Klient:</translation>
+ <translation>E-mailklient:</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="108"/>
<source>File Manager:</source>
- <translation type="unfinished">Filhåndtering:</translation>
+ <translation>Filhåndtering:</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="121"/>
<source>Virtual Terminal:</source>
- <translation type="unfinished">Virtuel Terminal:</translation>
+ <translation>Virtuel terminal:</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.ui" line="128"/>
<location filename="../pages/page_defaultapps.ui" line="138"/>
<source>...</source>
- <translation type="unfinished">...</translation>
+ <translation>...</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.cpp" line="43"/>
<source>Default Applications</source>
- <translation type="unfinished"></translation>
+ <translation>Standardprogrammer</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.cpp" line="61"/>
@@ -1170,27 +1171,27 @@ Skal den overskrives?</translation>
<location filename="../pages/page_defaultapps.cpp" line="124"/>
<location filename="../pages/page_defaultapps.cpp" line="220"/>
<source>Click to Set</source>
- <translation type="unfinished">Klik for at vælge</translation>
+ <translation>Klik for at sætte</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.cpp" line="158"/>
<source>%1 (%2)</source>
- <translation type="unfinished">%1 (%2)</translation>
+ <translation>%1 (%2)</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.cpp" line="330"/>
<source>Select Binary</source>
- <translation type="unfinished"></translation>
+ <translation>Vælg binær</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.cpp" line="337"/>
<source>Invalid Binary</source>
- <translation type="unfinished"></translation>
+ <translation>Ugyldig binær</translation>
</message>
<message>
<location filename="../pages/page_defaultapps.cpp" line="337"/>
<source>The selected binary is not executable!</source>
- <translation type="unfinished"></translation>
+ <translation>Den valgte binær er ikke eksekverbar!</translation>
</message>
</context>
<context>
@@ -1198,99 +1199,101 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="14"/>
<source>page_fluxbox_keys</source>
- <translation type="unfinished"></translation>
+ <translation>page_fluxbox_keys</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="34"/>
<source>Basic Editor</source>
- <translation type="unfinished"></translation>
+ <translation>Basisredigering</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="44"/>
<source>Advanced Editor</source>
- <translation type="unfinished"></translation>
+ <translation>Avanceret redigering</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="107"/>
<source>Action</source>
- <translation type="unfinished">Handling</translation>
+ <translation>Handling</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="112"/>
<source>Keyboard Shortcut</source>
- <translation type="unfinished">Tastaturgenvej</translation>
+ <translation>Tastaturgenvej</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="120"/>
<source>Modify Shortcut</source>
- <translation type="unfinished">Redigér genvej</translation>
+ <translation>Rediger genvej</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="141"/>
<source>Clear Shortcut</source>
- <translation type="unfinished">Fjern genvej</translation>
+ <translation>Ryd genvej</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="151"/>
<source>Apply Change</source>
- <translation type="unfinished">Udfør ændring</translation>
+ <translation>Anvend ændring</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="161"/>
<source>Change Key Binding:</source>
- <translation type="unfinished">Skift taste binding:</translation>
+ <translation>Skift tastebinding:</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="184"/>
<source>Note: Current key bindings need to be cleared and saved before they can be re-used.</source>
- <translation type="unfinished">Besked: Eksisterende taste genvej skal fjernes og gemmes før de kan blive genbrugt.</translation>
+ <translation>Bemærk: Eksisterende tastegenveje skal ryddes og gemmes inden de kan genbruges.</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="220"/>
<source>View Syntax Codes</source>
- <translation type="unfinished"></translation>
+ <translation>Vis syntakskoder</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="244"/>
- <source>&quot;Mod1&quot;: Alt key
-&quot;Mod4&quot;: Windows/Mac key
-&quot;Control&quot;: Ctrl key</source>
- <translation type="unfinished"></translation>
+ <source>"Mod1": Alt key
+"Mod4": Windows/Mac key
+"Control": Ctrl key</source>
+ <translation>"Mod1": Alt-tast
+"Mod4": Windows-/Mac-tast
+"Control": Ctrl-tast</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="71"/>
<source>Keyboard Shortcuts</source>
- <translation type="unfinished">Tastaturgenveje</translation>
+ <translation>Tastaturgenveje</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="79"/>
<source>Audio Volume Up</source>
- <translation type="unfinished"></translation>
+ <translation>Lydstyrke op</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="80"/>
<source>Audio Volume Down</source>
- <translation type="unfinished">Lydstyrke Ned</translation>
+ <translation>Lydstyrke ned</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="81"/>
<source>Screen Brightness Up</source>
- <translation type="unfinished">Skærmlysstyrke Op</translation>
+ <translation>Skærmlysstyrke op</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="82"/>
<source>Screen Brightness Down</source>
- <translation type="unfinished">Skærmlysstyrke Ned</translation>
+ <translation>Skærmlysstyrke ned</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="83"/>
<source>Take Screenshot</source>
- <translation type="unfinished">Tag skærmbillede</translation>
+ <translation>Tag skærmbillede</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="84"/>
<source>Lock Screen</source>
- <translation type="unfinished"></translation>
+ <translation>Lås session</translation>
</message>
</context>
<context>
@@ -1298,88 +1301,88 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="34"/>
<source>Simple Editor</source>
- <translation type="unfinished"></translation>
+ <translation>Enkel redigering</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="44"/>
<source>Advanced Editor</source>
- <translation type="unfinished"></translation>
+ <translation>Avanceret redigering</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="81"/>
<source>Number of Workspaces</source>
- <translation type="unfinished">Antal af arbejdsområder</translation>
+ <translation>Antal arbejdsområder</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="98"/>
<source>New Window Placement</source>
- <translation type="unfinished">Ny vinduesplacering</translation>
+ <translation>Ny vinduesplacering</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="108"/>
<source>Focus Policy</source>
- <translation type="unfinished">Fokuspolitik</translation>
+ <translation>Fokuspolitik</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="118"/>
<source>Window Theme</source>
- <translation type="unfinished">Vinduestema</translation>
+ <translation>Vinduestema</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="136"/>
<source>Window Theme Preview</source>
- <translation type="unfinished">Vinduestema forhåndsvisning</translation>
+ <translation>Forhåndsvisning af vinduestema</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.ui" line="190"/>
<location filename="../pages/page_fluxbox_settings.cpp" line="182"/>
<source>No Preview Available</source>
- <translation type="unfinished">Ingen forhåndsvisning tilgængelig</translation>
+ <translation>Ingen forhåndsvisning tilgængelig</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.cpp" line="71"/>
<source>Window Manager Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Vindueshåndteringsindstillinger</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.cpp" line="76"/>
<source>Click To Focus</source>
- <translation type="unfinished">Klik for fokus</translation>
+ <translation>Klik for at fokusere</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.cpp" line="77"/>
<source>Active Mouse Focus</source>
- <translation type="unfinished">Aktiv mus fokus</translation>
+ <translation>Aktiv musefokus</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.cpp" line="78"/>
<source>Strict Mouse Focus</source>
- <translation type="unfinished">Streng mus fokus</translation>
+ <translation>Streng musefokus</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.cpp" line="81"/>
<source>Align in a Row</source>
- <translation type="unfinished">Tilpas i en række</translation>
+ <translation>Sæt på række</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.cpp" line="82"/>
<source>Align in a Column</source>
- <translation type="unfinished">Tilpas i en kolonne</translation>
+ <translation>Sæt på kolonne</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.cpp" line="83"/>
<source>Cascade</source>
- <translation type="unfinished">Kaskade</translation>
+ <translation>Kaskade</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_settings.cpp" line="84"/>
<source>Underneath Mouse</source>
- <translation type="unfinished">Under mus</translation>
+ <translation>Under mus</translation>
</message>
</context>
<context>
@@ -1387,22 +1390,22 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_interface_desktop.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_interface_desktop.ui" line="26"/>
<source>Embedded Utilities</source>
- <translation type="unfinished"></translation>
+ <translation>Indlejrede redskaber</translation>
</message>
<message>
<location filename="../pages/page_interface_desktop.ui" line="77"/>
<source>Display Desktop Folder Contents</source>
- <translation type="unfinished"></translation>
+ <translation>Vis skrivebordsmappens indhold</translation>
</message>
<message>
<location filename="../pages/page_interface_desktop.cpp" line="55"/>
<source>Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsindstillinger</translation>
</message>
</context>
<context>
@@ -1410,17 +1413,17 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_interface_menu.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_interface_menu.ui" line="38"/>
<source>Context Menu Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Genvejsmenu-plugins</translation>
</message>
<message>
<location filename="../pages/page_interface_menu.cpp" line="47"/>
<source>Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsindstillinger</translation>
</message>
</context>
<context>
@@ -1428,22 +1431,22 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_interface_panels.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.ui" line="69"/>
<source>Profile</source>
- <translation type="unfinished"></translation>
+ <translation>Profil</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.ui" line="82"/>
<source>Import</source>
- <translation type="unfinished"></translation>
+ <translation>Importér</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.cpp" line="52"/>
<source>Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsindstillinger</translation>
</message>
</context>
<context>
@@ -1451,37 +1454,37 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_main.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_main.ui" line="32"/>
<source>Search for....</source>
- <translation type="unfinished"></translation>
+ <translation>Søg efter....</translation>
</message>
<message>
<location filename="../pages/page_main.cpp" line="53"/>
<source>Interface Configuration</source>
- <translation type="unfinished">Indstilling af grænseflade</translation>
+ <translation>Brugerfladekonfiguration</translation>
</message>
<message>
<location filename="../pages/page_main.cpp" line="57"/>
<source>Appearance</source>
- <translation type="unfinished">Udseende</translation>
+ <translation>Udseende</translation>
</message>
<message>
<location filename="../pages/page_main.cpp" line="61"/>
<source>Desktop Defaults</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsstandarder</translation>
</message>
<message>
<location filename="../pages/page_main.cpp" line="65"/>
<source>User Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Brugerindstillinger</translation>
</message>
<message>
<location filename="../pages/page_main.cpp" line="131"/>
<source>Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsindstillinger</translation>
</message>
</context>
<context>
@@ -1489,32 +1492,32 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_mouse.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="53"/>
<source>Input Device Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Inputenhedsindstillinger</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="81"/>
<source>Mouse #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Mus nummer %1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="85"/>
<source>Keyboard #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Tastatur nummer %1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="106"/>
<source>Extension Device #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Udvidelsesenhed nummer %1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="107"/>
<source>Master Device</source>
- <translation type="unfinished"></translation>
+ <translation>Master-enhed</translation>
</message>
</context>
<context>
@@ -1522,57 +1525,57 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_session_locale.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_session_locale.ui" line="32"/>
<source>System localization settings (restart required)</source>
- <translation type="unfinished"></translation>
+ <translation>System lokaliseringsindstillinger (kræver genstart)</translation>
</message>
<message>
<location filename="../pages/page_session_locale.ui" line="39"/>
<source>Language</source>
- <translation type="unfinished">Sprog</translation>
+ <translation>Sprog</translation>
</message>
<message>
<location filename="../pages/page_session_locale.ui" line="49"/>
<source>Messages</source>
- <translation type="unfinished">Beskeder</translation>
+ <translation>Meddelelser</translation>
</message>
<message>
<location filename="../pages/page_session_locale.ui" line="59"/>
<source>Time</source>
- <translation type="unfinished">Tid</translation>
+ <translation>Klokkeslæt</translation>
</message>
<message>
<location filename="../pages/page_session_locale.ui" line="69"/>
<source>Numeric</source>
- <translation type="unfinished">Numerisk</translation>
+ <translation>Numerisk</translation>
</message>
<message>
<location filename="../pages/page_session_locale.ui" line="79"/>
<source>Monetary</source>
- <translation type="unfinished">Monetære</translation>
+ <translation>Monetære</translation>
</message>
<message>
<location filename="../pages/page_session_locale.ui" line="89"/>
<source>Collate</source>
- <translation type="unfinished">Saml</translation>
+ <translation>Saml</translation>
</message>
<message>
<location filename="../pages/page_session_locale.ui" line="99"/>
<source>CType</source>
- <translation type="unfinished"></translation>
+ <translation>CType</translation>
</message>
<message>
<location filename="../pages/page_session_locale.cpp" line="48"/>
<source>Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsindstillinger</translation>
</message>
<message>
<location filename="../pages/page_session_locale.cpp" line="92"/>
<source>System Default</source>
- <translation type="unfinished"></translation>
+ <translation>Systemstandard</translation>
</message>
</context>
<context>
@@ -1580,244 +1583,244 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_session_options.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="34"/>
<source>Enable numlock on startup</source>
- <translation type="unfinished">Aktivér numlock under opstart</translation>
+ <translation>Aktivér numlock under opstart</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="41"/>
<source>Play chimes on startup</source>
- <translation type="unfinished">Afspil lyde under opstart</translation>
+ <translation>Afspil lyde under opstart</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="48"/>
<source>Play chimes on exit</source>
- <translation type="unfinished">Afspil lyde under afslutning</translation>
+ <translation>Afspil lyde under afslutning</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="55"/>
<source>Automatically create/remove desktop symlinks for applications that are installed/removed</source>
- <translation type="unfinished"></translation>
+ <translation>Opret/fjern automatisk skrivebords-symlinks til installerede/fjernede programmer</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="58"/>
<source>Manage desktop app links</source>
- <translation type="unfinished"></translation>
+ <translation>Håndtér skrivebordsprogramlinks</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="65"/>
<source>Show application crash data</source>
- <translation type="unfinished"></translation>
+ <translation>Vis programnebrudsdata</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="74"/>
<source>Change User Icon</source>
- <translation type="unfinished">Skift Bruger Ikon</translation>
+ <translation>Skift brugerikon</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="112"/>
<source>Time Format:</source>
- <translation type="unfinished">Tidsformat:</translation>
+ <translation>Klokkeslætformat:</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="124"/>
<location filename="../pages/page_session_options.ui" line="168"/>
<source>View format codes</source>
- <translation type="unfinished">Vis format koder</translation>
+ <translation>Vis formatkoder</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="139"/>
<location filename="../pages/page_session_options.ui" line="183"/>
<source>Sample:</source>
- <translation type="unfinished">Prøve:</translation>
+ <translation>Prøve:</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="156"/>
<source>Date Format:</source>
- <translation type="unfinished">Datoformat:</translation>
+ <translation>Datoformat:</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="203"/>
<source>Display Format</source>
- <translation type="unfinished"></translation>
+ <translation>Vis format</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="234"/>
<source>Reset Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Nulstil skrivebordsindstillinger</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="253"/>
<source>Return to system defaults</source>
- <translation type="unfinished"></translation>
+ <translation>Vend tilbage til systemstandarder</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="260"/>
<source>Return to Lumina defaults</source>
- <translation type="unfinished"></translation>
+ <translation>Vend tilbage til Luminas standarder</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="19"/>
<source>Time (Date as tooltip)</source>
- <translation type="unfinished">Tid (Dato som værktøjstip)</translation>
+ <translation>Klokkeslæt (dato som værktøjstip)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="20"/>
<source>Date (Time as tooltip)</source>
- <translation type="unfinished"></translation>
+ <translation>Dato (klokkeslæt som værktøjstip)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="21"/>
<source>Time first then Date</source>
- <translation type="unfinished"></translation>
+ <translation>Først klokkeslæt, så dato</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="22"/>
<source>Date first then Time</source>
- <translation type="unfinished"></translation>
+ <translation>Først dato, så klokkeslæt</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="70"/>
<source>Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordsindstillinger</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="113"/>
<source>Select an image</source>
- <translation type="unfinished">Vælg et billede</translation>
+ <translation>Vælg et billede</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="114"/>
<source>Images</source>
- <translation type="unfinished">Billeder</translation>
+ <translation>Billeder</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="118"/>
<source>Reset User Image</source>
- <translation type="unfinished">Nulstil Bruger billede</translation>
+ <translation>Nulstil brugerbillede</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="118"/>
<source>Would you like to reset the user image to the system default?</source>
- <translation type="unfinished">Vil du gerne nulstille bruger billedet til system standard?</translation>
+ <translation>Vil du nulstille brugerbilledet til systemstandarden?</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="157"/>
<source>Valid Time Codes:</source>
- <translation type="unfinished">Gyldig tids koder:</translation>
+ <translation>Gyldige klokkeslætkoder:</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="158"/>
<source>%1: Hour without leading zero (1)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Klokkeslæt uden foranstillet nul (1)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="159"/>
<source>%1: Hour with leading zero (01)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Klokkeslæt med foranstillet nul (01)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="160"/>
<source>%1: Minutes without leading zero (2)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Minutter uden foranstillet nul (2)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="161"/>
<source>%1: Minutes with leading zero (02)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Minutter med foranstillet nul (02)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="162"/>
<source>%1: Seconds without leading zero (3)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Sekunder uden foranstillet nul (3)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="163"/>
<source>%1: Seconds with leading zero (03)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Sekunder med foranstillet nul (03)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="164"/>
<source>%1: AM/PM (12-hour) clock (upper or lower case)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: AM/PM (12-timer) ur (store og små bogstaver)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="165"/>
<source>%1: Timezone</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Tidszone</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="166"/>
<source>Time Codes</source>
- <translation type="unfinished"></translation>
+ <translation>Klokkeslætkoder</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="180"/>
<source>Valid Date Codes:</source>
- <translation type="unfinished"></translation>
+ <translation>Gyldig datokodeks:</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="181"/>
<source>%1: Numeric day without a leading zero (1)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Numerisk dag uden foranstillede nul (1)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="182"/>
<source>%1: Numeric day with leading zero (01)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Numerisk dag med foranstillede nul (01)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="183"/>
<source>%1: Day as abbreviation (localized)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Dag som forkortelse (lokaliseret)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="184"/>
<source>%1: Day as full name (localized)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Dag som fuldt navn (lokaliseret)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="185"/>
<source>%1: Numeric month without leading zero (2)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Numerisk måned uden foranstillet nul (2)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="186"/>
<source>%1: Numeric month with leading zero (02)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Numerisk måned med foranstillet nul (02)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="187"/>
<source>%1: Month as abbreviation (localized)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Måned som forkortelse (lokaliseret)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="188"/>
<source>%1: Month as full name (localized)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: Måned som fuldt navn (lokaliseret)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="189"/>
<source>%1: Year as 2-digit number (15)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: År som 2-tegnstal (17)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="190"/>
<source>%1: Year as 4-digit number (2015)</source>
- <translation type="unfinished"></translation>
+ <translation>%1: År som 4-tegnstal (2017)</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="191"/>
<source>Text may be contained within single-quotes to ignore replacements</source>
- <translation type="unfinished"></translation>
+ <translation>Tekst må være inden i enkelte anførselstegn for at ignorer erstatninger</translation>
</message>
<message>
<location filename="../pages/page_session_options.cpp" line="192"/>
<source>Date Codes</source>
- <translation type="unfinished"></translation>
+ <translation>Datokoder</translation>
</message>
</context>
<context>
@@ -1825,78 +1828,78 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_theme.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="36"/>
<source>Desktop Theme</source>
- <translation type="unfinished"></translation>
+ <translation>Skrivebordstema</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="42"/>
<source>Font:</source>
- <translation type="unfinished">Skrifttype:</translation>
+ <translation>Skrifttype:</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="56"/>
<source>Font Size:</source>
- <translation type="unfinished">Skriftstørrelse:</translation>
+ <translation>Skriftstørrelse:</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="63"/>
<source> point</source>
- <translation type="unfinished"> point</translation>
+ <translation> punkt</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="70"/>
<source>Theme Template:</source>
- <translation type="unfinished">Temaskabelon:</translation>
+ <translation>Temaskabelon:</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="86"/>
<source>Create/Edit a theme template (Advanced)</source>
- <translation type="unfinished">Opret/Rediger en tema skabelon (Avanceret)</translation>
+ <translation>Opret/rediger en temaskabelon (avanceret)</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="92"/>
<location filename="../pages/page_theme.ui" line="126"/>
<source>Edit</source>
- <translation type="unfinished">Redigér</translation>
+ <translation>Rediger</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="104"/>
<source>Color Scheme:</source>
- <translation type="unfinished">Farveskema:</translation>
+ <translation>Farveskema:</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="120"/>
<source>Create/Edit a color scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Opret/rediger et farveskema</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="138"/>
<source>Icon Pack:</source>
- <translation type="unfinished"></translation>
+ <translation>Ikonpakke:</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="148"/>
<source>Mouse Cursors:</source>
- <translation type="unfinished"></translation>
+ <translation>Musemarkører:</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="192"/>
<source>Application Themes</source>
- <translation type="unfinished"></translation>
+ <translation>Programtemaer</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="198"/>
<source>Qt5 Theme Engine</source>
- <translation type="unfinished"></translation>
+ <translation>Qt5-temamotor</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="58"/>
<source>Theme Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Temaindstillinger</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="73"/>
@@ -1904,7 +1907,7 @@ Skal den overskrives?</translation>
<location filename="../pages/page_theme.cpp" line="173"/>
<location filename="../pages/page_theme.cpp" line="199"/>
<source>Local</source>
- <translation type="unfinished"></translation>
+ <translation>Lokal</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="80"/>
@@ -1912,17 +1915,17 @@ Skal den overskrives?</translation>
<location filename="../pages/page_theme.cpp" line="180"/>
<location filename="../pages/page_theme.cpp" line="206"/>
<source>System</source>
- <translation type="unfinished"></translation>
+ <translation>System</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="137"/>
<source>None</source>
- <translation type="unfinished"></translation>
+ <translation>Ingen</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="138"/>
<source>Manual Setting</source>
- <translation type="unfinished"></translation>
+ <translation>Manuel indstilling</translation>
</message>
</context>
<context>
@@ -1930,150 +1933,150 @@ Skal den overskrives?</translation>
<message>
<location filename="../pages/page_wallpaper.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Form</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.ui" line="90"/>
<source>Single Background</source>
- <translation type="unfinished">Enlig Baggrund</translation>
+ <translation>Enkel baggrund</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.ui" line="100"/>
<source>Rotate Background</source>
- <translation type="unfinished">Rotér Baggrund</translation>
+ <translation>Roter baggrund</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.ui" line="107"/>
<source> Minutes</source>
- <translation type="unfinished"> Minutter</translation>
+ <translation> Minutter</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.ui" line="110"/>
<source>Every </source>
- <translation type="unfinished">Hver </translation>
+ <translation>Hver </translation>
</message>
<message>
<location filename="../pages/page_wallpaper.ui" line="133"/>
<source>Layout:</source>
- <translation type="unfinished">Layout:</translation>
+ <translation>Layout:</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="56"/>
<source>Wallpaper Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Tapetindstillinger</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="66"/>
<source>System Default</source>
- <translation type="unfinished"></translation>
+ <translation>Systemstandard</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="67"/>
<location filename="../pages/page_wallpaper.cpp" line="222"/>
<source>Solid Color: %1</source>
- <translation type="unfinished">Ensfarvet farve: %1</translation>
+ <translation>Ensfarvet farve: %1</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="78"/>
<source>Screen Resolution:</source>
- <translation type="unfinished"></translation>
+ <translation>Skræmopløsning:</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="100"/>
<location filename="../pages/page_wallpaper.cpp" line="101"/>
<source>Select Color</source>
- <translation type="unfinished">Vælg farve</translation>
+ <translation>Vælg farve</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="120"/>
<source>File(s)</source>
- <translation type="unfinished">Fil(er)</translation>
+ <translation>Fil(er)</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="121"/>
<source>Directory (Single)</source>
- <translation type="unfinished">Mappe (Enkelt)</translation>
+ <translation>Mappe (enkel)</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="122"/>
<source>Directory (Recursive)</source>
- <translation type="unfinished"></translation>
+ <translation>Mappe (rekursiv)</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="123"/>
<source>Solid Color</source>
- <translation type="unfinished"></translation>
+ <translation>Solid farve</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="127"/>
<source>Automatic</source>
- <translation type="unfinished">Automatisk</translation>
+ <translation>Automatisk</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="128"/>
<source>Fullscreen</source>
- <translation type="unfinished"></translation>
+ <translation>Fuldskærm</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="129"/>
<source>Fit screen</source>
- <translation type="unfinished"></translation>
+ <translation>Tilpas skærm</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="130"/>
<source>Tile</source>
- <translation type="unfinished">Flise</translation>
+ <translation>Fliselæg</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="131"/>
<source>Center</source>
- <translation type="unfinished">Centrér</translation>
+ <translation>I midten</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="132"/>
<source>Top Left</source>
- <translation type="unfinished">Øverst til venstre</translation>
+ <translation>Øverst til venstre</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="133"/>
<source>Top Right</source>
- <translation type="unfinished">Øverst til højre</translation>
+ <translation>Øverst til højre</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="134"/>
<source>Bottom Left</source>
- <translation type="unfinished">Nederst til venstre</translation>
+ <translation>Nederst til venstre</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="135"/>
<source>Bottom Right</source>
- <translation type="unfinished">Nederst til højre</translation>
+ <translation>Nederst til højre</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="143"/>
<source>No Background</source>
- <translation type="unfinished"></translation>
+ <translation>Ingen baggrund</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="143"/>
<source>(use system default)</source>
- <translation type="unfinished"></translation>
+ <translation>(brug systemstandard)</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="163"/>
<source>File does not exist</source>
- <translation type="unfinished"></translation>
+ <translation>Fil findes ikke</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="203"/>
<source>Find Background Image(s)</source>
- <translation type="unfinished"></translation>
+ <translation>Find baggrundsbillede(r)</translation>
</message>
<message>
<location filename="../pages/page_wallpaper.cpp" line="234"/>
<location filename="../pages/page_wallpaper.cpp" line="259"/>
<source>Find Background Image Directory</source>
- <translation type="unfinished"></translation>
+ <translation>Find baggrudsbilledmappe</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_de.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_de.ts
index 7109453a..9d145f55 100644
--- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_de.ts
+++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_de.ts
@@ -340,7 +340,7 @@
</message>
<message>
<location filename="../LPlugins.cpp" line="67"/>
- <source>Start menu alternative focusing on the user&apos;s files, directories, and favorites.</source>
+ <source>Start menu alternative focusing on the user's files, directories, and favorites.</source>
<translation>Startmenüalternative, die Benutzerdateien, Verzeichnisse und Lesezeichen fokussiert.</translation>
</message>
<message>
@@ -531,12 +531,12 @@
<message>
<location filename="../LPlugins.cpp" line="312"/>
<source>Lock Session</source>
- <translation type="unfinished"></translation>
+ <translation>Sitzung sperren</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="313"/>
<source>Lock the current desktop session</source>
- <translation type="unfinished"></translation>
+ <translation>Aktuelle Arbeitsflächen-Sitzung sperren</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="323"/>
@@ -711,17 +711,17 @@
<message>
<location filename="../pages/getPage.h" line="29"/>
<source>Wallpaper</source>
- <translation type="unfinished"></translation>
+ <translation>Hintergrundbild</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="30"/>
<source>Theme</source>
- <translation type="unfinished"></translation>
+ <translation>Thema</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="32"/>
<source>Autostart</source>
- <translation type="unfinished"></translation>
+ <translation>Autostart</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="33"/>
@@ -761,27 +761,27 @@
<message>
<location filename="../pages/getPage.h" line="36"/>
<source>Desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Arbeitsfläche</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="37"/>
<source>Panels</source>
- <translation type="unfinished"></translation>
+ <translation>Leisten</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="38"/>
<source>Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Menü</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="42"/>
<source>Input Device Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Eingabegeräteeinstellungen</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="42"/>
<source>Adjust keyboard and mouse devices</source>
- <translation type="unfinished"></translation>
+ <translation>Tastatur und Mausgeräte anpassen</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="36"/>
@@ -826,7 +826,7 @@
<message>
<location filename="../pages/getPage.h" line="39"/>
<source>Localization</source>
- <translation type="unfinished"></translation>
+ <translation>Lokalisierung</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="40"/>
@@ -1073,7 +1073,7 @@
<message>
<location filename="../pages/page_compton.ui" line="39"/>
<source>Only use compositing with GPU acceleration </source>
- <translation type="unfinished"></translation>
+ <translation>Compositing nur mit GPU-Beschleunigung verwenden </translation>
</message>
<message>
<location filename="../pages/page_compton.cpp" line="38"/>
@@ -1253,12 +1253,12 @@
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="244"/>
- <source>&quot;Mod1&quot;: Alt key
-&quot;Mod4&quot;: Windows/Mac key
-&quot;Control&quot;: Ctrl key</source>
- <translation>&quot;Mod1&quot;: Alt-Taste
-&quot;Mod4&quot;: Windows/Mac-Taste
-&quot;Steuerung&quot;: Strg-Taste</translation>
+ <source>"Mod1": Alt key
+"Mod4": Windows/Mac key
+"Control": Ctrl key</source>
+ <translation>"Mod1": Alt-Taste
+"Mod4": Windows/Mac-Taste
+"Steuerung": Strg-Taste</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="71"/>
@@ -1436,12 +1436,12 @@
<message>
<location filename="../pages/page_interface_panels.ui" line="69"/>
<source>Profile</source>
- <translation type="unfinished"></translation>
+ <translation>Profil</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.ui" line="82"/>
<source>Import</source>
- <translation type="unfinished"></translation>
+ <translation>Import</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.cpp" line="52"/>
@@ -1474,7 +1474,7 @@
<message>
<location filename="../pages/page_main.cpp" line="61"/>
<source>Desktop Defaults</source>
- <translation type="unfinished"></translation>
+ <translation>Arbeitsflächen-Standardeinstellungen</translation>
</message>
<message>
<location filename="../pages/page_main.cpp" line="65"/>
@@ -1497,27 +1497,27 @@
<message>
<location filename="../pages/page_mouse.cpp" line="53"/>
<source>Input Device Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Eingabegeräteeinstellungen</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="81"/>
<source>Mouse #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Maus #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="85"/>
<source>Keyboard #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Tastatur #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="106"/>
<source>Extension Device #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Erweiterungsgerät #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="107"/>
<source>Master Device</source>
- <translation type="unfinished"></translation>
+ <translation>Hauptgerät</translation>
</message>
</context>
<context>
@@ -1613,7 +1613,7 @@
<message>
<location filename="../pages/page_session_options.ui" line="65"/>
<source>Show application crash data</source>
- <translation type="unfinished"></translation>
+ <translation>Anwendungsabsturzdaten anzeigen</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="74"/>
@@ -1833,7 +1833,7 @@
<message>
<location filename="../pages/page_theme.ui" line="36"/>
<source>Desktop Theme</source>
- <translation type="unfinished"></translation>
+ <translation>Arbeitsflächenthema</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="42"/>
@@ -1889,7 +1889,7 @@
<message>
<location filename="../pages/page_theme.ui" line="192"/>
<source>Application Themes</source>
- <translation type="unfinished"></translation>
+ <translation>Anwendungsthemen</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="198"/>
@@ -1920,12 +1920,12 @@
<message>
<location filename="../pages/page_theme.cpp" line="137"/>
<source>None</source>
- <translation type="unfinished"></translation>
+ <translation>Keine</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="138"/>
<source>Manual Setting</source>
- <translation type="unfinished"></translation>
+ <translation>Manuelle Einstellung</translation>
</message>
</context>
<context>
diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_lt.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_lt.ts
index ddee957a..6e2c7388 100644
--- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_lt.ts
+++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_lt.ts
@@ -776,12 +776,12 @@
<message>
<location filename="../pages/getPage.h" line="42"/>
<source>Input Device Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Įvesties įrenginio nustatymai</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="42"/>
<source>Adjust keyboard and mouse devices</source>
- <translation type="unfinished"></translation>
+ <translation>Derinti klaviatūros ir pelės įrenginius</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="36"/>
@@ -826,7 +826,7 @@
<message>
<location filename="../pages/getPage.h" line="39"/>
<source>Localization</source>
- <translation type="unfinished"></translation>
+ <translation>Lokalizavimas</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="40"/>
@@ -1073,7 +1073,7 @@
<message>
<location filename="../pages/page_compton.ui" line="39"/>
<source>Only use compositing with GPU acceleration </source>
- <translation type="unfinished"></translation>
+ <translation>Naudoti komponavimą tik su vaizdo plokštės (GPU) spartinimu </translation>
</message>
<message>
<location filename="../pages/page_compton.cpp" line="38"/>
@@ -1436,12 +1436,12 @@
<message>
<location filename="../pages/page_interface_panels.ui" line="69"/>
<source>Profile</source>
- <translation type="unfinished"></translation>
+ <translation>Profilis</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.ui" line="82"/>
<source>Import</source>
- <translation type="unfinished"></translation>
+ <translation>Importuoti</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.cpp" line="52"/>
@@ -1474,7 +1474,7 @@
<message>
<location filename="../pages/page_main.cpp" line="61"/>
<source>Desktop Defaults</source>
- <translation type="unfinished"></translation>
+ <translation>Darbalaukio numatytosios reikšmės</translation>
</message>
<message>
<location filename="../pages/page_main.cpp" line="65"/>
@@ -1492,32 +1492,32 @@
<message>
<location filename="../pages/page_mouse.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Forma</translation>
+ <translation>Forma</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="53"/>
<source>Input Device Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Įvesties įrenginio nustatymai</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="81"/>
<source>Mouse #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Pelė #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="85"/>
<source>Keyboard #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Klaviatūra #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="106"/>
<source>Extension Device #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Plėtinio įrenginys #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="107"/>
<source>Master Device</source>
- <translation type="unfinished"></translation>
+ <translation>Pagrindinis įrenginys</translation>
</message>
</context>
<context>
@@ -1613,7 +1613,7 @@
<message>
<location filename="../pages/page_session_options.ui" line="65"/>
<source>Show application crash data</source>
- <translation type="unfinished"></translation>
+ <translation>Rodyti programų trikčių duomenis</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="74"/>
@@ -1833,7 +1833,7 @@
<message>
<location filename="../pages/page_theme.ui" line="36"/>
<source>Desktop Theme</source>
- <translation type="unfinished"></translation>
+ <translation>Darbalaukio tema</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="42"/>
@@ -1889,12 +1889,12 @@
<message>
<location filename="../pages/page_theme.ui" line="192"/>
<source>Application Themes</source>
- <translation type="unfinished"></translation>
+ <translation>Programų tema</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="198"/>
<source>Qt5 Theme Engine</source>
- <translation type="unfinished"></translation>
+ <translation>Qt5 temų modulis</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="58"/>
@@ -1920,12 +1920,12 @@
<message>
<location filename="../pages/page_theme.cpp" line="137"/>
<source>None</source>
- <translation type="unfinished"></translation>
+ <translation>Joks</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="138"/>
<source>Manual Setting</source>
- <translation type="unfinished"></translation>
+ <translation>Rankinis nustatymas</translation>
</message>
</context>
<context>
diff --git a/src-qt5/core-utils/lumina-config/i18n/lumina-config_pl.ts b/src-qt5/core-utils/lumina-config/i18n/lumina-config_pl.ts
index c52873a3..25fb461c 100644
--- a/src-qt5/core-utils/lumina-config/i18n/lumina-config_pl.ts
+++ b/src-qt5/core-utils/lumina-config/i18n/lumina-config_pl.ts
@@ -340,8 +340,8 @@
</message>
<message>
<location filename="../LPlugins.cpp" line="67"/>
- <source>Start menu alternative focusing on the user&apos;s files, directories, and favorites.</source>
- <translation type="unfinished"></translation>
+ <source>Start menu alternative focusing on the user's files, directories, and favorites.</source>
+ <translation>Alternatywny wygląd menu start, pokazujący pliki użytkownika, jego katalogi i ulubione elementy.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="73"/>
@@ -351,7 +351,7 @@
<message>
<location filename="../LPlugins.cpp" line="74"/>
<source>Start menu alternative which focuses on launching applications.</source>
- <translation type="unfinished"></translation>
+ <translation>Alternatywny wygląd menu start, ułatwiający szybkie uruchamianie aplikacji.</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="94"/>
@@ -371,12 +371,12 @@
<message>
<location filename="../LPlugins.cpp" line="130"/>
<source>View and control any running application windows (group similar windows under a single button).</source>
- <translation type="unfinished"></translation>
+ <translation>Pogląd i kontrola każdego okna uruchomionej aplikacji (grupowanie tych samych aplikacji).</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="137"/>
<source>View and control any running application windows (every individual window has a button)</source>
- <translation type="unfinished"></translation>
+ <translation>Pogląd i kontrola każdego okna uruchomionej aplikacji (nie grupuj aplikacji).</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="150"/>
@@ -500,12 +500,12 @@
<location filename="../LPlugins.cpp" line="178"/>
<location filename="../LPlugins.cpp" line="305"/>
<source>Menu Script</source>
- <translation type="unfinished"></translation>
+ <translation>Menu Skrypt</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="205"/>
<source>Configurable area for automatically showing desktop icons</source>
- <translation type="unfinished"></translation>
+ <translation>Konfigurowalny obszar do automatycznego pokazywania ikon pulpitu</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="263"/>
@@ -520,23 +520,23 @@
<message>
<location filename="../LPlugins.cpp" line="292"/>
<source>List the open, minimized, active, and urgent application windows</source>
- <translation type="unfinished"></translation>
+ <translation>Lista otwartych, zminimalizowanych i aktywnych okien aplikacji</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="179"/>
<location filename="../LPlugins.cpp" line="306"/>
<source>Run an external script to generate a user defined menu</source>
- <translation type="unfinished"></translation>
+ <translation>Uruchom skrypt do generowania menu</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="312"/>
<source>Lock Session</source>
- <translation type="unfinished"></translation>
+ <translation>Zablokuj sesję</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="313"/>
<source>Lock the current desktop session</source>
- <translation type="unfinished"></translation>
+ <translation>Zablokuj sesję pulpitu</translation>
</message>
<message>
<location filename="../LPlugins.cpp" line="323"/>
@@ -711,17 +711,17 @@
<message>
<location filename="../pages/getPage.h" line="29"/>
<source>Wallpaper</source>
- <translation type="unfinished"></translation>
+ <translation>Tapeta</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="30"/>
<source>Theme</source>
- <translation type="unfinished"></translation>
+ <translation>Motyw</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="32"/>
<source>Autostart</source>
- <translation type="unfinished"></translation>
+ <translation>Uruchamianie automatyczne</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="33"/>
@@ -761,27 +761,27 @@
<message>
<location filename="../pages/getPage.h" line="36"/>
<source>Desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Pulpit</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="37"/>
<source>Panels</source>
- <translation type="unfinished"></translation>
+ <translation>Panele</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="38"/>
<source>Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Menu</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="42"/>
<source>Input Device Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia urządzeń wejściowych</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="42"/>
<source>Adjust keyboard and mouse devices</source>
- <translation type="unfinished"></translation>
+ <translation>Skonfiguruj klawiaturę oraz mysz</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="36"/>
@@ -791,7 +791,7 @@
<message>
<location filename="../pages/getPage.h" line="36"/>
<source>Change what icons or tools are embedded on the desktop</source>
- <translation type="unfinished"></translation>
+ <translation>Ikony lub narzędzia wyświetlane na pulpicie</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="37"/>
@@ -801,12 +801,12 @@
<message>
<location filename="../pages/getPage.h" line="37"/>
<source>Change any floating panels and what they show</source>
- <translation type="unfinished"></translation>
+ <translation>Panele i ich zawartość</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="38"/>
<source>Menu Plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Wtyczki menu</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="38"/>
@@ -821,12 +821,12 @@
<message>
<location filename="../pages/getPage.h" line="39"/>
<source>Change the default locale settings for this user</source>
- <translation type="unfinished"></translation>
+ <translation>Zmień ustawienia językowe tego użytkownika</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="39"/>
<source>Localization</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia językowe</translation>
</message>
<message>
<location filename="../pages/getPage.h" line="40"/>
@@ -849,7 +849,7 @@
<message>
<location filename="../ScriptDialog.ui" line="14"/>
<source>Setup a JSON Menu Script</source>
- <translation type="unfinished"></translation>
+ <translation>Ustaw skrypt menu używając JSON</translation>
</message>
<message>
<location filename="../ScriptDialog.ui" line="25"/>
@@ -885,7 +885,7 @@
<message>
<location filename="../ScriptDialog.cpp" line="57"/>
<source>Select a menu script</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz skrypt menu</translation>
</message>
<message>
<location filename="../ScriptDialog.cpp" line="64"/>
@@ -945,7 +945,7 @@
<message>
<location filename="../mainWindow.ui" line="14"/>
<source>MainWindow</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">MainWindow</translation>
</message>
<message>
<location filename="../mainWindow.ui" line="23"/>
@@ -1068,17 +1068,17 @@
<message>
<location filename="../pages/page_compton.ui" line="32"/>
<source>Disable Compositing Manager (session restart required)</source>
- <translation type="unfinished"></translation>
+ <translation>Wyłącz menedżera kompozycji (wymagany restart sesji)</translation>
</message>
<message>
<location filename="../pages/page_compton.ui" line="39"/>
<source>Only use compositing with GPU acceleration </source>
- <translation type="unfinished"></translation>
+ <translation>Menedżer kompozycji tylko z akceleracją GPU. </translation>
</message>
<message>
<location filename="../pages/page_compton.cpp" line="38"/>
<source>Compositor Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia menedżera kompozycji</translation>
</message>
</context>
<context>
@@ -1199,7 +1199,7 @@
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="14"/>
<source>page_fluxbox_keys</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">page_fluxbox_keys</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="34"/>
@@ -1249,16 +1249,16 @@
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="220"/>
<source>View Syntax Codes</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż składnię kodu</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.ui" line="244"/>
- <source>&quot;Mod1&quot;: Alt key
-&quot;Mod4&quot;: Windows/Mac key
-&quot;Control&quot;: Ctrl key</source>
- <translation>&quot;Mod1&quot;: Alt key
-&quot;Mod4&quot;: Windows/Mac key
-&quot;Control&quot;: Ctrl key</translation>
+ <source>"Mod1": Alt key
+"Mod4": Windows/Mac key
+"Control": Ctrl key</source>
+ <translation>"Mod1": klawisz Alt
+"Mod4": klawisz Windows/Mac
+"Control": klawisz Ctrl</translation>
</message>
<message>
<location filename="../pages/page_fluxbox_keys.cpp" line="71"/>
@@ -1436,12 +1436,12 @@
<message>
<location filename="../pages/page_interface_panels.ui" line="69"/>
<source>Profile</source>
- <translation type="unfinished"></translation>
+ <translation>Profil</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.ui" line="82"/>
<source>Import</source>
- <translation type="unfinished"></translation>
+ <translation>Import</translation>
</message>
<message>
<location filename="../pages/page_interface_panels.cpp" line="52"/>
@@ -1474,7 +1474,7 @@
<message>
<location filename="../pages/page_main.cpp" line="61"/>
<source>Desktop Defaults</source>
- <translation type="unfinished"></translation>
+ <translation>Domyślne ustawienia pulpitu</translation>
</message>
<message>
<location filename="../pages/page_main.cpp" line="65"/>
@@ -1492,32 +1492,32 @@
<message>
<location filename="../pages/page_mouse.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Formularz</translation>
+ <translation>Formularz</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="53"/>
<source>Input Device Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia urządzeń wejścia</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="81"/>
<source>Mouse #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Mysz #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="85"/>
<source>Keyboard #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Klawiatura #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="106"/>
<source>Extension Device #%1</source>
- <translation type="unfinished"></translation>
+ <translation>Urządzenie rozszerzeń #%1</translation>
</message>
<message>
<location filename="../pages/page_mouse.cpp" line="107"/>
<source>Master Device</source>
- <translation type="unfinished"></translation>
+ <translation>Urządzenie główne</translation>
</message>
</context>
<context>
@@ -1608,12 +1608,12 @@
<message>
<location filename="../pages/page_session_options.ui" line="58"/>
<source>Manage desktop app links</source>
- <translation type="unfinished"></translation>
+ <translation>Zarządzaj skrótami aplikacji pulpitu</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="65"/>
<source>Show application crash data</source>
- <translation type="unfinished"></translation>
+ <translation>Pokazuj informacje o błędach aplikacji</translation>
</message>
<message>
<location filename="../pages/page_session_options.ui" line="74"/>
@@ -1833,7 +1833,7 @@
<message>
<location filename="../pages/page_theme.ui" line="36"/>
<source>Desktop Theme</source>
- <translation type="unfinished"></translation>
+ <translation>Motyw pulpitu</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="42"/>
@@ -1889,12 +1889,12 @@
<message>
<location filename="../pages/page_theme.ui" line="192"/>
<source>Application Themes</source>
- <translation type="unfinished"></translation>
+ <translation>Motyw aplikacji</translation>
</message>
<message>
<location filename="../pages/page_theme.ui" line="198"/>
<source>Qt5 Theme Engine</source>
- <translation type="unfinished"></translation>
+ <translation>Silnik motywu Qt5</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="58"/>
@@ -1920,12 +1920,12 @@
<message>
<location filename="../pages/page_theme.cpp" line="137"/>
<source>None</source>
- <translation type="unfinished"></translation>
+ <translation>Żaden</translation>
</message>
<message>
<location filename="../pages/page_theme.cpp" line="138"/>
<source>Manual Setting</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia manualne</translation>
</message>
</context>
<context>
diff --git a/src-qt5/core-utils/lumina-config/lumina-config.pro b/src-qt5/core-utils/lumina-config/lumina-config.pro
index d690bcb3..5494393e 100644
--- a/src-qt5/core-utils/lumina-config/lumina-config.pro
+++ b/src-qt5/core-utils/lumina-config/lumina-config.pro
@@ -16,11 +16,11 @@ include(../../core/libLumina/LuminaXDG.pri)
include(../../core/libLumina/LuminaSingleApplication.pri)
include(../../core/libLumina/LuminaThemes.pri)
-NO_XINPUT{
+#NO_XINPUT{
DEFINES+=NO_XINPUT
-}else{
- include(../../core/libLumina/LInputDevice.pri)
-}
+#}else{
+# include(../../core/libLumina/LInputDevice.pri)
+#}
SOURCES += main.cpp \
mainWindow.cpp \
diff --git a/src-qt5/core-utils/lumina-config/pages/getPage.h b/src-qt5/core-utils/lumina-config/pages/getPage.h
index c820283e..59dbcd2b 100644
--- a/src-qt5/core-utils/lumina-config/pages/getPage.h
+++ b/src-qt5/core-utils/lumina-config/pages/getPage.h
@@ -38,11 +38,6 @@ static QList<PAGEINFO> KnownPages(){
list << PageInfo("interface-menu", QObject::tr("Menu"), QObject::tr("Menu Plugins"), "format-list-unordered",QObject::tr("Change what options are shown on the desktop context menu"), "interface", QStringList(), QStringList() << "desktop" << "menu" << "plugins" << "shortcuts");
list << PageInfo("session-locale", QObject::tr("Localization"), QObject::tr("Locale Settings"), "preferences-desktop-locale",QObject::tr("Change the default locale settings for this user"), "user", QStringList(), QStringList() << "user"<<"locale"<<"language"<<"translations");
list << PageInfo("session-options", QObject::tr("General Options"), QObject::tr("User Settings"), "configure",QObject::tr("Change basic user settings such as time/date formats"), "user", QStringList(), QStringList() << "user"<<"settings"<<"time"<<"date"<<"icon"<<"reset"<<"numlock"<<"clock");
- #ifndef NO_XINPUT
- if(LUtils::isValidBinary("xinput")){
- list << PageInfo("input-devices", QObject::tr("Input Device Settings"), QObject::tr("Input Device Settings"), "preferences-desktop-peripherals",QObject::tr("Adjust keyboard and mouse devices"), "user", QStringList(), QStringList() << "user"<<"speed"<<"accel"<<"mouse" << "keyboard");
- }
- #endif
// list << PageInfo("mouse-settings", QObject::tr("TrueOS Mouse Settings"), QObject::tr("TrueOS Mouse Settings"), "preferences-desktop-mouse",QObject::tr("Adjust mouse devices"), "user", QStringList(), QStringList() << "user"<<"speed"<<"accel"<<"mouse");
// list << PageInfo("bluetooth-settings", QObject::tr("TrueOS Bluetooth Settings"), QObject::tr("TrueOS Bluetooth Settings"), "preferences-desktop-bluetooth",QObject::tr("Setup Bluetooth devices"), "user", QStringList(), QStringList() << "user"<<"bluetooth"<<"audio");
@@ -64,10 +59,6 @@ static QList<PAGEINFO> KnownPages(){
#include "page_session_options.h"
#include "page_compton.h"
-#ifndef NO_XINPUT
-#include "page_mouse.h"
-#endif
-
// #include "page_mouse_trueos.h"
// #include "page_bluetooth_trueos.h"
@@ -86,9 +77,6 @@ static PageWidget* GetNewPage(QString id, QWidget *parent){
else if(id=="session-locale"){ page = new page_session_locale(parent); }
else if(id=="session-options"){ page = new page_session_options(parent); }
else if(id=="compton"){ page = new page_compton(parent); }
- #ifndef NO_XINPUT
- else if(id=="input-devices"){ page = new page_mouse(parent); }
- #endif
// else if(id=="mouse-settings"){ page = new page_mouse_trueos(parent); }
// else if(id=="bluetooth-settings"){ page = new page_bluetooth_trueos(parent); }
diff --git a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp
index b2a0896c..a21653c9 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp
+++ b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.cpp
@@ -42,92 +42,23 @@ void page_defaultapps::LoadSettings(int){
emit HasPendingChanges(false);
emit ChangePageTitle( tr("Default Applications") );
-//First load the lumina-open specific defaults
- // - Default File Manager
- QString tmp = LXDG::findDefaultAppForMime("inode/directory");
- if(tmp.isEmpty()){ tmp = "lumina-fm"; }
- if( !QFile::exists(tmp) && !LUtils::isValidBinary(tmp) ){ qDebug() << "Invalid Settings:" << tmp; tmp.clear(); } //invalid settings
- if(tmp.endsWith(".desktop")){
- XDGDesktop file(tmp);
- if(file.type == XDGDesktop::BAD){
- //Might be a binary - just print out the raw "path"
- ui->tool_default_filemanager->setText(tmp.section("/",-1));
- ui->tool_default_filemanager->setIcon( LXDG::findIcon("application-x-executable","") );
- }else{
- ui->tool_default_filemanager->setText(file.name);
- ui->tool_default_filemanager->setIcon(LXDG::findIcon(file.icon,"") );
- }
- }else if(tmp.isEmpty()){
- ui->tool_default_filemanager->setText(tr("Click to Set"));
- ui->tool_default_filemanager->setIcon( LXDG::findIcon("system-help","") );
- }else{
- //Might be a binary - just print out the raw "path"
- ui->tool_default_filemanager->setText(tmp.section("/",-1));
- ui->tool_default_filemanager->setIcon( LXDG::findIcon("application-x-executable","") );
- }
+ //First load the lumina-open specific defaults
+ // - Default File Manager
+ defaultFileManager = LXDG::findDefaultAppForMime("inode/directory");
+ if(defaultFileManager.isEmpty()){ defaultFileManager = "lumina-fm"; }
+ updateDefaultButton(ui->tool_default_filemanager, defaultFileManager);
+
// - Default Terminal
- tmp =LXDG::findDefaultAppForMime("application/terminal"); //sessionsettings->value("default-terminal", "xterm").toString();
- if( !QFile::exists(tmp) && !LUtils::isValidBinary(tmp) ){ qDebug() << "Invalid Settings:" << tmp; tmp.clear(); } //invalid settings
- if(tmp.endsWith(".desktop")){
- XDGDesktop file(tmp);
- if(file.type == XDGDesktop::BAD){
- //Might be a binary - just print out the raw "path"
- ui->tool_default_terminal->setText(tmp.section("/",-1));
- ui->tool_default_terminal->setIcon( LXDG::findIcon("application-x-executable","") );
- }else{
- ui->tool_default_terminal->setText(file.name);
- ui->tool_default_terminal->setIcon(LXDG::findIcon(file.icon,"") );
- }
- }else if(tmp.isEmpty()){
- ui->tool_default_terminal->setText(tr("Click to Set"));
- ui->tool_default_terminal->setIcon( LXDG::findIcon("system-help","") );
- }else{
- //Might be a binary - just print out the raw "path"
- ui->tool_default_terminal->setText(tmp.section("/",-1));
- ui->tool_default_terminal->setIcon( LXDG::findIcon("application-x-executable","") );
- }
+ defaultTerminal = LXDG::findDefaultAppForMime("application/terminal"); //sessionsettings->value("default-terminal", "xterm").toString();
+ updateDefaultButton(ui->tool_default_terminal, defaultTerminal);
+
// - Default Web Browser
- tmp = LXDG::findDefaultAppForMime("x-scheme-handler/http"); //appsettings->value("default/webbrowser", "").toString();
- if( !QFile::exists(tmp) && !LUtils::isValidBinary(tmp) ){ qDebug() << "Invalid Settings:" << tmp; tmp.clear(); } //invalid settings
- if(tmp.endsWith(".desktop")){
- XDGDesktop file(tmp);
- if(file.type == XDGDesktop::BAD){
- //Might be a binary - just print out the raw "path"
- ui->tool_default_webbrowser->setText(tmp.section("/",-1));
- ui->tool_default_webbrowser->setIcon( LXDG::findIcon("application-x-executable","") );
- }else{
- ui->tool_default_webbrowser->setText(file.name);
- ui->tool_default_webbrowser->setIcon(LXDG::findIcon(file.icon,"") );
- }
- }else if(tmp.isEmpty()){
- ui->tool_default_webbrowser->setText(tr("Click to Set"));
- ui->tool_default_webbrowser->setIcon( LXDG::findIcon("system-help","") );
- }else{
- //Might be a binary - just print out the raw "path"
- ui->tool_default_webbrowser->setText(tmp.section("/",-1));
- ui->tool_default_webbrowser->setIcon( LXDG::findIcon("application-x-executable","") );
- }
+ defaultBrowser = LXDG::findDefaultAppForMime("x-scheme-handler/http"); //appsettings->value("default/webbrowser", "").toString();
+ updateDefaultButton(ui->tool_default_webbrowser, defaultBrowser);
+
// - Default Email Client
- tmp = LXDG::findDefaultAppForMime("application/email"); //appsettings->value("default/email", "").toString();
- if( !QFile::exists(tmp) && !LUtils::isValidBinary(tmp) ){ qDebug() << "Invalid Settings:" << tmp; tmp.clear(); } //invalid settings
- if(tmp.endsWith(".desktop")){
- XDGDesktop file(tmp);
- if(file.type == XDGDesktop::BAD){
- //Might be a binary - just print out the raw "path"
- ui->tool_default_email->setText(tmp.section("/",-1));
- ui->tool_default_email->setIcon( LXDG::findIcon("application-x-executable","") );
- }else{
- ui->tool_default_email->setText(file.name);
- ui->tool_default_email->setIcon(LXDG::findIcon(file.icon,"") );
- }
- }else if(tmp.isEmpty()){
- ui->tool_default_email->setText(tr("Click to Set"));
- ui->tool_default_email->setIcon( LXDG::findIcon("system-help","") );
- }else{
- //Might be a binary - just print out the raw "path"
- ui->tool_default_email->setText(tmp.section("/",-1));
- ui->tool_default_email->setIcon( LXDG::findIcon("application-x-executable","") );
- }
+ defaultEmail = LXDG::findDefaultAppForMime("application/email"); //appsettings->value("default/email", "").toString();
+ updateDefaultButton(ui->tool_default_email, defaultEmail);
//Now load the XDG mime defaults
ui->tree_defaults->clear();
@@ -135,7 +66,7 @@ void page_defaultapps::LoadSettings(int){
//qDebug() << "Mime List:\n" << defMimeList.join("\n");
defMimeList.sort(); //sort by group/mime
//Now fill the tree by group/mime
- QTreeWidgetItem *group = new QTreeWidgetItem(0); //nothing at the moment
+ QTreeWidgetItem *group = nullptr;
QString ccat;
for(int i=0; i<defMimeList.length(); i++){
//Get the info from this entry
@@ -145,37 +76,38 @@ void page_defaultapps::LoadSettings(int){
QString def = defMimeList[i].section("::::",2,2);
QString comment = defMimeList[i].section("::::",3,50);
//Now check if this is a new category
- if(ccat!=cat){
- //New group
- group = new QTreeWidgetItem(0);
+ if(group == nullptr || ccat!=cat){
+ //New group
+ group = new QTreeWidgetItem(0);
group->setText(0, cat); //add translations for known/common groups later
- ui->tree_defaults->addTopLevelItem(group);
- ccat = cat;
+ ui->tree_defaults->addTopLevelItem(group);
+ ccat = cat;
}
//Now create the entry
QTreeWidgetItem *it = new QTreeWidgetItem();
- it->setWhatsThis(0,mime); // full mimetype
- it->setText(0, QString(tr("%1 (%2)")).arg(mime.section("/",-1), extlist) );
- it->setText(2,comment);
- it->setToolTip(0, comment); it->setToolTip(1,comment);
- //Now load the default (if there is one)
- it->setWhatsThis(1,def); //save for later
- if(def.endsWith(".desktop")){
- XDGDesktop file(def);
- if(file.type == XDGDesktop::BAD){
- //Might be a binary - just print out the raw "path"
- it->setText(1,def.section("/",-1));
- it->setIcon(1, LXDG::findIcon("application-x-executable","") );
- }else{
- it->setText(1, file.name);
- it->setIcon(1, LXDG::findIcon(file.icon,"") );
- }
- }else if(!def.isEmpty()){
- //Binary/Other default
- it->setText(1, def.section("/",-1));
- it->setIcon(1, LXDG::findIcon("application-x-executable","") );
+ it->setWhatsThis(0,mime); // full mimetype
+ it->setText(0, QString(tr("%1 (%2)")).arg(mime.section("/",-1), extlist) );
+ it->setText(2,comment);
+ it->setToolTip(0, comment); it->setToolTip(1,comment);
+ //Now load the default (if there is one)
+ it->setWhatsThis(1,def); //save for later
+ it->setData(1, Qt::UserRole, def);
+ if(def.endsWith(".desktop")){
+ XDGDesktop file(def);
+ if(file.type == XDGDesktop::BAD){
+ //Might be a binary - just print out the raw "path"
+ it->setText(1, def.section("/",-1));
+ it->setIcon(1, LXDG::findIcon("application-x-executable","") );
+ }else{
+ it->setText(1, file.name);
+ it->setIcon(1, LXDG::findIcon(file.icon,"") );
}
- group->addChild(it);
+ }else if(!def.isEmpty()){
+ //Binary/Other default
+ it->setText(1, def.section("/",-1));
+ it->setIcon(1, LXDG::findIcon("application-x-executable","") );
+ }
+ group->addChild(it);
}
ui->tree_defaults->sortItems(0,Qt::AscendingOrder);
@@ -194,8 +126,8 @@ void page_defaultapps::updateIcons(){
//=================
// PRIVATE
//=================
-QString page_defaultapps::getSysApp(bool allowreset){
- AppDialog dlg(this);
+QString page_defaultapps::getSysApp(bool allowreset, QString defaultPath){
+ AppDialog dlg(this, defaultPath);
dlg.allowReset(allowreset);
dlg.exec();
if(dlg.appreset && allowreset){
@@ -206,6 +138,7 @@ QString page_defaultapps::getSysApp(bool allowreset){
}
void page_defaultapps::updateDefaultButton(QToolButton *button, QString app){
+ if( !QFile::exists(app) && !LUtils::isValidBinary(app) ){ qDebug() << "Invalid Settings:" << app; app.clear(); } //invalid settings
if(app.endsWith(".desktop")){
XDGDesktop file(app);
if(file.type == XDGDesktop::BAD){
@@ -231,10 +164,11 @@ void page_defaultapps::updateDefaultButton(QToolButton *button, QString app){
//=================
void page_defaultapps::changeDefaultBrowser(){
//Prompt for the new app
- QString app = getSysApp(true);
- if(app.isEmpty()){ return; }//nothing selected
- if(app=="reset"){ app.clear(); }
+ QString app = getSysApp(true, defaultBrowser);
+ if(app.isEmpty()){ return; }//nothing selected
+ if(app=="reset"){ app.clear(); }
//save the new app setting and adjust the button appearance
+ defaultBrowser = app;
LXDG::setDefaultAppForMime("x-scheme-handler/http", app.section("/",-1));
LXDG::setDefaultAppForMime("x-scheme-handler/https", app.section("/",-1));
updateDefaultButton(ui->tool_default_webbrowser, app);
@@ -242,30 +176,33 @@ void page_defaultapps::changeDefaultBrowser(){
void page_defaultapps::changeDefaultEmail(){
//Prompt for the new app
- QString app = getSysApp(true);
- if(app.isEmpty()){ return; }//nothing selected
- if(app=="reset"){ app.clear(); }
+ QString app = getSysApp(true, defaultEmail);
+ if(app.isEmpty()){ return; }//nothing selected
+ if(app=="reset"){ app.clear(); }
//save the new app setting and adjust the button appearance
+ defaultEmail = app;
LXDG::setDefaultAppForMime("application/email",app.section("/",-1));
updateDefaultButton(ui->tool_default_email, app);
}
void page_defaultapps::changeDefaultFileManager(){
//Prompt for the new app
- QString app = getSysApp(true);
- if(app.isEmpty()){ return; }//nothing selected
- if(app=="reset"){ app = "lumina-fm"; }
+ QString app = getSysApp(true, defaultFileManager);
+ if(app.isEmpty()){ return; }//nothing selected
+ if(app=="reset"){ app = "lumina-fm"; }
//save the new app setting and adjust the button appearance
+ defaultFileManager = app;
LXDG::setDefaultAppForMime("inode/directory", app.section("/",-1));
updateDefaultButton(ui->tool_default_filemanager, app);
}
void page_defaultapps::changeDefaultTerminal(){
//Prompt for the new app
- QString app = getSysApp(true);
- if(app.isEmpty()){ return; }//nothing selected
- if(app=="reset"){ app = "xterm"; }
+ QString app = getSysApp(true, defaultTerminal);
+ if(app.isEmpty()){ return; }//nothing selected
+ if(app=="reset"){ app = "xterm"; }
//save the new app setting and adjust the button appearance
+ defaultTerminal = app;
LXDG::setDefaultAppForMime("application/terminal", app.section("/",-1) );
updateDefaultButton(ui->tool_default_terminal, app);
}
@@ -292,14 +229,19 @@ void page_defaultapps::cleardefaultitem(){
void page_defaultapps::setdefaultitem(){
QTreeWidgetItem *it = ui->tree_defaults->currentItem();
+ QString path;
if(it==0){ return; } //no item selected
QList<QTreeWidgetItem*> list;
for(int i=0; i<it->childCount(); i++){
list << it->child(i);
}
- if(list.isEmpty()){ list << it; } //just do the current item
+ if(list.isEmpty()){
+ //just do the current item
+ list << it;
+ path = it->data(1, Qt::UserRole).toString();
+ }
//Prompt for which application to use
- QString app = getSysApp(false); //no "reset" option
+ QString app = getSysApp(false, path); //no "reset" option
if(app.isEmpty()){ return; }//nothing selected
//Now set the items
for(int i=0; i<list.length(); i++){
@@ -310,6 +252,7 @@ void page_defaultapps::setdefaultitem(){
list[i]->setWhatsThis(1,app); //app path
list[i]->setIcon(1,LXDG::findIcon(desk.icon,"")); //reset the icon
list[i]->setText(1,desk.name); //reset the name
+ list[i]->setData(1, Qt::UserRole, app);
}
}
diff --git a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h
index f80ea1ab..d8e2bcde 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h
+++ b/src-qt5/core-utils/lumina-config/pages/page_defaultapps.h
@@ -26,8 +26,12 @@ public slots:
private:
Ui::page_defaultapps *ui;
+ QString defaultBrowser;
+ QString defaultEmail;
+ QString defaultFileManager;
+ QString defaultTerminal;
- QString getSysApp(bool allowreset);
+ QString getSysApp(bool allowreset, QString defaultPath = "");
void updateDefaultButton(QToolButton *button, QString app);
diff --git a/src-qt5/core-utils/lumina-config/pages/page_interface_panels.cpp b/src-qt5/core-utils/lumina-config/pages/page_interface_panels.cpp
index 827061af..3c355aa7 100644
--- a/src-qt5/core-utils/lumina-config/pages/page_interface_panels.cpp
+++ b/src-qt5/core-utils/lumina-config/pages/page_interface_panels.cpp
@@ -21,6 +21,13 @@ page_interface_panels::page_interface_panels(QWidget *parent) : PageWidget(paren
connect(ui->tool_panels_add, SIGNAL(clicked()), this, SLOT(newPanel()) );
updateIcons();
setupProfiles();
+
+ //Create panels container
+ QHBoxLayout *panels_layout = new QHBoxLayout();
+ panels_layout->setContentsMargins(0,0,0,0);
+ panels_layout->setAlignment(Qt::AlignLeft);
+ panels_layout->addStretch();
+ ui->scroll_panels->widget()->setLayout(panels_layout);
}
page_interface_panels::~page_interface_panels(){
@@ -53,28 +60,30 @@ void page_interface_panels::LoadSettings(int screennum){
QString screenID = QApplication::screens().at(cscreen)->name();
QString DPrefix = "desktop-"+screenID+"/";
int panelnumber = settings->value(DPrefix+"panels",-1).toInt();
+ QBoxLayout *panels_layout = static_cast<QHBoxLayout*>(ui->scroll_panels->widget()->layout());
-//First clean any current panels
- for(int i=0; i<PANELS.length(); i++){ delete PANELS.takeAt(i); i--; }
- //Now create new panels
- if(ui->scroll_panels->widget()->layout()==0){
- ui->scroll_panels->widget()->setLayout( new QHBoxLayout() );
- ui->scroll_panels->widget()->layout()->setContentsMargins(0,0,0,0);
+ //Remove extra panels (if any)
+ for(int i=panelnumber; i<PANELS.length(); i++){
+ PanelWidget *tmp = PANELS.takeAt(i);
+ delete tmp;
+ i--;
}
- ui->scroll_panels->widget()->layout()->setAlignment(Qt::AlignLeft);
- //Clear anything left over in the layout
- for(int i=0; i<ui->scroll_panels->widget()->layout()->count(); i++){
- delete ui->scroll_panels->widget()->layout()->takeAt(i);
+
+ int current_count = panels_layout->count()-1;
+
+ //Update current panels
+ for(int i=0; i<current_count; i++) {
+ PANELS[i]->LoadSettings(settings, cscreen, i);
}
- for(int i=0; i<panelnumber; i++){
+ //Create new panels
+ for(int i=current_count; i<panelnumber; i++){
PanelWidget *tmp = new PanelWidget(ui->scroll_panels->widget(), this, PINFO);
tmp->LoadSettings(settings, cscreen, i);
PANELS << tmp;
connect(tmp, SIGNAL(PanelChanged()), this, SLOT(panelValChanged()) );
connect(tmp, SIGNAL(PanelRemoved(int)), this, SLOT(removePanel(int)) );
- ui->scroll_panels->widget()->layout()->addWidget(tmp);
+ panels_layout->insertWidget(panels_layout->count()-1, tmp);
}
- static_cast<QHBoxLayout*>(ui->scroll_panels->widget()->layout())->addStretch();
QApplication::processEvents();
loading = false;
diff --git a/src-qt5/core-utils/lumina-config/pages/page_mouse.cpp b/src-qt5/core-utils/lumina-config/pages/page_mouse.cpp
deleted file mode 100644
index f4eebd0e..00000000
--- a/src-qt5/core-utils/lumina-config/pages/page_mouse.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-//===========================================
-// Lumina Desktop Source Code
-// Copyright (c) 2016, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-#include "page_mouse.h"
-#include "ui_page_mouse.h"
-#include "getPage.h"
-
-#include <QSpinBox>
-#include <QDoubleSpinBox>
-
-//==========
-// PUBLIC
-//==========
-page_mouse::page_mouse(QWidget *parent) : PageWidget(parent), ui(new Ui::page_mouse()){
- ui->setupUi(this);
- devices = LInput::listDevices();
- //DEBUG Code
- /*qDebug() << "List Devices:";
- for(int i=0; i<devices.length(); i++){
- if(!devices[i]->isPointer()){
- ::free( devices.takeAt(i));
- i--;
- }else{
- qDebug() << "Found Pointer:" << devices[i]->devNumber();
- qDebug() << " - isExtension:" << devices[i]->isExtension();
- QList<int> props = devices[i]->listProperties();
- qDebug() << " - Properties:";
- for(int j=0; j<props.length(); j++){
- qDebug() << " --" <<devices[i]->propertyName(props[j])+" ("+QString::number(props[j])+")" <<" = " << devices[i]->getPropertyValue(props[j]);
- }
- }
- }*/
- generateUI();
-}
-
-page_mouse::~page_mouse(){
- for(int i=0; i<devices.length(); i++){ ::free(devices[i]); }
-}
-
-//================
-// PUBLIC SLOTS
-//================
-void page_mouse::SaveSettings(){
-
- emit HasPendingChanges(false);
-}
-
-void page_mouse::LoadSettings(int){
- emit HasPendingChanges(false);
- emit ChangePageTitle( tr("Input Device Settings") );
-
-}
-
-void page_mouse::updateIcons(){
- for(int i=0; i<ui->tabWidget->count(); i++){
- ui->tabWidget->setTabIcon( i, LXDG::findIcon( "input-"+ui->tabWidget->tabWhatsThis(i).section(":",0,0), "" ) );
- }
-}
-
-//=================
-// PRIVATE
-//=================
-void page_mouse::generateUI(){
- ui->tabWidget->clear(); //remove all tabs (just in case)
- int mouse = 1;
- int keyboard = 1;
- qDebug() << "Devices Found:" << devices.length();
- for(int i=0; i<devices.length(); i++){
- QTreeWidget *tree = 0;
- if(!devices[i]->isExtension() || devices[i]->isPointer()){
- if(devices[i]->isPointer() && devices[i]->listProperties().count() <4){ continue; } //filter out all the trivial/static mouse devices
- //Make a new tab for this device
- tree = new QTreeWidget(this);
- tree->setHeaderHidden(true);
- tree->setColumnCount(2);
- connect(tree, SIGNAL(itemActivated(QTreeWidgetItem*, int)), this, SLOT(itemClicked(QTreeWidgetItem*,int)) );
- if(devices[i]->isPointer()){
- int tab = ui->tabWidget->addTab(tree, LXDG::findIcon("input-mouse",""), QString(tr("Mouse #%1")).arg(QString::number(mouse)) );
- ui->tabWidget->setTabWhatsThis(tab, "mouse:"+QString::number(devices[i]->devNumber()));
- mouse++;
- }else{
- int tab = ui->tabWidget->addTab(tree, LXDG::findIcon("input-keyboard",""), QString(tr("Keyboard #%1")).arg(QString::number(keyboard)) );
- ui->tabWidget->setTabWhatsThis(tab, "keyboard:"+QString::number(devices[i]->devNumber()) );
- keyboard++;
- }
- }else{
- //Find the associated tab for this extension device
- int tab = 0;
- QString type = devices[i]->isPointer() ? "mouse" : "keyboard";
- int num = devices[i]->devNumber();
- for(int t=ui->tabWidget->count()-1; t>0; t--){
- if(ui->tabWidget->tabWhatsThis(t).startsWith(type) && ui->tabWidget->tabWhatsThis(t).section(":",-1).toInt() < num ){ tab = t; break; }
- }
- tree = static_cast<QTreeWidget*>( ui->tabWidget->widget(tab) );
- }
- if(tree!=0){ populateDeviceTree(tree, devices[i]); }
- }
-}
-
-void page_mouse::populateDeviceTree(QTreeWidget *tree, LInputDevice *device){
- QTreeWidgetItem *top = new QTreeWidgetItem(tree);
- if(device->isExtension()){
- top->setText( 0, QString(tr("Extension Device #%1")).arg(QString::number(tree->topLevelItemCount())) );
- }else{ top->setText(0, tr("Master Device")); }
- top->setWhatsThis(0, QString(device->isPointer() ? "mouse" : "keyboard")+":"+QString::number(device->devNumber()) ); //save this for later
- top->setFirstColumnSpanned(true);
- top->setExpanded(true);
- tree->addTopLevelItem(top);
- //Now add all the child properties to this item
- QList<int> props = device->listProperties();
- for(int i=0; i<props.length(); i++){
- if(device->propertyName(props[i]).toLower().contains("matrix")){ continue; } //skip this one - can not change from UI and most people will never want to anyway
- QTreeWidgetItem *tmp = new QTreeWidgetItem(top);
- tmp->setWhatsThis(0, QString::number(props[i]) );
- tmp->setText(0, device->propertyName(props[i]));
- top->addChild(tmp);
- populateDeviceItemValue(tree, tmp, device->getPropertyValue(props[i]), QString::number(device->devNumber())+":"+QString::number(props[i]) );
- }
- //Clean up the tree widget as needed
- top->sortChildren(0, Qt::AscendingOrder);
- tree->resizeColumnToContents(0);
-}
-
-void page_mouse::populateDeviceItemValue(QTreeWidget *tree, QTreeWidgetItem *it, QVariant value, QString id){
- if(value.type()==QVariant::Int){
- //Could be a boolian - check the name for known "enable" states
- if(value.toInt() < 2 && (it->text(0).toLower().contains("enable") || it->text(0).toLower().contains("emulation") || it->text(0)==("XTEST Device") ) ){
- //Just use a checkable column within the item
- bool enabled = (value.toInt()==1);
- it->setText(1,"");
- it->setWhatsThis(1, "bool:"+id);
- it->setCheckState(1, enabled ? Qt::Checked : Qt::Unchecked);
- }else{
- //Use a QSpinBox
- QSpinBox *box = new QSpinBox();
- box->setRange(0,100);
- box->setValue( value.toInt() );
- box->setWhatsThis("int:"+id);
- tree->setItemWidget(it, 1, box);
- connect(box, SIGNAL(valueChanged(int)), this, SLOT(valueChanged()) );
- }
- }else if(value.type()==QVariant::Double){
- //Use a QDoubleSpinBox
- QDoubleSpinBox *box = new QDoubleSpinBox();
- box->setRange(0,1000);
- box->setValue( value.toInt() );
- box->setWhatsThis("double:"+id);
- tree->setItemWidget(it, 1, box);
- connect(box, SIGNAL(valueChanged(double)), this, SLOT(valueChanged()) );
-
- }else if(value.canConvert< QList<QVariant> >()){
- //Not Modifiable - just use the label in the item
- QList<QVariant> list = value.toList();
- QStringList txtList;
- for(int i=0; i<list.length(); i++){ txtList << list[i].toString(); }
- it->setText(1, txtList.join(", ") );
- it->setToolTip(1, txtList.join(", "));
- }else if( value.canConvert<QString>() ){
- //Not Modifiable - just use the label in the item
- it->setText(1, value.toString());
- }
-}
-//=================
-// PRIVATE SLOTS
-//=================
-void page_mouse::valueChanged(){
- //Now get the currently focused widget
- QWidget *foc = this->focusWidget();
- if(foc==0){ return; }
- //qDebug() << "Focus Widget:" << foc->whatsThis();
- //Now pull out the value and device/property numbers
- unsigned int dev = foc->whatsThis().section(":",1,1).toInt();
- int prop = foc->whatsThis().section(":",2,2).toInt();
- QVariant value;
- if(foc->whatsThis().startsWith("int:")){ value.setValue( static_cast<QSpinBox*>(foc)->value() ); }
- else if(foc->whatsThis().startsWith("double:")){ value.setValue( static_cast<QDoubleSpinBox*>(foc)->value() ); }
- //Now change the property for the device
- qDebug() << " - Device:" <<dev << "prop:" << prop << "value:" << value;
- for(int i=0; i<devices.length(); i++){
- if(devices[i]->devNumber() == dev){
- bool ok = devices[i]->setPropertyValue(prop, value);
- if(ok){ foc->setStyleSheet(""); }
- else{ foc->setStyleSheet("background: red"); }
- //qDebug() << " - Changed property:" << (ok ? "success" : "failure");
- break;
- }
- }
-}
-
-void page_mouse::itemClicked(QTreeWidgetItem *it, int col){
- if(col!=1){ return; } //only care about value changes
- if(it->whatsThis(1).isEmpty()){ return; }//not a checkable item
- qDebug() << "item Clicked:" << it->whatsThis(1) << it->text(0);
- //Now pull out the value and device/property numbers
- unsigned int dev = it->whatsThis(1).section(":",1,1).toInt();
- int prop = it->whatsThis(1).section(":",2,2).toInt();
- QVariant value( (it->checkState(1)==Qt::Checked) ? 1 : 0 );
- //Now change the property for the device
- qDebug() << " - Device:" <<dev << "prop:" << prop << "value:" << value;
- for(int i=0; i<devices.length(); i++){
- if(devices[i]->devNumber() == dev){
- //Since this "clicked" signal can get sent out even if the value has not changed, go ahead and make sure we have a different value first
- QVariant current = devices[i]->getPropertyValue(prop);
- //qDebug() << " - Current Value:" << current;
- if(value.toInt()!=current.toInt()){
- bool ok = devices[i]->setPropertyValue(prop, value);
- //if(ok){ foc->setStyleSheet(""); }
- //else{ foc->setStyleSheet("background: red"); }
- qDebug() << " - Changed property:" << (ok ? "success" : "failure");
- }
- break;
- }
- }
-}
diff --git a/src-qt5/core-utils/lumina-config/pages/page_mouse.h b/src-qt5/core-utils/lumina-config/pages/page_mouse.h
deleted file mode 100644
index 5409a9c2..00000000
--- a/src-qt5/core-utils/lumina-config/pages/page_mouse.h
+++ /dev/null
@@ -1,43 +0,0 @@
-//===========================================
-// Lumina Desktop Source Code
-// Copyright (c) 2016, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-#ifndef _LUMINA_CONFIG_PAGE_MOUSE_H
-#define _LUMINA_CONFIG_PAGE_MOUSE_H
-#include "../globals.h"
-#include "PageWidget.h"
-
-#include <LInputDevice.h>
-#include <QTreeWidgetItem>
-
-namespace Ui{
- class page_mouse;
-};
-
-class page_mouse : public PageWidget{
- Q_OBJECT
-public:
- page_mouse(QWidget *parent);
- ~page_mouse();
-
-public slots:
- void SaveSettings();
- void LoadSettings(int screennum);
- void updateIcons();
-
-private:
- Ui::page_mouse *ui;
- QList<LInputDevice*> devices;
-
- void generateUI();
- void populateDeviceTree(QTreeWidget *tree, LInputDevice *device);
- void populateDeviceItemValue(QTreeWidget *tree, QTreeWidgetItem *it, QVariant value, QString id);
-
-private slots:
- void valueChanged();
- void itemClicked(QTreeWidgetItem*, int);
-
-};
-#endif
diff --git a/src-qt5/core-utils/lumina-config/pages/page_mouse.ui b/src-qt5/core-utils/lumina-config/pages/page_mouse.ui
deleted file mode 100644
index a6c2e53f..00000000
--- a/src-qt5/core-utils/lumina-config/pages/page_mouse.ui
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>page_mouse</class>
- <widget class="QWidget" name="page_mouse">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>400</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QTabWidget" name="tabWidget">
- <property name="iconSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/src-qt5/core-utils/lumina-config/pages/pages.pri b/src-qt5/core-utils/lumina-config/pages/pages.pri
index 0ee5d561..89b9b010 100644
--- a/src-qt5/core-utils/lumina-config/pages/pages.pri
+++ b/src-qt5/core-utils/lumina-config/pages/pages.pri
@@ -51,9 +51,3 @@ FORMS += $${PWD}/page_main.ui \
$${PWD}/page_compton.ui
# $${PWD}/page_bluetooth_trueos.ui
# $${PWD}/page_mouse_trueos.ui
-
-!NO_XINPUT{
- HEADERS += $${PWD}/page_mouse.h
- SOURCES += $${PWD}/page_mouse.cpp
- FORMS += $${PWD}/page_mouse.ui
-}
diff --git a/src-qt5/core-utils/lumina-search/i18n/lumina-search_da.ts b/src-qt5/core-utils/lumina-search/i18n/lumina-search_da.ts
index cdf95b44..2c750640 100644
--- a/src-qt5/core-utils/lumina-search/i18n/lumina-search_da.ts
+++ b/src-qt5/core-utils/lumina-search/i18n/lumina-search_da.ts
@@ -74,12 +74,12 @@
<message>
<location filename="../MainUI.ui" line="88"/>
<source>Close</source>
- <translation>Afslut</translation>
+ <translation>Luk</translation>
</message>
<message>
<location filename="../MainUI.ui" line="108"/>
<source>Launch Item</source>
- <translation>Startenhed</translation>
+ <translation>Start post</translation>
</message>
<message>
<location filename="../MainUI.ui" line="119"/>
@@ -149,7 +149,7 @@
<message>
<location filename="../Worker.cpp" line="112"/>
<source>Search Finished</source>
- <translation>Søgning afsluttet</translation>
+ <translation>Søgning gennemført</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/core/libLumina/ExternalProcess.h b/src-qt5/core/libLumina/ExternalProcess.h
index 1325247f..8329c361 100644
--- a/src-qt5/core/libLumina/ExternalProcess.h
+++ b/src-qt5/core/libLumina/ExternalProcess.h
@@ -13,17 +13,40 @@
#include <QProcess>
#include <QString>
+#include <QTimer>
+#include <QApplication>
class ExternalProcess : public QProcess{
Q_OBJECT
+private:
+ bool cursorRestored;
+
private slots:
+ void resetCursor(){
+ if(!cursorRestored){
+ QApplication::restoreOverrideCursor();
+ cursorRestored = true;
+ }
+ }
+ void processStarting(){
+ if(!cursorRestored){
+ QApplication::setOverrideCursor( QCursor(Qt::WaitCursor) );
+ QTimer::singleShot(15000, this, SLOT(resetCursor()) );
+ }
+ }
void processFinished(){
+ if(!cursorRestored){
+ QApplication::restoreOverrideCursor();
+ cursorRestored = true;
+ }
//Clean up this object
this->deleteLater();
}
+
public:
- ExternalProcess(QString logfile = "") : QProcess(){
+ ExternalProcess(QString logfile = "", bool manageCursors = true) : QProcess(){
this->setProcessChannelMode(QProcess::MergedChannels);
+ cursorRestored = !manageCursors;
if(logfile.isEmpty()){
this->setStandardOutputFile(QProcess::nullDevice());
}else{
@@ -32,6 +55,7 @@ public:
//Setup the connection for automatic cleanup
connect(this, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished()) );
}
+
~ExternalProcess(){
/*if(this->state() == QProcess::Running){
this->detach(); //about to close down the QProcess - detach the other program so it can continue functioning normally.
diff --git a/src-qt5/core/libLumina/LuminaRandR-X11.cpp b/src-qt5/core/libLumina/LuminaRandR-X11.cpp
new file mode 100644
index 00000000..85251b64
--- /dev/null
+++ b/src-qt5/core/libLumina/LuminaRandR-X11.cpp
@@ -0,0 +1,206 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#include "LuminaRandR.h"
+
+#include "xcb/randr.h"
+#include "xcb/xcb_atom.h"
+
+#include <QDebug>
+#include <QX11Info>
+
+static QString atomToName(xcb_atom_t atom){
+ xcb_get_atom_name_reply_t *nreply = xcb_get_atom_name_reply(QX11Info::connection(), xcb_get_atom_name_unchecked(QX11Info::connection(), atom), NULL);
+ QString name = QString::fromLocal8Bit(xcb_get_atom_name_name(nreply), xcb_get_atom_name_name_length(nreply));
+ free(nreply);
+ return name;
+};
+
+//More efficient method for converting lots of atoms to strings
+static QStringList atomsToNames(xcb_atom_t *atoms, unsigned int num){
+ //qDebug() << "atomsToNames:" << num;
+ QList< xcb_get_atom_name_cookie_t > cookies;
+ //qDebug() << " - Get cookies";
+ for(unsigned int i=0; i<num; i++){ cookies << xcb_get_atom_name_unchecked(QX11Info::connection(), atoms[i]); }
+ QStringList names;
+ //qDebug() << " - Get names";
+ for(int i=0; i<cookies.length(); i++){
+ xcb_get_atom_name_reply_t *nreply = xcb_get_atom_name_reply(QX11Info::connection(), cookies[i], NULL);
+ if(nreply==0){ continue; }
+ names << QString::fromLocal8Bit(xcb_get_atom_name_name(nreply), xcb_get_atom_name_name_length(nreply));
+ free(nreply);
+ }
+ return names;
+};
+
+class OutputDevice::p_objects{
+public:
+ xcb_atom_t monitor_atom;
+ QList<xcb_randr_output_t> outputs; //the actual output devices used by the monitor
+
+};
+
+//Global Listing of Devices
+QList<OutputDevice> OutputDevice::availableMonitors(){
+ QList<OutputDevice> list;
+ //Get the list of monitors
+ xcb_randr_get_monitors_cookie_t cookie = xcb_randr_get_monitors_unchecked(QX11Info::connection(), QX11Info::appRootWindow(), 1);
+ xcb_randr_get_monitors_reply_t *reply = xcb_randr_get_monitors_reply(QX11Info::connection(), cookie, NULL);
+ if(reply==0){
+ qDebug() << "Could not get monitor list";
+ return list;
+ }
+ xcb_randr_monitor_info_iterator_t iter = xcb_randr_get_monitors_monitors_iterator(reply);
+ qDebug() << "Number of Monitors:" << xcb_randr_get_monitors_monitors_length(reply);
+ while(iter.rem>0){
+ qDebug() << "Found Monitor:";
+ //qDebug() << " Index:" << iter.index << "Rem:" << iter.rem;
+ QString name = atomToName(iter.data->name);
+ /*xcb_get_atom_name_reply_t *nreply = xcb_get_atom_name_reply(QX11Info::connection(), xcb_get_atom_name_unchecked(QX11Info::connection(), iter.data->name), NULL);
+ QString name = QString::fromLocal8Bit(xcb_get_atom_name_name(nreply), xcb_get_atom_name_name_length(nreply));
+ free(nreply);*/
+
+ qDebug() << " - Name:" << iter.data->name << name;
+ qDebug() << " - Primary:" << (iter.data->primary == 1);
+ qDebug() << " - Automatic:" << (iter.data->automatic == 1);
+ qDebug() << " - nOutput:" << iter.data->nOutput;
+ qDebug() << " - Geometry:" << QRect(iter.data->x, iter.data->y, iter.data->width, iter.data->height);
+ qDebug() << " - Physical Size (mm):" << iter.data->width_in_millimeters << "x" << iter.data->height_in_millimeters;
+ qDebug() << " - Number of outputs:" << xcb_randr_monitor_info_outputs_length(iter.data);
+ xcb_randr_monitor_info_next(&iter);
+ }
+
+ //Free up any objects we are done with
+ free(reply);
+ //Return the list
+ return list;
+}
+
+//FUNCTIONS (do not use directly - use the static list function instead)
+OutputDevice::OutputDevice(){
+ enabled = false;
+ p_obj = new p_objects();
+ p_obj->monitor_atom = 0;
+}
+
+OutputDevice::~OutputDevice(){
+
+}
+
+//Modification
+bool OutputDevice::setAsPrimary(){
+ if(isPrimary){ return true; }
+ if( !p_obj->outputs.isEmpty() ){
+ xcb_randr_set_output_primary (QX11Info::connection(), QX11Info::appRootWindow(), p_obj->outputs[0]);
+ isPrimary = true;
+ }
+ return isPrimary;
+}
+
+bool OutputDevice::disable(){
+ if(p_obj->monitor_atom!=0){
+ xcb_randr_delete_monitor(QX11Info::connection(), QX11Info::appRootWindow(), p_obj->monitor_atom);
+ p_obj->monitor_atom = 0;
+ return true;
+ }
+ return false;
+}
+
+void OutputDevice::enable(QRect geom){
+ //if no geom provided, will add as the right-most screen at optimal resolution
+ if(p_obj->monitor_atom!=0){ return; }
+ qDebug() << "Enable Monitor:" << geom;
+
+}
+
+void OutputDevice::changeResolution(QSize){
+
+}
+
+OutputDeviceList::OutputDeviceList(){
+ xcb_randr_get_screen_resources_reply_t *reply = xcb_randr_get_screen_resources_reply(QX11Info::connection(),
+ xcb_randr_get_screen_resources_unchecked(QX11Info::connection(), QX11Info::appRootWindow()),
+ NULL);
+ int outputnum = xcb_randr_get_screen_resources_outputs_length(reply);
+ qDebug() << "Probing Screen Resources:";
+ qDebug() << " - Number of Outputs:" << outputnum;
+ qDebug() << " - Number of CRTC's:" << xcb_randr_get_screen_resources_crtcs_length(reply);
+ int mode_len =xcb_randr_get_screen_resources_modes_length(reply);
+ qDebug() << " - Modes:" << mode_len;
+ for(int m=0; m<mode_len; m++){
+ xcb_randr_mode_info_t mode = xcb_randr_get_screen_resources_modes(reply)[m];
+ qDebug() << " -- Mode:" << mode.id;
+ qDebug() << " - Size:" << mode.width <<"x"<<mode.height;
+ }
+ //qDebug() << " -- " << atomsToNames( (xcb_atom_t*) xcb_randr_get_screen_resources_modes(reply), xcb_randr_get_screen_resources_modes_length(reply) );
+ qDebug() << " - Names:" << xcb_randr_get_screen_resources_names_length(reply);
+ //qDebug() << " -- " << atomsToNames( (xcb_atom_t*) xcb_randr_get_screen_resources_names(reply), xcb_randr_get_screen_resources_names_length(reply));
+ for(int i=0; i<outputnum; i++){
+ xcb_randr_output_t output = xcb_randr_get_screen_resources_outputs(reply)[i];
+ //Now display the info about this output
+ xcb_randr_get_output_info_reply_t *info = xcb_randr_get_output_info_reply(QX11Info::connection(),
+ xcb_randr_get_output_info_unchecked(QX11Info::connection(), output, QX11Info::appTime()),
+ NULL);
+ qDebug() << "==== Output Information #"+QString::number(i);
+
+ //Modes
+ qDebug() << "Number of Modes:" << xcb_randr_get_output_info_modes_length(info);
+
+
+ //Clones
+ qDebug() << "Number of Clones:" << xcb_randr_get_output_info_clones_length(info);
+
+ //Names
+ int name_len = xcb_randr_get_output_info_name_length(info);
+ qDebug() << "Names:" << atomsToNames( (xcb_atom_t*) xcb_randr_get_output_info_name(info), name_len);
+ for(int n=0; n<name_len; n++){
+ QString name = atomToName( xcb_randr_get_output_info_name(info)[n] );
+ qDebug() << " -- " << name;
+ }
+
+ //Properties
+ xcb_randr_list_output_properties_reply_t *pinfo = xcb_randr_list_output_properties_reply(QX11Info::connection(),
+ xcb_randr_list_output_properties_unchecked(QX11Info::connection(), output),
+ NULL);
+ int pinfo_len = xcb_randr_list_output_properties_atoms_length(pinfo);
+ qDebug() << "Properties:" << pinfo_len;
+ for(int p=0; p<pinfo_len; p++){
+ xcb_atom_t atom = xcb_randr_list_output_properties_atoms(pinfo)[p];
+ //Property Name
+ QString name = atomToName(atom);
+ //Property Value
+ xcb_randr_query_output_property_reply_t *pvalue = xcb_randr_query_output_property_reply(QX11Info::connection(),
+ xcb_randr_query_output_property_unchecked(QX11Info::connection(), output, atom),
+ NULL);
+ QStringList values = atomsToNames ( (xcb_atom_t*) xcb_randr_query_output_property_valid_values(pvalue), xcb_randr_query_output_property_valid_values_length(pvalue) ); //need to read values
+ /*for(int v=0; v<xcb_randr_query_output_property_valid_values_length(pvalue); v++){
+ //values << QString::number(xcb_randr_query_output_property_valid_values(pvalue)[v] );
+ values << atomToName( xcb_randr_query_output_property_valid_values(pvalue)[v] );
+ }*/
+ free(pvalue);
+ qDebug() << " -- " << name << "=" << values;
+
+ }
+ free(pinfo);
+
+ free(info);
+ }
+
+ free(reply);
+}
+
+OutputDeviceList::~OutputDeviceList(){
+
+}
+
+//Simplification functions for dealing with multiple monitors
+void OutputDeviceList::setPrimaryMonitor(QString id){
+
+}
+
+void OutputDeviceList::disableMonitor(QString id){
+
+}
diff --git a/src-qt5/core/libLumina/LuminaRandR.cpp b/src-qt5/core/libLumina/LuminaRandR.cpp
deleted file mode 100644
index eefc5aa8..00000000
--- a/src-qt5/core/libLumina/LuminaRandR.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include "LuminaRandR.h"
diff --git a/src-qt5/core/libLumina/LuminaRandR.h b/src-qt5/core/libLumina/LuminaRandR.h
index 3cdff651..448c676d 100644
--- a/src-qt5/core/libLumina/LuminaRandR.h
+++ b/src-qt5/core/libLumina/LuminaRandR.h
@@ -1,35 +1,70 @@
//===========================================
// Lumina-DE source code
-// Copyright (c) 2016, Ken Moore
+// Copyright (c) 2017, Ken Moore
// Available under the 3-clause BSD license
// See the LICENSE file for full details
//===========================================
// This class governs all the xcb/randr interactions
// and provides simpler Qt-based functions for use elsewhere
//===========================================
+#ifndef _LUMINA_LIBRARY_RANDR_MONITORS_H
+#define _LUMINA_LIBRARY_RANDR_MONITORS_H
//Qt includes
#include <QSize>
+#include <QString>
+#include <QPoint>
+#include <QRect>
+#include <QList>
-#include "xcb/randr.h"
-class outputDevice{
+class OutputDevice{
public:
QString id; //output ID
bool enabled;
+ bool isPrimary;
//Monitor Geometry
QPoint geom; //geometry of monitor within session
//Monitor Resolution
QSize cRes; //current resolution of the monitor (could be different from geom.size() if panning is enabled)
QList<QSize> availRes; //available resolutions supported by the monitor
//Refresh Rate
- int cHz; //current refresh rate
- QList<int> availHz; //available refresh rates
+ //int cHz; //current refresh rate
+ //QList<int> availHz; //available refresh rates
//Expand this later to include:
// panning (current/possible)
// rotation (current/possible)
- //FUNCTIONS
-
- //Modification
+ //Global Listing of Devices
+ static QList<OutputDevice> availableMonitors();
+
+ //FUNCTIONS (do not use directly - use the static list function instead)
+ OutputDevice();
+ ~OutputDevice();
+
+ //Modification
+ bool setAsPrimary();
+ bool disable();
+ void enable(QRect geom = QRect()); //if no geom provided, will add as the right-most screen at optimal resolution
+ void changeResolution(QSize);
+
+ //Now define a simple public_objects class so that each implementation
+ // has a storage container for placing private objects as needed
+ class p_objects;
+ p_objects* p_obj;
+};
+
+class OutputDeviceList : public QList<OutputDevice>{
+public:
+ OutputDeviceList();
+ ~OutputDeviceList();
+
+ //Simplification functions for dealing with multiple monitors
+ void setPrimaryMonitor(QString id);
+ void disableMonitor(QString id);
+ //void enableMonitor(QString id,
+
+private:
+
};
+#endif
diff --git a/src-qt5/core/libLumina/LuminaRandR.pri b/src-qt5/core/libLumina/LuminaRandR.pri
new file mode 100644
index 00000000..0812819f
--- /dev/null
+++ b/src-qt5/core/libLumina/LuminaRandR.pri
@@ -0,0 +1,12 @@
+#include("$${PWD}/../../OS-detect.pri")
+
+QT *= x11extras
+
+#X11/XCB includes
+LIBS *= -lxcb -lxcb-randr
+SOURCES *= $${PWD}/LuminaRandR-X11.cpp
+
+#General API/Header
+HEADERS *= $${PWD}/LuminaRandR.h
+
+INCLUDEPATH *= ${PWD}
diff --git a/src-qt5/core/libLumina/LuminaX11.cpp b/src-qt5/core/libLumina/LuminaX11.cpp
index a8016460..e9eb4b7c 100644
--- a/src-qt5/core/libLumina/LuminaX11.cpp
+++ b/src-qt5/core/libLumina/LuminaX11.cpp
@@ -1470,7 +1470,17 @@ void LXCB::WM_ICCCM_SetProtocols(WId win, LXCB::ICCCM_PROTOCOLS flags){
// _NET_SUPPORTED (Root)
void LXCB::WM_Set_Root_Supported(){
//NET_WM standards (ICCCM implied - no standard way to list those)
- xcb_atom_t list[] = {};
+ xcb_atom_t list[] = {EWMH._NET_WM_NAME,
+ EWMH._NET_WM_ICON,
+ EWMH._NET_WM_ICON_NAME,
+ EWMH._NET_WM_DESKTOP,
+ /*_NET_WINDOW_TYPE (and all the various types)*/
+ EWMH._NET_WM_WINDOW_TYPE, EWMH._NET_WM_WINDOW_TYPE_DESKTOP, EWMH._NET_WM_WINDOW_TYPE_DOCK,
+ EWMH._NET_WM_WINDOW_TYPE_TOOLBAR, EWMH._NET_WM_WINDOW_TYPE_MENU, EWMH._NET_WM_WINDOW_TYPE_UTILITY,
+ EWMH._NET_WM_WINDOW_TYPE_SPLASH, EWMH._NET_WM_WINDOW_TYPE_DIALOG, EWMH._NET_WM_WINDOW_TYPE_NORMAL,
+ EWMH._NET_WM_WINDOW_TYPE_DROPDOWN_MENU, EWMH._NET_WM_WINDOW_TYPE_POPUP_MENU, EWMH._NET_WM_WINDOW_TYPE_TOOLTIP,
+ EWMH._NET_WM_WINDOW_TYPE_NOTIFICATION, EWMH._NET_WM_WINDOW_TYPE_COMBO, EWMH._NET_WM_WINDOW_TYPE_DND,
+ };
xcb_ewmh_set_supported(&EWMH, QX11Info::appScreen(), 0,list);
}
@@ -1609,7 +1619,23 @@ WId LXCB::WM_Get_Active_Window(){
}
void LXCB::WM_Set_Active_Window(WId win){
- xcb_ewmh_set_active_window(&EWMH, QX11Info::appScreen(), win);
+ xcb_ewmh_set_active_window(&EWMH, QX11Info::appScreen(), win);
+ //Also send the active window a message to take input focus
+ //Send the window a WM_TAKE_FOCUS message
+ if(atoms.isEmpty()){ createWMAtoms(); } //need these atoms
+ xcb_client_message_event_t event;
+ event.response_type = XCB_CLIENT_MESSAGE;
+ event.format = 32;
+ event.window = win;
+ event.type = ATOMS[atoms.indexOf("WM_PROTOCOLS")];
+ event.data.data32[0] = ATOMS[atoms.indexOf("WM_TAKE_FOCUS")];
+ event.data.data32[1] = XCB_TIME_CURRENT_TIME; //CurrentTime;
+ event.data.data32[2] = 0;
+ event.data.data32[3] = 0;
+ event.data.data32[4] = 0;
+
+ xcb_send_event(QX11Info::connection(), 0, win, XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, (const char *) &event);
+ xcb_flush(QX11Info::connection());
}
// _NET_WORKAREA
diff --git a/src-qt5/core/libLumina/LuminaX11.h b/src-qt5/core/libLumina/LuminaX11.h
index 2c741111..2f66ce06 100644
--- a/src-qt5/core/libLumina/LuminaX11.h
+++ b/src-qt5/core/libLumina/LuminaX11.h
@@ -23,7 +23,6 @@
#include <QObject>
#include <QFlags>
-
#include <xcb/xcb_ewmh.h>
//SYSTEM TRAY STANDARD DEFINITIONS
@@ -67,6 +66,18 @@ public:
|| width_inc>=0 || height_inc>=0 || min_aspect_num>=0 || min_aspect_den>=0 || max_aspect_num>=0 || max_aspect_den>=0 \
|| base_width>=0 || base_height>=0 || win_gravity>0 );
}
+ bool validMaxSize(){
+ return (max_width>0 && max_width>=min_width) && (max_height>0 && max_height>=min_height);
+ }
+ bool validMinSize(){
+ return (min_width>0 && min_height>0);
+ }
+ bool validBaseSize(){
+ return (base_width>0 && base_height>0);
+ }
+ bool validSize(){ //only check this if the base sizes are invalid (this is the old spec and should not be used any more)
+ return (x>0 && y>0);
+ }
};
//simple data structure for passing around the XRANDR information
diff --git a/src-qt5/core/libLumina/LuminaXDG.cpp b/src-qt5/core/libLumina/LuminaXDG.cpp
index d92285c5..38128fc7 100644
--- a/src-qt5/core/libLumina/LuminaXDG.cpp
+++ b/src-qt5/core/libLumina/LuminaXDG.cpp
@@ -127,9 +127,8 @@ void XDGDesktop::sync(){
else if(var=="Type" && insection){
if(val.toLower()=="application"){ type = XDGDesktop::APP; }
else if(val.toLower()=="link"){ type = XDGDesktop::LINK; }
- else if(val.toLower()=="dir"){ type = XDGDesktop::DIR; }
+ else if(val.toLower().startsWith("dir")){ type = XDGDesktop::DIR; } //older specs are "Dir", newer specs are "Directory"
else{ type = XDGDesktop::BAD; } //Unknown type
- //hasType = true;
}
} //end reading file
file.clear(); //done with contents of file
@@ -176,7 +175,7 @@ bool XDGDesktop::isValid(bool showAll){
//if(DEBUG && !ok){ qDebug() << " - Link with missing URL"; }
break;
case XDGDesktop::DIR:
- ok = !path.isEmpty();
+ ok = !path.isEmpty() && QFile::exists(path);
//if(DEBUG && !ok){ qDebug() << " - Dir with missing path"; }
break;
default:
diff --git a/src-qt5/core/libLumina/NativeWindow.cpp b/src-qt5/core/libLumina/NativeWindow.cpp
new file mode 100644
index 00000000..bd42ecaa
--- /dev/null
+++ b/src-qt5/core/libLumina/NativeWindow.cpp
@@ -0,0 +1,37 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#include "NativeWindow.h"
+
+// === PUBLIC ===
+NativeWindow::NativeWindow(WId id) : QObject(){
+ winid = id;
+ WIN = QWindow::fromWinId(winid);
+}
+
+NativeWindow::~NativeWindow(){
+ hash.clear();
+ //WIN->deleteLater(); //This class only deals with Native windows which were created outside the app - they need to be cleaned up outside the app too
+}
+
+WId NativeWindow::id(){
+ return winid;
+}
+
+QWindow* NativeWindow::window(){
+ return WIN;
+}
+
+QVariant NativeWindow::property(NativeWindow::Property prop){
+ if(hash.contains(prop)){ return hash.value(prop); }
+ return QVariant(); //null variant
+}
+
+void NativeWindow::setProperty(NativeWindow::Property prop, QVariant val){
+ if(prop == NativeWindow::None){ return; }
+ hash.insert(prop, val);
+ emit PropertyChanged(prop, val);
+}
diff --git a/src-qt5/core/libLumina/NativeWindow.h b/src-qt5/core/libLumina/NativeWindow.h
new file mode 100644
index 00000000..59b955c3
--- /dev/null
+++ b/src-qt5/core/libLumina/NativeWindow.h
@@ -0,0 +1,81 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+// This is a container object for setting/announcing changes
+// in a native window's properties.
+// The WM will usually run the "setProperty" function on this object,
+// and any other classes/widgets which watch this window can act appropriatly after-the-fact
+// Non-WM classes should use the "Request" signals to ask the WM to do something, and listen for changes later
+//===========================================
+#ifndef _LUMINA_DESKTOP_NATIVE_WINDOW_H
+#define _LUMINA_DESKTOP_NATIVE_WINDOW_H
+
+#include <QString>
+#include <QRect>
+#include <QSize>
+#include <QObject>
+#include <QWindow>
+#include <QHash>
+#include <QVariant>
+
+class NativeWindow : public QObject{
+ Q_OBJECT
+public:
+ enum State{ S_MODAL, S_STICKY, S_MAX_VERT, S_MAX_HORZ, S_SHADED, S_SKIP_TASKBAR, S_SKIP_PAGER, S_HIDDEN, S_FULLSCREEN, S_ABOVE, S_BELOW, S_ATTENTION };
+ enum Type{T_DESKTOP, T_DOCK, T_TOOLBAR, T_MENU, T_UTILITY, T_SPLASH, T_DIALOG, T_DROPDOWN_MENU, T_POPUP_MENU, T_TOOLTIP, T_NOTIFICATION, T_COMBO, T_DND, T_NORMAL };
+ enum Action {A_MOVE, A_RESIZE, A_MINIMIZE, A_SHADE, A_STICK, A_MAX_VERT, A_MAX_HORZ, A_FULLSCREEN, A_CHANGE_DESKTOP, A_CLOSE, A_ABOVE, A_BELOW};
+
+ enum Property{ /*QVariant Type*/
+ None, /*null*/
+ MinSize, /*QSize*/
+ MaxSize, /*QSize*/
+ Size, /*QSize*/
+ GlobalPos, /*QPoint*/
+ Title, /*QString*/
+ ShortTitle, /*QString*/
+ Icon, /*QIcon*/
+ Name, /*QString*/
+ Workspace, /*int*/
+ States, /*QList<NativeWindow::State> : Current state of the window */
+ WinTypes, /*QList<NativeWindow::Type> : Current type of window (typically does not change)*/
+ WinActions, /*QList<NativeWindow::Action> : Current actions that the window allows (Managed/set by the WM)*/
+ Active, /*bool*/
+ Visible /*bool*/
+ };
+
+
+ NativeWindow(WId id);
+ ~NativeWindow();
+
+ WId id();
+ QWindow* window();
+
+ QVariant property(NativeWindow::Property);
+ void setProperty(NativeWindow::Property, QVariant);
+
+private:
+ QHash <NativeWindow::Property, QVariant> hash;
+ QWindow *WIN;
+ WId winid;
+
+signals:
+ //General Notifications
+ void PropertyChanged(NativeWindow::Property, QVariant);
+ void WindowClosed(WId);
+
+ //Action Requests (not automatically emitted - typically used to ask the WM to do something)
+ //Note: "WId" should be the NativeWindow id()
+ void RequestActivate(WId); //Activate the window
+ void RequestClose(WId); //Close the window
+ void RequestSetVisible(WId, bool); //Minimize/restore visiblility
+ void RequestSetGeometry(WId, QRect); //Register the location/size of the window
+ void RequestSetFrameExtents(WId, QList<int>); //Register the size of the frame around the window [Left,Right, Top,Bottom] in pixels
+
+ // System Tray Icon Embed/Unembed Requests
+ //void RequestEmbed(WId, QWidget*);
+ //void RequestUnEmbed(WId, QWidget*);
+};
+#endif
diff --git a/src-qt5/core/libLumina/NativeWindow.pri b/src-qt5/core/libLumina/NativeWindow.pri
new file mode 100644
index 00000000..4a585a06
--- /dev/null
+++ b/src-qt5/core/libLumina/NativeWindow.pri
@@ -0,0 +1,8 @@
+
+# Files
+SOURCES *= $${PWD}/NativeWindow.cpp
+
+HEADERS *= $${PWD}/NativeWindow.h
+
+INCLUDEPATH *= ${PWD}
+
diff --git a/src-qt5/core/libLumina/NativeWindowSystem.cpp b/src-qt5/core/libLumina/NativeWindowSystem.cpp
new file mode 100644
index 00000000..c8e6d483
--- /dev/null
+++ b/src-qt5/core/libLumina/NativeWindowSystem.cpp
@@ -0,0 +1,221 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+// This is the XCB version of the NativeWindowSystem class,
+// used for interacting with the X11 display system on BSD/Linux/Unix systems
+//===========================================
+#include "NativeWindowSystem.h"
+
+//Additional Qt includes
+#include <QX11Info>
+#include <QDebug>
+
+//XCB Library functions
+#include <xcb/xcb_ewmh.h>
+
+//XCB Library includes
+#include <xcb/xcb.h>
+#include <xcb/xcb_atom.h>
+#include <xcb/xproto.h>
+#include <xcb/xcb_ewmh.h>
+#include <xcb/xcb_icccm.h>
+#include <xcb/xcb_image.h>
+#include <xcb/xcb_aux.h>
+#include <xcb/composite.h>
+#include <xcb/damage.h>
+
+//XLib includes (XCB Damage lib does not appear to register for damage events properly)
+#include <X11/extensions/Xdamage.h>
+
+//SYSTEM TRAY STANDARD DEFINITIONS
+#define _NET_SYSTEM_TRAY_ORIENTATION_HORZ 0
+#define _NET_SYSTEM_TRAY_ORIENTATION_VERT 1
+#define SYSTEM_TRAY_REQUEST_DOCK 0
+#define SYSTEM_TRAY_BEGIN_MESSAGE 1
+#define SYSTEM_TRAY_CANCEL_MESSAGE 2
+
+#define URGENCYHINT (1L << 8) //For window urgency detection
+
+#define ROOT_WIN_EVENT_MASK (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | \
+ XCB_EVENT_MASK_BUTTON_PRESS | \
+ XCB_EVENT_MASK_STRUCTURE_NOTIFY | \
+ XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | \
+ XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | \
+ XCB_EVENT_MASK_POINTER_MOTION | \
+ XCB_EVENT_MASK_PROPERTY_CHANGE | \
+ XCB_EVENT_MASK_FOCUS_CHANGE | \
+ XCB_EVENT_MASK_ENTER_WINDOW)
+
+//Internal XCB private objects class
+class NativeWindowSystem::p_objects{
+public:
+ xcb_ewmh_connection_t EWMH; //This is where all the screen info and atoms are located
+ QHash<QString, xcb_atom_t> ATOMS;
+ xcb_screen_t *root_screen;
+ xcb_window_t root_window, wm_window, tray_window;
+
+ //Functions for setting up these objects as needed
+ bool init_ATOMS(){
+ QStringList atoms;
+ atoms << "WM_TAKE_FOCUS" << "WM_DELETE_WINDOW" << "WM_PROTOCOLS" << "WM_CHANGE_STATE" << "_NET_SYSTEM_TRAY_OPCODE" << "_NET_SYSTEM_TRAY_ORIENTATION" << "_NET_SYSTEM_TRAY_VISUAL" << QString("_NET_SYSTEM_TRAY_S%1").arg(QString::number(QX11Info::appScreen()));
+ //Create all the requests for the atoms
+ QList<xcb_intern_atom_reply_t*> reply;
+ for(int i=0; i<atoms.length(); i++){
+ reply << xcb_intern_atom_reply(QX11Info::connection(), \
+ xcb_intern_atom(QX11Info::connection(), 0, atoms[i].length(), atoms[i].toLocal8Bit()), NULL);
+ }
+ //Now evaluate all the requests and save the atoms
+ for(int i=0; i<reply.length(); i++){ //NOTE: this will always be the same length as the "atoms" list
+ if(reply[i]!=0){
+ obj->ATOMS.insert(atoms[i], reply[i]->atom);
+ free(reply[i]); //done with this reply
+ }else{
+ //Invalid atom - could not be created
+ qDebug() << "Could not initialize XCB atom:" << atoms[i];
+ }
+ } //loop over reply
+ return (obj->ATOMS.keys.length() == atoms.length());
+ }
+
+ bool register_wm(){
+ uint32_t value_list[1] = {ROOT_WIN_EVENT_MASK};
+ xcb_generic_error_t *status = xcb_request_check( QX11Info::connection(), xcb_change_window_attributes_checked(QX11Info::connection(), root_window, XCB_CW_EVENT_MASK, value_list));
+ if(status!=0){ return false; }
+ uint32_t params[] = {1};
+ wm_window = xcb_generate_id(QX11Info::connection()); //need a new ID
+ xcb_create_window(QX11Info::connection(), root_screen->root_depth, \
+ win, root_window, -1, -1, 1, 1, 0, \
+ XCB_WINDOW_CLASS_INPUT_OUTPUT, root_screen->root_visual, \
+ XCB_CW_OVERRIDE_REDIRECT, params);
+ if(wm_window==0){ return false; }
+ //Set the _NET_SUPPORTING_WM property on the root window first
+ xcb_ewmh_set_supporting_wm_check(&EWMH, root_window, wm_window);
+ //Also set this property on the child window (pointing to itself)
+ xcb_ewmh_set_supporting_wm_check(&EWMH, wm_window, wm_window);
+ //Now also setup the root event mask on the wm_window
+ status = xcb_request_check( QX11Info::connection(), xcb_change_window_attributes_checked(QX11Info::connection(), wm_window, XCB_CW_EVENT_MASK, value_list));
+ if(status!=0){ return false; }
+ return true;
+ }
+
+ bool startSystemTray{
+ xcb_atom_t _NET_SYSTEM_TRAY_S = ATOMS.value(QString("_NET_SYSTEM_TRAY_S%1").arg(QString::number(QX11Info::appScreen())) );
+ //Make sure that there is no other system tray running
+ xcb_get_selection_owner_reply_t *ownreply = xcb_get_selection_owner_reply(QX11Info::connection(), \
+ xcb_get_selection_owner_unchecked(QX11Info::connection(), _NET_SYSTEM_TRAY_S), NULL);
+ if(ownreply==0){
+ qWarning() << " - Could not get owner selection reply";
+ return false;
+ }else if(ownreply->owner != 0){
+ free(ownreply);
+ qWarning() << " - An alternate system tray is currently in use";
+ return false;
+ }
+ free(ownreply);
+ //Now create the window to use (just offscreen)
+ //TODO
+ }
+
+}; //end private objects class
+
+
+//inline functions for setting up the internal objects
+
+
+// === PUBLIC ===
+NativeWindowSystem::NativeWindowSystem() : QObject(){
+ obj = 0;
+}
+
+NativeWindowSystem::~NativeWindowSystem(){
+ xcb_ewmh_connection_wipe(obj->EWMH);
+ free(obj);
+}
+
+//Overarching start/stop functions
+bool NativeWindowSystem::start(){
+ //Initialize the XCB/EWMH objects
+ if(obj==0){
+ obj = new p_objects(); } //instantiate the private objects
+ obj->wm_window = 0;
+ obj->tray_window = 0;
+ xcb_intern_atom_cookie_t *cookie = xcb_ewmh_init_atoms(QX11Info::connection(), &obj->EWMH);
+ if(!xcb_ewmh_init_atoms_replies(&obj->EWMH, cookie, NULL) ){
+ qDebug() << "Error with XCB atom initializations";
+ return false;
+ }
+ obj->root_screen = xcb_aux_get_screen(QX11Info::connection(), QX11Info::appScreen());
+ obj->root_window = obj->root_screen->root; //simplification for later - minor duplication of memory (unsigned int)
+ //Initialize all the extra atoms that the EWMH object does not have
+ if( !obj->init_ATOMS() ){ return false; }
+ } //Done with private object init
+
+ return true;
+}
+
+void NativeWindowSystem::stop(){
+
+}
+
+// === PRIVATE ===
+void NativeWindowSystem::UpdateWindowProperties(NativeWindow* win, QList< NativeWindow::Property > props){
+
+}
+
+// === PUBLIC SLOTS ===
+//These are the slots which are only used by the desktop system itself or the NativeWindowEventFilter
+void NativeWindowSystem::RegisterVirtualRoot(WId){
+
+}
+
+//NativeWindowEventFilter interactions
+void NativeWindowSystem::NewWindowDetected(WId){
+
+}
+
+void NativeWindowSystem::WindowCloseDetected(WId){
+
+}
+
+void NativeWindowSystem::WindowPropertyChanged(WId, NativeWindow::Property){
+
+}
+
+void NativeWindowSystem::NewKeyPress(int keycode){
+
+}
+
+void NativeWindowSystem::NewKeyRelease(int keycode){
+
+}
+
+void NativeWindowSystem::NewMousePress(int buttoncode){
+
+}
+
+void NativeWindowSystem::NewMouseRelease(int buttoncode){
+
+}
+
+// === PRIVATE SLOTS ===
+//These are the slots which are built-in and automatically connected when a new NativeWindow is created
+void NativeWindowSystem::RequestActivate(WId){
+
+}
+void NativeWindowSystem::RequestClose(WId){
+
+}
+
+void NativeWindowSystem::RequestSetVisible(WId, bool){
+
+}
+void NativeWindowSystem::RequestSetGeometry(WId, QRect){
+
+}
+void NativeWindowSystem::RequestSetFrameExtents(WId, QList<int>){
+ //[Left,Top,Right,Bottom] in pixels
+
+}
diff --git a/src-qt5/core/libLumina/NativeWindowSystem.h b/src-qt5/core/libLumina/NativeWindowSystem.h
new file mode 100644
index 00000000..ef169059
--- /dev/null
+++ b/src-qt5/core/libLumina/NativeWindowSystem.h
@@ -0,0 +1,92 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+// This is a Qt5/Lumina wrapper around native graphics system calls
+// It is primarily designed around the creation/modification of instances of
+// the "NativeWindow" class for passing information around
+//===========================================
+#ifndef _LUMINA_NATIVE_WINDOW_SYSTEM_H
+#define _LUMINA_NATIVE_WINDOW_SYSTEM_H
+
+#include "NativeWindow.h"
+
+class NativeWindowSystem : public QObject{
+ Q_OBJECT
+private:
+ QList<NativeWindow*> NWindows;
+ QList<NativeWindow*> TWindows;
+
+ //Simplifications to find an already-created window object
+ NativeWindow* findWindow(WId id){
+ for(int i=0; i<NWindows.length(); i++){
+ if(id==NWindows[i]->id()){ return NWindows[i]; }
+ }
+ }
+
+ NativeWindow* findTrayWindow(WId id){
+ for(int i=0; i<TWindows.length(); i++){
+ if(id==TWindows[i]->id()){ return TWindows[i]; }
+ }
+ }
+
+ //Now define a simple private_objects class so that each implementation
+ // has a storage container for placing private objects as needed
+ class p_objects;
+ p_objects* obj;
+
+ // Since some properties may be easier to update in bulk
+ // let the native system interaction do them in whatever logical groups are best
+ void UpdateWindowProperties(NativeWindow* win, QList< NativeWindow::Property > props);
+
+public:
+ NativeWindowSystem();
+ ~NativeWindowSystem();
+
+ //Overarching start/stop functions
+ bool start();
+ void stop();
+
+ //General-purpose listing functions
+ QList<NativeWindow*> currentWindows(){ return NWindows; }
+
+public slots:
+ //These are the slots which are typically only used by the desktop system itself or the NativeWindowEventFilter
+
+ //RootWindow interactions
+ void RegisterVirtualRoot(WId);
+ //void GoToWorkspace(int);
+ //void RegisterWorkspaces(QStringList); //Names of workspaces, in ascending order
+ //void RegisterKnownInteractions();
+
+
+ //NativeWindowEventFilter interactions
+ void NewWindowDetected(WId); //will automatically create the new NativeWindow object
+ void WindowCloseDetected(WId); //will update the lists and make changes if needed
+ void WindowPropertyChanged(WId, NativeWindow::Property); //will rescan the window and update the object as needed
+ void NewKeyPress(int keycode);
+ void NewKeyRelease(int keycode);
+ void NewMousePress(int buttoncode);
+ void NewMouseRelease(int buttoncode);
+ void CheckDamageID(WId);
+
+private slots:
+ //These are the slots which are built-in and automatically connected when a new NativeWindow is created
+ void RequestActivate(WId);
+ void RequestClose(WId);
+ void RequestSetVisible(WId, bool);
+ void RequestSetGeometry(WId, QRect);
+ void RequestSetFrameExtents(WId, QList<int>); //[Left,Right,Top,Bottom] in pixels
+
+signals:
+ void NewWindowAvailable(NativeWindow*);
+ void NewInputEvent(); //a mouse or keypress was detected (lock-state independent);
+ void NewKeyPress(int); //only emitted if lockstate = false
+ void NewKeyRelease(int); //only emitted if lockstate = false
+ void NewMousePress(Qt::MouseButton); //only emitted if lockstate = false
+
+};
+
+#endif
diff --git a/src-qt5/core/libLumina/RootSubWindow.cpp b/src-qt5/core/libLumina/RootSubWindow.cpp
new file mode 100644
index 00000000..7be89f48
--- /dev/null
+++ b/src-qt5/core/libLumina/RootSubWindow.cpp
@@ -0,0 +1,110 @@
+//===========================================
+// Lumina Desktop source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#include "RootSubWindow.h"
+#include <QDebug>
+
+// === PUBLIC ===
+RootSubWindow::RootSubWindow(QMdiArea *root, NativeWindow *win) : QMdiSubWindow(0){
+ this->setAttribute(Qt::WA_DeleteOnClose);
+ //Create the QWindow and QWidget containers for the window
+ WIN = win;
+ closing = false;
+ WinWidget = QWidget::createWindowContainer( WIN->window(), this);
+ this->setWidget(WinWidget);
+ LoadProperties( QList< NativeWindow::Property>() << NativeWindow::WindowFlags << NativeWindow::Title << NativeWindow::Icon \
+ << NativeWindow::MinSize << NativeWindow::MaxSize << NativeWindow::Size );
+ //Hookup the signals/slots
+ connect(this, SIGNAL(aboutToActivate()), this, SLOT(aboutToActivate()) );
+ connect(WIN, SIGNAL(PropertyChanged(NativeWindow::Property, QVariant)), this, SLOT(propertyChanged(NativeWindow::Property, QVariant)));
+ //Now add this window to the root QMdiArea
+ root->addSubWindow(this);
+ //Make sure the visibily property only gets loaded after it is added to the root area
+ propertyChanged(NativeWindow::Visible, WIN->property(NativeWindow::Visible));
+}
+
+RootSubWindow::~RootSubWindow(){
+
+}
+
+WId RootSubWindow::id(){
+ return WIN->id();
+}
+
+// === PRIVATE ===
+void RootSubWindow::LoadProperties( QList< NativeWindow::Property> list){
+ for(int i=0; i<list.length(); i++){
+ propertyChanged( list[i], WIN->property(list[i]) );
+ }
+}
+
+// === PUBLIC SLOTS ===
+void RootSubWindow::clientClosed(){
+ qDebug() << "Client Closed";
+ closing = true;
+ this->close();
+}
+
+void RootSubWindow::clientHidden(){
+ qDebug() << "Client Hidden";
+ this->hide();
+}
+
+void RootSubWindow::clientShown(){
+ qDebug() << "Client Shown";
+ this->show();
+}
+
+// === PRIVATE SLOTS ===
+void RootSubWindow::aboutToActivate(){
+ WIN->emit RequestActivate(WIN->id());
+}
+
+void RootSubWindow::propertyChanged(NativeWindow::Property prop, QVariant val){
+ if(val.isNull()){ return; } //not the same as a default/empty value - the property has just not been set yet
+ qDebug() << "Set Window Property:" << prop << val;
+ switch(prop){
+ case NativeWindow::Visible:
+ if(val.toBool()){ clientShown(); }
+ else{ clientHidden(); }
+ break;
+ case NativeWindow::Title:
+ this->setWindowTitle(val.toString());
+ break;
+ case NativeWindow::Icon:
+ this->setWindowIcon(val.value< QIcon>());
+ break;
+ case NativeWindow::Size:
+ this->resize(val.toSize());
+ break;
+ case NativeWindow::MinSize:
+ this->setMinimumSize(val.toSize());
+ break;
+ case NativeWindow::MaxSize:
+ this->setMaximumSize(val.toSize());
+ break;
+ case NativeWindow::Active:
+ if(val.toBool()){ this->mdiArea()->setActiveSubWindow(this); }
+ break;
+ case NativeWindow::WindowFlags:
+ this->setWindowFlags( val.value< Qt::WindowFlags >() );
+ break;
+ default:
+ qDebug() << "Window Property Unused:" << prop << val;
+ }
+}
+
+// === PROTECTED ===
+void RootSubWindow::closeEvent(QCloseEvent *ev){
+ if(!closing){
+ //qDebug() << "Close Window By Button:" << WIN->id();
+ ev->ignore();
+ WIN->emit RequestClose(WIN->id());
+ }else{
+ QMdiSubWindow::closeEvent(ev);
+ }
+
+}
diff --git a/src-qt5/core/libLumina/RootSubWindow.h b/src-qt5/core/libLumina/RootSubWindow.h
new file mode 100644
index 00000000..c56f3c96
--- /dev/null
+++ b/src-qt5/core/libLumina/RootSubWindow.h
@@ -0,0 +1,51 @@
+//===========================================
+// Lumina Desktop source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+// This class embeds a native window
+// within the RootWindow area
+//===========================================
+#ifndef _LUMINA_ROOT_WINDOW_SUB_WINDOW_H
+#define _LUMINA_ROOT_WINDOW_SUB_WINDOW_H
+
+#include <QMdiArea>
+#include <QMdiSubWindow>
+#include <QWindow>
+#include <QWidget>
+#include <QCloseEvent>
+
+#include <NativeWindow.h>
+
+class RootSubWindow : public QMdiSubWindow{
+ Q_OBJECT
+public:
+ RootSubWindow(QMdiArea *root, NativeWindow *win);
+ ~RootSubWindow();
+
+ WId id();
+
+private:
+ NativeWindow *WIN;
+ QWidget *WinWidget;
+ bool closing;
+
+ void LoadProperties( QList< NativeWindow::Property> list);
+
+public slots:
+ void clientClosed();
+
+private slots:
+ void clientHidden();
+ void clientShown();
+ void aboutToActivate();
+ void propertyChanged(NativeWindow::Property, QVariant);
+
+
+protected:
+ void closeEvent(QCloseEvent*);
+
+};
+
+#endif
diff --git a/src-qt5/core/libLumina/RootWindow.cpp b/src-qt5/core/libLumina/RootWindow.cpp
index aa5957b5..0758653b 100644
--- a/src-qt5/core/libLumina/RootWindow.cpp
+++ b/src-qt5/core/libLumina/RootWindow.cpp
@@ -11,7 +11,7 @@
#include <QDebug>
// === PUBLIC ===
-RootWindow::RootWindow() : QWidget(0, Qt::Window | Qt::BypassWindowManagerHint | Qt::WindowStaysOnBottomHint){
+RootWindow::RootWindow() : QMdiArea(0){ //QWidget(0, Qt::Window | Qt::BypassWindowManagerHint | Qt::WindowStaysOnBottomHint){
qRegisterMetaType<WId>("WId");
autoResizeTimer = 0;
}
@@ -166,13 +166,32 @@ void RootWindow::ChangeWallpaper(QString id, RootWindow::ScaleType scale, QStrin
}
+void RootWindow::NewWindow(NativeWindow *win){
+ RootSubWindow *subwin = 0;
+ for(int i=0; i<WINDOWS.length() && subwin==0; i++){
+ if(WINDOWS[i]->id() == win->id()){ subwin = WINDOWS[i]; }
+ }
+ if(subwin==0){
+ subwin = new RootSubWindow(this, win);
+ connect(win, SIGNAL(WindowClosed(WId)), this, SLOT(CloseWindow(WId)) );
+ WINDOWS << subwin;
+ }
+ //subwin->show();
+}
+
+void RootWindow::CloseWindow(WId win){
+ for(int i=0; i<WINDOWS.length(); i++){
+ if(WINDOWS[i]->id() == win){ WINDOWS.takeAt(i)->clientClosed(); break; }
+ }
+}
+
// === PRIVATE SLOTS ===
// === PROTECTED ===
void RootWindow::paintEvent(QPaintEvent *ev){
//qDebug() << "RootWindow: PaintEvent:" << ev->rect(); //<< QDateTime::currentDateTime()->toString(QDateTime::ShortDate);
bool found = false;
- QPainter painter(this);
+ QPainter painter(this->viewport());
for(int i=0; i<WALLPAPERS.length(); i++){
if(WALLPAPERS[i].area.intersects(ev->rect()) ){
found = true;
diff --git a/src-qt5/core/libLumina/RootWindow.h b/src-qt5/core/libLumina/RootWindow.h
index b371d239..5d3bc963 100644
--- a/src-qt5/core/libLumina/RootWindow.h
+++ b/src-qt5/core/libLumina/RootWindow.h
@@ -18,8 +18,12 @@
#include <QTimer>
#include <QApplication>
#include <QPaintEvent>
+#include <QMdiArea>
-class RootWindow : public QWidget{
+#include "RootSubWindow.h"
+#include "NativeWindow.h"
+
+class RootWindow : public QMdiArea{
Q_OBJECT
public:
enum ScaleType{ SolidColor, Stretch, Full, Fit, Center, Tile, BottomLeft, BottomRight, BottomCenter, \
@@ -43,11 +47,17 @@ private:
QList<screeninfo> WALLPAPERS;
void updateScreenPixmap(screeninfo *info); //used for recalculating the wallpaper pixmap based on file/area/scale as needed
+ //Window Management
+ QList<RootSubWindow*> WINDOWS;
+
public slots:
void ResizeRoot();
void ChangeWallpaper(QString id, RootWindow::ScaleType scale, QString file);
//Note: for "SingleColor" scaling the "file" variable should be "rgb(R,G,B)" or "#hexcode"
+ void NewWindow(NativeWindow*);
+ void CloseWindow(WId); //automatically connected for any new native window
+
private slots:
protected:
diff --git a/src-qt5/core/libLumina/RootWindow.pri b/src-qt5/core/libLumina/RootWindow.pri
index 7ef3efb0..35e0e770 100644
--- a/src-qt5/core/libLumina/RootWindow.pri
+++ b/src-qt5/core/libLumina/RootWindow.pri
@@ -1,9 +1,13 @@
# Files
-SOURCES *= $${PWD}/RootWindow.cpp
-HEADERS *= $${PWD}/RootWindow.h
+SOURCES *= $${PWD}/RootWindow.cpp \
+ $${PWD}/RootSubWindow.cpp
+
+HEADERS *= $${PWD}/RootWindow.h \
+ $${PWD}/RootSubWindow.h
INCLUDEPATH *= ${PWD}
-# include LUtils and LuminaX11
+# include other library dependencies
include(LUtils.pri)
+include(NativeWindow.pri);
diff --git a/src-qt5/core/libLumina/test/main.cpp b/src-qt5/core/libLumina/test/main.cpp
new file mode 100644
index 00000000..309fb938
--- /dev/null
+++ b/src-qt5/core/libLumina/test/main.cpp
@@ -0,0 +1,13 @@
+
+#include "../LuminaRandR.h"
+#include <QDebug>
+#include <QApplication>
+
+int main(int argc, char** argv){
+ QApplication A(argc, argv);
+ qDebug() << "Starting monitor scan...";
+ QList<OutputDevice> outputs = OutputDevice::availableMonitors();
+ qDebug() << "Finished monitor Scan";
+ OutputDeviceList();
+ return 0;
+}
diff --git a/src-qt5/core/libLumina/test/test.pro b/src-qt5/core/libLumina/test/test.pro
new file mode 100644
index 00000000..9674801b
--- /dev/null
+++ b/src-qt5/core/libLumina/test/test.pro
@@ -0,0 +1,7 @@
+QT = core gui widgets
+
+TARGET = test
+
+SOURCES += main.cpp
+
+include(../LuminaRandR.pri)
diff --git a/src-qt5/core/lumina-desktop-unified/LSession.cpp b/src-qt5/core/lumina-desktop-unified/LSession.cpp
index cb0144d5..1c8d3c45 100644
--- a/src-qt5/core/lumina-desktop-unified/LSession.cpp
+++ b/src-qt5/core/lumina-desktop-unified/LSession.cpp
@@ -24,11 +24,12 @@ RootWindow* Lumina::ROOTWIN = 0;
XDGDesktopList* Lumina::APPLIST = 0;
LShortcutEvents* Lumina::SHORTCUTS = 0;
-LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lumina-desktop"){
+LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lumina-desktop-unified"){
//Initialize the global objects to null pointers
mediaObj = 0; //private object used for playing login/logout chimes
if(this->isPrimaryProcess()){
//Setup the global registrations
+ qsrand(QDateTime::currentMSecsSinceEpoch());
this->setApplicationName("Lumina Desktop Environment");
this->setApplicationVersion( LDesktopUtils::LuminaDesktopVersion() );
this->setOrganizationName("LuminaDesktopEnvironment");
@@ -41,7 +42,7 @@ LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lu
//this->setAttribute(Qt::AA_UseHighDpiPixmaps); //allow pixmaps to be scaled up as well as down
//Now initialize the global objects (but do not start them yet)
- Lumina::EFILTER = new EventFilter(); //Need the XCB Event filter
+ Lumina::EFILTER = new EventFilter(); //Need the XCB Event filter first
Lumina::SETTINGS = new DesktopSettings();
Lumina::SS = new LScreenSaver();
//Lumina::WM = new LWindowManager();
@@ -60,7 +61,7 @@ LSession::LSession(int &argc, char ** argv) : LSingleApplication(argc, argv, "lu
//Setup the various connections between the global classes
// NOTE: Most of these connections will only become "active" as the global objects get started during the setupSession routine
connect(Lumina::ROOTWIN, SIGNAL(RegisterVirtualRoot(WId)), Lumina::EFILTER, SLOT(RegisterVirtualRoot(WId)) );
-
+ connect(Lumina::EFILTER, SIGNAL(WindowCreated(NativeWindow*)), Lumina::ROOTWIN, SLOT(NewWindow(NativeWindow*)) );
} //end check for primary process
}
@@ -176,7 +177,7 @@ void LSession::setupSession(){
Lumina::SHORTCUTS->start(); //Startup the shortcut handler now
//for(int i=0; i<4; i++){ LSession::processEvents(); } //Again, just a few event loops here so thing can settle before we close the splash screen
//launchStartupApps();
- //QTimer::singleShot(500, this, SLOT(launchStartupApps()) );
+ QTimer::singleShot(500, this, SLOT(launchStartupApps()) );
splash.hide();
LSession::processEvents();
splash.close();
@@ -279,7 +280,7 @@ void LSession::launchStartupApps(){
LOS::setScreenBrightness( tmp );
qDebug() << " - - Screen Brightness:" << QString::number(tmp)+"%";
}
- QProcess::startDetached("nice lumina-open -autostart-apps");
+ //ExternalProcess::launch("nice lumina-open -autostart-apps");
//Re-load the screen brightness and volume settings from the previous session
// Wait until after the XDG-autostart functions, since the audio system might be started that way
diff --git a/src-qt5/core/lumina-desktop-unified/global-includes.h b/src-qt5/core/lumina-desktop-unified/global-includes.h
index 6a753cd1..867076db 100644
--- a/src-qt5/core/lumina-desktop-unified/global-includes.h
+++ b/src-qt5/core/lumina-desktop-unified/global-includes.h
@@ -57,6 +57,8 @@
#include <LuminaSingleApplication.h>
#include <DesktopSettings.h>
#include <RootWindow.h>
+#include <ExternalProcess.h>
+#include <NativeWindow.h>
// Standard C includes
#include <unistd.h>
diff --git a/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro b/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro
index 497ce635..1de8308d 100644
--- a/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro
+++ b/src-qt5/core/lumina-desktop-unified/lumina-desktop.pro
@@ -17,6 +17,7 @@ include(../libLumina/LuminaSingleApplication.pri)
include(../libLumina/LuminaThemes.pri)
include(../libLumina/DesktopSettings.pri)
include(../libLumina/RootWindow.pri)
+include(../libLumina/ExternalProcess.pri)
#include all the main individual source groups
include(src-screensaver/screensaver.pri)
diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp b/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp
index fa4af5ba..e363af01 100644
--- a/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp
+++ b/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.cpp
@@ -24,7 +24,7 @@ void DesktopContextMenu::UpdateMenu(){
for(int i=0; i<items.length(); i++){
if(items[i]=="terminal"){ this->addAction(LXDG::findIcon("utilities-terminal",""), tr("Terminal"))->setWhatsThis("lumina-open -terminal"); }
else if(items[i]=="lockdesktop"){ this->addAction(LXDG::findIcon("system-lock-screen",""), tr("Lock Session"), this, SIGNAL(LockSession()) ); }
- else if(items[i]=="filemanager"){ this->addAction( LXDG::findIcon("user-home",""), tr("Browse Files"))->setWhatsThis("lumina-open ~"); }
+ else if(items[i]=="filemanager"){ this->addAction( LXDG::findIcon("user-home",""), tr("Browse Files"))->setWhatsThis("lumina-open \""+QDir::homePath()+"\""); }
//else if(items[i]=="applications"){ this->addMenu( LSession::handle()->applicationMenu() ); }
else if(items[i]=="line"){ this->addSeparator(); }
//else if(items[i]=="settings"){ this->addMenu( LSession::handle()->settingsMenu() ); }
@@ -34,7 +34,7 @@ void DesktopContextMenu::UpdateMenu(){
QString file = items[i].section("::::",1,1).simplified();
XDGDesktop xdgf(file);// = LXDG::loadDesktopFile(file, ok);
if(xdgf.type!=XDGDesktop::BAD){
- this->addAction( LXDG::findIcon(xdgf.icon,""), xdgf.name)->setWhatsThis(file);
+ this->addAction( LXDG::findIcon(xdgf.icon,""), xdgf.name)->setWhatsThis("lumina-open \""+file+"\"");
}else{
qDebug() << "Could not load application file:" << file;
}
@@ -86,8 +86,9 @@ void DesktopContextMenu::start(){
// === PRIVATE SLOTS ===
void DesktopContextMenu::LaunchAction(QAction *act){
if(act->whatsThis().isEmpty() || act->parent()!=this ){ return; }
+ qDebug() << "Launch Menu Action:" << act->whatsThis();
QString cmd = act->whatsThis();
- emit LaunchApplication(cmd);
+ ExternalProcess::launch(cmd);
}
void DesktopContextMenu::showMenu(const QPoint &pt){
diff --git a/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h b/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h
index 1a4befc9..8b0509fb 100644
--- a/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h
+++ b/src-qt5/core/lumina-desktop-unified/src-desktop/ContextMenu.h
@@ -30,7 +30,6 @@ private slots:
void showMenu(const QPoint&);
signals:
- void LaunchApplication(QString); //cmd to run
void LockSession();
void showLeaveDialog();
};
diff --git a/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.cpp b/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.cpp
index 4a192aa4..7031f3df 100644
--- a/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.cpp
+++ b/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.cpp
@@ -53,6 +53,7 @@ void EventFilter::start(){
XCB->setupEventsForRoot(WMFlag);
XCB->WM_Set_Supporting_WM(WMFlag);
+ XCB->WM_Set_Root_Supported(); //announce all the various options that the WM supports
static_cast<XCBEventFilter*>(EF)->startSystemTray();
QCoreApplication::instance()->flush();
@@ -71,11 +72,22 @@ unsigned int EventFilter::currentWorkspace(){
return XCB->CurrentWorkspace();
}
+QList<NativeWindow*> EventFilter::currentWindows(){
+ return static_cast<XCBEventFilter*>(EF)->windowList();
+}
+
// === PUBLIC SLOTS ===
void EventFilter::RegisterVirtualRoot(WId id){
XCB->WM_Set_Virtual_Roots( QList<WId>() << id );
}
+void EventFilter::TryCloseWindow(WId id){
+ XCB->WM_CloseWindow(id, false); //do not force close
+}
+
+void EventFilter::TryActivateWindow(WId id){
+ XCB->WM_Set_Active_Window(id);
+}
//=============================
// XCBEventFilter Class
//=============================
@@ -132,13 +144,13 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag
//==============================
case XCB_KEY_PRESS:
//This is a keyboard key press
- qDebug() << "Key Press Event";
+ //qDebug() << "Key Press Event";
stopevent = BlockInputEvent( ((xcb_key_press_event_t *) ev)->root ); //use the main "root" window - not the child widget
if(!stopevent){ obj->emit KeyPressed( InputWindow(((xcb_key_press_event_t *) ev)->root), ((xcb_key_press_event_t *) ev)->detail ); }
break;
case XCB_KEY_RELEASE:
//This is a keyboard key release
- qDebug() << "Key Release Event";
+ //qDebug() << "Key Release Event";
stopevent = BlockInputEvent( ((xcb_key_release_event_t *) ev)->root ); //use the main "root" window - not the child widget
if(!stopevent){ obj->emit KeyReleased( InputWindow(((xcb_key_release_event_t *) ev)->root), ((xcb_key_release_event_t *) ev)->detail ); }
break;
@@ -183,25 +195,42 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag
break;
//==============================
case XCB_MAP_NOTIFY:
+ //qDebug() << "Window Map Event:" << ((xcb_map_notify_event_t *)ev)->window;
+ if(Lumina::SS->isLocked()){ waitingToShow << ((xcb_map_notify_event_t *)ev)->window ; }
+ else{
+ for(int i=0; i<windows.length(); i++){
+ if(windows[i]->id() == ((xcb_map_notify_event_t *)ev)->window){ windows[i]->setProperty(NativeWindow::Visible, true); break; }
+ }
+ }
break; //This is just a notification that a window was mapped - nothing needs to change here
case XCB_MAP_REQUEST:
- qDebug() << "Window Map Request Event";
- obj->emit ModifyWindow( ((xcb_map_request_event_t *) ev)->window, Lumina::Show);
+ //qDebug() << "Window Map Request Event";
+ SetupNewWindow( ((xcb_map_request_event_t *) ev) );
break;
//==============================
case XCB_CREATE_NOTIFY:
- qDebug() << "Window Create Event";
+ //qDebug() << "Window Create Event";
break;
//==============================
case XCB_UNMAP_NOTIFY:
- qDebug() << "Window Unmap Event";
- obj->emit ModifyWindow( ((xcb_unmap_notify_event_t *)ev)->window, Lumina::Hide);
+ //qDebug() << "Window Unmap Event:" << ((xcb_unmap_notify_event_t *)ev)->window;
+ if(waitingToShow.contains(((xcb_unmap_notify_event_t *)ev)->window)){ waitingToShow.removeAll(((xcb_unmap_notify_event_t *)ev)->window); }
+ for(int i=0; i<windows.length(); i++){
+ if(windows[i]->id() == ((xcb_unmap_notify_event_t *)ev)->window){ windows[i]->setProperty(NativeWindow::Visible, false); break; }
+ }
break;
//==============================
case XCB_DESTROY_NOTIFY:
- qDebug() << "Window Closed Event";
+ //qDebug() << "Window Closed Event:" << ((xcb_destroy_notify_event_t *)ev)->window;
if( !rmTrayApp( ((xcb_destroy_notify_event_t *) ev)->window ) ){
- obj->emit WindowClosed( ((xcb_destroy_notify_event_t *) ev)->window );
+ //qDebug() <<" - Non-tray window";
+ for(int i=0; i<windows.length(); i++){
+ if(windows[i]->id() == ((xcb_destroy_notify_event_t *)ev)->window){
+ windows[i]->emit WindowClosed(windows[i]->id());
+ QTimer::singleShot(500, windows.takeAt(i), SLOT(deleteLater()) ); //give a few moments first, then clean up the object
+ break;
+ }
+ }
}
break;
//==============================
@@ -215,7 +244,7 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag
//==============================
case XCB_PROPERTY_NOTIFY:
//qDebug() << "Property Notify Event:";
- //qDebug() << " - Given Window:" << ((xcb_property_notify_event_t*)ev)->window;
+ ParsePropertyEvent((xcb_property_notify_event_t*)ev);
break;
//==============================
case XCB_CLIENT_MESSAGE:
@@ -305,6 +334,10 @@ bool XCBEventFilter::stopSystemTray(){
return true;
}
+QList<NativeWindow*> XCBEventFilter::windowList(){
+ return windows;
+}
+
//=========
// PRIVATE
//=========
@@ -389,3 +422,79 @@ void XCBEventFilter::checkDamageID(WId id){
//Could check for window damage ID's - but we should not need this
}
}
+
+// WINDOW HANDLING FUNCTIONS
+void XCBEventFilter::SetupNewWindow(xcb_map_request_event_t *ev){
+ WId win = ev->window;
+
+ bool ok = obj->XCB->WM_ManageWindow(win, true);
+ //Quick check if this is a transient window if we could not manage it directly
+ if(!ok){
+ WId tran = obj->XCB->WM_ICCCM_GetTransientFor(win);
+ if(tran!=win && tran!=0){
+ win = tran;
+ ok = obj->XCB->WM_ManageWindow(win);
+ }
+ }
+ qDebug() << "New Window:" << win << obj->XCB->WM_ICCCM_GetClass(win) << " Managed:" << ok;
+ obj->XCB->WM_Set_Active_Window(win);
+ //Determing the requested geometry/location/management within the event,
+ NativeWindow *nwin = new NativeWindow(win);
+ QObject::connect(nwin, SIGNAL(RequestClose(WId)), obj, SLOT(TryCloseWindow(WId)) );
+ QObject::connect(nwin, SIGNAL(RequestActivate(WId)), obj, SLOT(TryActivateWindow(WId)) );
+ windows << nwin;
+ bool show_now = !Lumina::SS->isLocked();
+ if(!show_now){ waitingToShow << win; } //add to the list to get set visible later
+ //populate the native window settings as they are right now
+ nwin->setProperty(NativeWindow::Active, true);
+ nwin->setProperty(NativeWindow::Visible, show_now);
+ nwin->setProperty(NativeWindow::Workspace, obj->XCB->CurrentWorkspace());
+ icccm_size_hints hints = obj->XCB->WM_ICCCM_GetNormalHints(win);
+ if(!hints.isValid()){ hints = obj->XCB->WM_ICCCM_GetSizeHints(win); }
+ if(hints.validMinSize()){ nwin->setProperty(NativeWindow::MinSize, QSize(hints.min_width,hints.min_height)); }
+ if(hints.validMaxSize()){ nwin->setProperty(NativeWindow::MaxSize, QSize(hints.max_width,hints.max_height)); }
+ if(hints.validBaseSize()){ nwin->setProperty(NativeWindow::Size, QSize(hints.base_width,hints.base_height)); }
+ else if(hints.validSize()){ nwin->setProperty(NativeWindow::Size, QSize(hints.width, hints.height)); }
+ nwin->setProperty(NativeWindow::Icon, obj->XCB->WM_Get_Icon(win));
+ QString title = obj->XCB->WM_Get_Name(win);
+ if(title.isEmpty()){ title = obj->XCB->WM_Get_Visible_Name(win); }
+ if(title.isEmpty()){ title = obj->XCB->WM_ICCCM_GetName(win); }
+ nwin->setProperty(NativeWindow::Title, title);
+ title = obj->XCB->WM_Get_Icon_Name(win);
+ if(title.isEmpty()){ title = obj->XCB->WM_Get_Visible_Icon_Name(win); }
+ if(title.isEmpty()){ title = obj->XCB->WM_ICCCM_GetIconName(win); }
+ nwin->setProperty(NativeWindow::ShortTitle, title);
+
+ obj->emit WindowCreated(nwin);
+}
+
+void XCBEventFilter::ParsePropertyEvent(xcb_property_notify_event_t *ev){
+ //First find the NativeWindow associated with the event
+ NativeWindow *nwin = 0;
+ for(int i=0; i<windows.length() && nwin==0; i++){
+ if(windows[i]->id() == ev->window){ nwin = windows[i]; }
+ }
+ if(nwin==0){ return; } //unmanaged window - ignore this event
+ qDebug() << "Got Property Event:" << ev->window << ev->atom;
+ //Now determine which properties are getting changed, and update the native window as appropriate
+ if(ev->atom == obj->XCB->EWMH._NET_WM_NAME){
+ qDebug() << " - Found _NET_WM_NAME atom";
+ nwin->setProperty(NativeWindow::Title, obj->XCB->WM_Get_Name(nwin->id()));
+ }else if(ev->atom == obj->XCB->EWMH._NET_WM_ICON){
+ qDebug() << " - Found _NET_WM_ICON atom";
+ nwin->setProperty(NativeWindow::Icon, obj->XCB->WM_Get_Icon(nwin->id()));
+ }else if(ev->atom == obj->XCB->EWMH._NET_WM_ICON_NAME){
+ qDebug() << " - Found _NET_WM_ICON_NAME atom";
+ nwin->setProperty(NativeWindow::ShortTitle, obj->XCB->WM_Get_Icon_Name(nwin->id()));
+ }else if(ev->atom == obj->XCB->EWMH._NET_WM_DESKTOP){
+ qDebug() << " - Found _NET_WM_DESKTOP atom";
+ nwin->setProperty(NativeWindow::Workspace, obj->XCB->WM_Get_Desktop(nwin->id()));
+ }else if(ev->atom == obj->XCB->EWMH._NET_WM_WINDOW_TYPE ){
+ qDebug() << " - Found _NET_WM_WINDOW_TYPE atom";
+
+ }else if( ev->atom == obj->XCB->EWMH._NET_WM_STATE){
+ qDebug() << " - Found _NET_WM_STATE atom";
+
+ }
+
+}
diff --git a/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.h b/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.h
index 9e76ba53..9f2530e8 100644
--- a/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.h
+++ b/src-qt5/core/lumina-desktop-unified/src-events/LXcbEventFilter.h
@@ -60,18 +60,21 @@ public:
//Public Session Interaction Functions
unsigned int currentWorkspace();
+
+ //Public Window Management Lists
+ QList<NativeWindow*> currentWindows(); //always returned in creation-order (oldest first)
//Variables/Functions needed by the XCBEventFilter class only (not really needed by anything else)
LXCB *XCB; //used to interact with the X11 graphics subsystem
public slots:
void RegisterVirtualRoot(WId);
+ void TryCloseWindow(WId);
+ void TryActivateWindow(WId);
signals:
void NewInputEvent();
- void NewManagedWindow(WId);
- void WindowClosed(WId);
- void ModifyWindow(WId win, Lumina::WindowAction);
+ void WindowCreated(NativeWindow*);
// Session Signals
void WorkspaceChanged(unsigned int);
@@ -99,6 +102,9 @@ public:
bool startSystemTray();
bool stopSystemTray();
+ //Window List Functions
+ QList<NativeWindow*> windowList();
+
private:
EventFilter *obj;
QList<xcb_atom_t> WinNotifyAtoms, SysNotifyAtoms;
@@ -119,13 +125,19 @@ private:
bool rmTrayApp(WId); //returns "true" if the tray app was found and removed
void checkDamageID(WId);
+ //Window List Variables
+ QList<NativeWindow*> windows;
+ QList<WId> waitingToShow;
+
//Longer Event handling functions
+ void SetupNewWindow(xcb_map_request_event_t *ev);
+
//bool ParseKeyPressEvent();
//bool ParseKeyReleaseEvent();
//bool ParseButtonPressEvent();
//bool ParseButtonReleaseEvent();
//bool ParseMotionEvent();
- //bool ParsePropertyEvent();
+ void ParsePropertyEvent(xcb_property_notify_event_t *ev);
//bool ParseClientMessageEvent();
//bool ParseDestroyEvent();
//bool ParseConfigureEvent();
diff --git a/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp
index 83b82ff8..9ad31f5c 100644
--- a/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp
+++ b/src-qt5/core/lumina-desktop-unified/src-screensaver/SSBaseWidget.cpp
@@ -19,6 +19,7 @@ SSBaseWidget::SSBaseWidget(QWidget *parent, QSettings *set) : QWidget(parent){
this->setObjectName("LuminaBaseSSWidget");
ANIM = 0;
this->setMouseTracking(true);
+ plugType="none";
}
SSBaseWidget::~SSBaseWidget(){
@@ -51,7 +52,7 @@ void SSBaseWidget::startPainting(){
//Now list all the various plugins and start them appropriately
QString style;
if(cplug=="none"){
- style = "background: transparent;"; //show the underlying black parent widget
+ style = "background: black;"; //show the underlying black parent widget
}else{
style = "background: black;";
}
diff --git a/src-qt5/core/lumina-desktop/LDesktop.cpp b/src-qt5/core/lumina-desktop/LDesktop.cpp
index d4ebaa7f..73ed6d47 100644
--- a/src-qt5/core/lumina-desktop/LDesktop.cpp
+++ b/src-qt5/core/lumina-desktop/LDesktop.cpp
@@ -265,7 +265,7 @@ void LDesktop::SettingsChanged(){
UpdatePanels();
UpdateMenu();
issyncing = false;
- QTimer::singleShot(100, this, SLOT(UnlockSettings()) ); //give it a few moments to settle before performing another sync
+ QTimer::singleShot(50, this, SLOT(UnlockSettings()) ); //give it a few moments to settle before performing another sync
}
void LDesktop::LocaleChanged(){
@@ -376,11 +376,11 @@ void LDesktop::UpdateDesktop(){
}
//Also show anything available in the /media directory
QDir media("/media");
- QStringList mediadirs = media.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
+ QStringList mediadirs = media.entryList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot, QDir::Name);
for(int i=0; i<mediadirs.length(); i++){
filelist << media.absoluteFilePath(mediadirs[i]);
}
- qDebug() << "Found media Dirs:" << mediadirs;
+ //qDebug() << "Found media Dirs:" << mediadirs;
UpdateDesktopPluginArea();
bgDesktop->LoadItems(plugins, filelist);
}
@@ -456,7 +456,7 @@ void LDesktop::UpdatePanels(){
}
}
//Give it a 1/2 second before ensuring that the visible desktop area is correct
- QTimer::singleShot(500, this, SLOT(UpdateDesktopPluginArea()) );
+ QTimer::singleShot(1500, this, SLOT(UpdateDesktopPluginArea()) );
}
void LDesktop::UpdateDesktopPluginArea(){
@@ -484,7 +484,8 @@ void LDesktop::UpdateDesktopPluginArea(){
}
//Now make sure the desktop plugin area is only the visible area
QRect rec = visReg.boundingRect();
- //qDebug() << " - DPArea: Panel-Adjusted rectangle:" << rec;
+// QRect rec = LSession::desktop()->availableGeometry(Screen());
+ qDebug() << " - DPArea: Panel-Adjusted rectangle:" << rec;
//LSession::handle()->XCB->SetScreenWorkArea((unsigned int) Screen(), rec);
//Now remove the X offset to place it on the current screen (needs widget-coords, not global)
globalWorkRect = rec; //save this for later
diff --git a/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp b/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp
index 18126dfa..75e4affc 100644
--- a/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp
+++ b/src-qt5/core/lumina-desktop/LDesktopPluginSpace.cpp
@@ -325,8 +325,9 @@ void LDesktopPluginSpace::reloadPlugins(bool ForceIconUpdate ){
void LDesktopPluginSpace::paintEvent(QPaintEvent*ev){
if(!wallpaper.isNull()){
QPainter painter(this);
- painter.setBrush(wallpaper);
- painter.drawRect(ev->rect().adjusted(-1,-1,2,2));
+ //painter.setBrush(wallpaper);
+ //painter.drawRect(ev->rect().adjusted(-1,-1,2,2));
+ painter.drawPixmap(ev->rect(), wallpaper, ev->rect() );
}else{
QWidget::paintEvent(ev);
}
diff --git a/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp b/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp
index c8ecf2c8..76b27787 100644
--- a/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp
+++ b/src-qt5/core/lumina-desktop/desktop-plugins/applauncher/AppLauncherPlugin.cpp
@@ -38,6 +38,7 @@ void AppLauncherPlugin::loadButton(){
int icosize = this->height()-4 - 2.2*button->fontMetrics().height();
button->setFixedSize( this->width()-4, this->height()-4);
button->setIconSize( QSize(icosize,icosize) );
+ button->setToolTip("");
QString txt;
if(path.endsWith(".desktop") && ok){
XDGDesktop file(path);
@@ -50,6 +51,7 @@ void AppLauncherPlugin::loadButton(){
}else{
button->setWhatsThis(file.filePath);
button->setIcon( QIcon(LXDG::findIcon(file.icon,"system-run").pixmap(QSize(icosize,icosize)).scaledToHeight(icosize, Qt::SmoothTransformation) ) );
+ if(!file.comment.isEmpty()){button->setWhatsThis(file.comment); }
txt = file.name;
if(!watcher->files().isEmpty()){ watcher->removePaths(watcher->files()); }
watcher->addPath(file.filePath); //make sure to update this shortcut if the file changes
@@ -90,7 +92,7 @@ void AppLauncherPlugin::loadButton(){
button->setIcon( QIcon(QPixmap::fromImage(img)) );
}
//Now adjust the visible text as necessary based on font/grid sizing
- button->setToolTip(txt);
+ if(button->toolTip().isEmpty()){ button->setToolTip(txt); }
//Double check that the visual icon size matches the requested size - otherwise upscale the icon
if(button->fontMetrics().width(txt) > (button->width()-OUTMARGIN) ){
//Text too long, try to show it on two lines
diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts
index b4ec953f..1d042180 100644
--- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts
+++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_da.ts
@@ -35,7 +35,7 @@
<location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="48"/>
<location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="76"/>
<source>Click to Set</source>
- <translation>Klik for at vælge</translation>
+ <translation>Klik for at sætte</translation>
</message>
<message>
<location filename="../desktop-plugins/applauncher/AppLauncherPlugin.cpp" line="137"/>
@@ -58,7 +58,7 @@
<message>
<location filename="../AppMenu.cpp" line="82"/>
<source>Manage Applications</source>
- <translation>Håndtér Programmer</translation>
+ <translation>Håndtér programmer</translation>
</message>
<message>
<location filename="../AppMenu.cpp" line="87"/>
@@ -123,7 +123,7 @@
<message>
<location filename="../AppMenu.cpp" line="108"/>
<source>Wine</source>
- <translation></translation>
+ <translation>Wine</translation>
</message>
<message>
<location filename="../AppMenu.cpp" line="109"/>
@@ -146,242 +146,242 @@
<message>
<location filename="../BootSplash.ui" line="94"/>
<source>Starting the Lumina Desktop...</source>
- <translation type="unfinished"></translation>
+ <translation>Starter Lumina-skrivebordet...</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="15"/>
<source>Version %1</source>
- <translation type="unfinished"></translation>
+ <translation>Version %1</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="39"/>
<source>This desktop is powered by coffee, coffee, and more coffee.</source>
- <translation type="unfinished"></translation>
+ <translation>Dette skrivebord er drevet af kaffe, kaffe og mere kaffe.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="41"/>
<source>Keep up with desktop news!</source>
- <translation type="unfinished"></translation>
+ <translation>Hold dig opdateret med skrivebordsnyheder!</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="43"/>
<source>There is a full handbook of information about the desktop available online.</source>
- <translation type="unfinished"></translation>
+ <translation>Der er en hel håndbog af information om skrivebordet online.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="45"/>
<source>Want to change the interface? Everything is customizable in the desktop configuration!</source>
- <translation type="unfinished"></translation>
+ <translation>Vil du ændre brugerfladen? Alt kan tilpasses i skrivebordskonfigurationen!</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="47"/>
<source>Lumina can easily reproduce the interface from most other desktop environments.</source>
- <translation type="unfinished"></translation>
+ <translation>Lumina kan nemt efterligne brugerfladen fra de fleste andre skrivebordsmiljøer.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="49"/>
<source>This desktop is generously sponsored by iXsystems</source>
- <translation type="unfinished"></translation>
+ <translation>Dette skrivebord er generøst sponsoreret af iXsystems</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="51"/>
<source>I have never been hurt by what I have not said</source>
- <translation type="unfinished"></translation>
+ <translation>Jeg har aldrig taget skade af det jeg aldrig har sagt</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="53"/>
<source>Gotta have more cowbell!</source>
- <translation type="unfinished"></translation>
+ <translation>Mere koklokke tak!</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="55"/>
<source>Everything has its beauty but not everyone sees it.</source>
- <translation type="unfinished"></translation>
+ <translation>Alt har sin skønhed, men alle ser det ikke.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="57"/>
<source>Before God we are all equally wise - and equally foolish.</source>
- <translation type="unfinished"></translation>
+ <translation>Før gud er vi alle lige kloge - og lige dumme.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="59"/>
<source>We cannot do everything at once, but we can do something at once.</source>
- <translation type="unfinished"></translation>
+ <translation>Vi kan ikke gøre alt på samme tid, men vi kan gøre noget på en gang.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="61"/>
<source>One with the law is a majority.</source>
- <translation type="unfinished"></translation>
+ <translation>En med loven er et flertal.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="63"/>
- <source>Don&apos;t expect to build up the weak by pulling down the strong.</source>
- <translation type="unfinished"></translation>
+ <source>Don't expect to build up the weak by pulling down the strong.</source>
+ <translation>Forvent ikke at opbygge det svage ved at nedrive det stærke.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="65"/>
- <source>You can&apos;t know too much, but you can say too much.</source>
- <translation type="unfinished"></translation>
+ <source>You can't know too much, but you can say too much.</source>
+ <translation>Du kan ikke vide hvor meget, men du kan sige for meget.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="67"/>
<source>Duty is not collective; it is personal.</source>
- <translation type="unfinished"></translation>
+ <translation>Pligt er ikke kollektivt; det er personligt.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="69"/>
<source>Any society that would give up a little liberty to gain a little security will deserve neither and lose both.</source>
- <translation type="unfinished"></translation>
+ <translation>Et samfund som ville opgive en smule frihed for at gå en smule sikkerhed vil ikke gøre sig fortjent til noget af det og miste begge.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="71"/>
<source>Never trust a computer you can’t throw out a window.</source>
- <translation type="unfinished"></translation>
+ <translation>Stol aldrig på en computer du ikke kan smide ud af et vindue.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="73"/>
<source>Study the past if you would define the future.</source>
- <translation type="unfinished"></translation>
+ <translation>Lær fortiden af kende hvis du definere fremtiden.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="75"/>
<source>The way to get started is to quit talking and begin doing.</source>
- <translation type="unfinished"></translation>
+ <translation>Måden at komme i gang, er at holde op med at snakke og begynde at gøre.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="77"/>
<source>Ask and it will be given to you; search, and you will find; knock and the door will be opened for you.</source>
- <translation type="unfinished"></translation>
+ <translation>Spørg, og det vil blive givet til dig; søg, og du vil finde; bank på, og døren vil blive åbnet for dig.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="79"/>
<source>Start where you are. Use what you have. Do what you can.</source>
- <translation type="unfinished"></translation>
+ <translation>Start hvor du er. Brug hvad du har. Gør hvad du kan.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="81"/>
<source>A person who never made a mistake never tried anything new.</source>
- <translation type="unfinished"></translation>
+ <translation>En person der aldrig har lavet fejl, har aldrig prøvet noget nyt.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="83"/>
<source>It does not matter how slowly you go as long as you do not stop.</source>
- <translation type="unfinished"></translation>
+ <translation>Det har ikke betydning hvor hurtigt du går, så længe du ikke stopper.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="85"/>
<source>Do what you can, where you are, with what you have.</source>
- <translation type="unfinished"></translation>
+ <translation>Gør hvad du kan, der hvor du er, med det du har.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="87"/>
<source>Remember no one can make you feel inferior without your consent.</source>
- <translation type="unfinished"></translation>
+ <translation>Husk, at ingen kan få dig til at føle dig underlegen, uden dit samtykke.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="89"/>
<source>It’s not the years in your life that count. It’s the life in your years.</source>
- <translation type="unfinished"></translation>
+ <translation>Det er ikke årene i dit liv der tæller. Det er livet i dine år.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="91"/>
<source>Either write something worth reading or do something worth writing.</source>
- <translation type="unfinished"></translation>
+ <translation>Skriv enten noget som er værd at læse, eller noget som er værd at skrive.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="93"/>
<source>The only way to do great work is to love what you do.</source>
- <translation type="unfinished"></translation>
+ <translation>Den eneste måde at udføre godt arbejde, er ved at elske det du gør.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="95"/>
<source>Political correctness is tyranny with manners.</source>
- <translation type="unfinished"></translation>
+ <translation>Politisk korrekthed er tyranni uden manerer.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="97"/>
- <source>Only two things are infinite, the universe and human stupidity, and I&apos;m not sure about the former.</source>
- <translation type="unfinished"></translation>
+ <source>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</source>
+ <translation>Kun to ting er uendelige, universet og menneskelig dumhed, og jeg er ikke sikker på det sidste.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="99"/>
<source>I find that the harder I work, the more luck I seem to have.</source>
- <translation type="unfinished"></translation>
+ <translation>Jeg oplever at jo hårdere jeg arbejder, jo mere heldig ser jeg ud til at være.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="101"/>
- <source>Do, or do not. There is no &apos;try&apos;.</source>
- <translation type="unfinished"></translation>
+ <source>Do, or do not. There is no 'try'.</source>
+ <translation>Gør, eller gør ikke. Der er ikke noget "prøv".</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="103"/>
<source>A mathematician is a device for turning coffee into theorems.</source>
- <translation type="unfinished"></translation>
+ <translation>En matematiker er en enhed som omdanner kaffe til matematiske sætninger.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="105"/>
<source>Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws.</source>
- <translation type="unfinished"></translation>
+ <translation>Gode mennesker behøver ikke love til at fortælle dem at de skal opføre sig ordentligt, mens dårlige mennesker vil finde en vej omkring lovene.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="107"/>
<source>Black holes are where God divided by zero.</source>
- <translation type="unfinished"></translation>
+ <translation>Sorte huller er når gud dividere med nul.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="109"/>
- <source>It&apos;s kind of fun to do the impossible.</source>
- <translation type="unfinished"></translation>
+ <source>It's kind of fun to do the impossible.</source>
+ <translation>Det er egentligt sjovt at gøre det umulige.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="111"/>
<source>Knowledge speaks, but wisdom listens.</source>
- <translation type="unfinished"></translation>
+ <translation>Viden taler, men klogskab lytter.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="113"/>
<source>A witty saying proves nothing.</source>
- <translation type="unfinished"></translation>
+ <translation>En vittig udtalelse beviser intet.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="115"/>
<source>Success usually comes to those who are too busy to be looking for it.</source>
- <translation type="unfinished"></translation>
+ <translation>Succes kommer typisk til dem der ikke har travlt med at lede efter det.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="117"/>
<source>Well-timed silence hath more eloquence than speech.</source>
- <translation type="unfinished"></translation>
+ <translation>Godt timet stilhed havde mere elokvens end tale.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="119"/>
<source>I have never let my schooling interfere with my education.</source>
- <translation type="unfinished"></translation>
+ <translation>Jeg har aldrig ladet min skolegang blande sig i min uddannelse.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="121"/>
<source>The best way to predict the future is to invent it.</source>
- <translation type="unfinished"></translation>
+ <translation>Den bedste måde at forudse fremtiden er ved at opfinde den.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="123"/>
<source>Well done is better than well said.</source>
- <translation type="unfinished"></translation>
+ <translation>Vel gjort eller bedre end vel sagt.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="125"/>
<source>Sometimes it is not enough that we do our best; we must do what is required.</source>
- <translation type="unfinished"></translation>
+ <translation>Nogen gange er det ikke nok at gøre vores bedst; vi må gøre hvad der er krævet.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="127"/>
<source>The truth is more important than the facts.</source>
- <translation type="unfinished"></translation>
+ <translation>Sandheden er vigtigere end fakta.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="129"/>
<source>Better to remain silent and be thought a fool than to speak out and remove all doubt.</source>
- <translation type="unfinished"></translation>
+ <translation>Bedre at forblive stille og blive tænkt som værende et fjols, end at tale og fjerne al tvivl.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="140"/>
@@ -396,7 +396,7 @@
<message>
<location filename="../BootSplash.cpp" line="146"/>
<source>Loading User Preferences …</source>
- <translation>Indlæser brugerindstillinger …</translation>
+ <translation>Indlæser brugerpræferencer …</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="149"/>
@@ -431,7 +431,7 @@
<message>
<location filename="../BootSplash.cpp" line="167"/>
<source>Starting App: %1</source>
- <translation>Starter Progr: %1</translation>
+ <translation>Starter program: %1</translation>
</message>
</context>
<context>
@@ -497,12 +497,12 @@
<message>
<location filename="../panel-plugins/systemstart/ItemWidget.cpp" line="188"/>
<source>Remove from Quicklaunch</source>
- <translation>Fjern fra Kvikbar</translation>
+ <translation>Fjern fra hurtigstart</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/ItemWidget.cpp" line="191"/>
<source>Add to Quicklaunch</source>
- <translation>Tilføj til Kvikbar</translation>
+ <translation>Føj til hurtigstart</translation>
</message>
</context>
<context>
@@ -518,7 +518,7 @@
<message>
<location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="37"/>
<source>Quickly launch applications or open files</source>
- <translation>Hurtigt kør programmer eller åbne filer</translation>
+ <translation>Start hurtigt programmer eller åbne filer</translation>
</message>
<message>
<location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="38"/>
@@ -598,7 +598,7 @@
<message>
<location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="101"/>
<source>Wine</source>
- <translation></translation>
+ <translation>Wine</translation>
</message>
<message>
<location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="102"/>
@@ -608,7 +608,7 @@
<message>
<location filename="../panel-plugins/appmenu/LAppMenuPlugin.cpp" line="139"/>
<source>Leave</source>
- <translation>Forlad</translation>
+ <translation>Ud</translation>
</message>
</context>
<context>
@@ -616,12 +616,12 @@
<message>
<location filename="../panel-plugins/battery/LBattery.cpp" line="92"/>
<source>%1 % (Charging)</source>
- <translation>%1 % (Oplader)</translation>
+ <translation>%1 % (lader)</translation>
</message>
<message>
<location filename="../panel-plugins/battery/LBattery.cpp" line="93"/>
<source>%1 % (%2 Remaining)</source>
- <translation>%1 % (%2 Tilbage)</translation>
+ <translation>%1 % (%2 tilbage)</translation>
</message>
</context>
<context>
@@ -634,7 +634,7 @@
<message>
<location filename="../panel-plugins/clock/LClock.cpp" line="157"/>
<source>Use System Time</source>
- <translation>Brug Systemtid</translation>
+ <translation>Brug systemtid</translation>
</message>
</context>
<context>
@@ -642,7 +642,7 @@
<message>
<location filename="../desktop-plugins/LDPlugin.cpp" line="38"/>
<source>Launch Item</source>
- <translation type="unfinished"></translation>
+ <translation>Start post</translation>
</message>
<message>
<location filename="../desktop-plugins/LDPlugin.cpp" line="42"/>
@@ -675,7 +675,7 @@
<message>
<location filename="../panel-plugins/desktopbar/LDeskBar.cpp" line="192"/>
<source>Favorite Applications</source>
- <translation>Farvoritprogrammer</translation>
+ <translation>Favoritprogrammer</translation>
</message>
<message>
<location filename="../panel-plugins/desktopbar/LDeskBar.cpp" line="194"/>
@@ -723,7 +723,7 @@
<message>
<location filename="../LDesktop.cpp" line="280"/>
<source>Lumina Desktop</source>
- <translation>Lumina Skrivebord</translation>
+ <translation>Lumina-skrivebord</translation>
</message>
<message>
<location filename="../LDesktop.cpp" line="281"/>
@@ -733,12 +733,12 @@
<message>
<location filename="../LDesktop.cpp" line="291"/>
<source>Terminal</source>
- <translation></translation>
+ <translation>Terminal</translation>
</message>
<message>
<location filename="../LDesktop.cpp" line="292"/>
<source>Lock Session</source>
- <translation type="unfinished"></translation>
+ <translation>Lås session</translation>
</message>
<message>
<location filename="../LDesktop.cpp" line="293"/>
@@ -748,7 +748,7 @@
<message>
<location filename="../LDesktop.cpp" line="322"/>
<source>Leave</source>
- <translation>Forlad</translation>
+ <translation>Ud</translation>
</message>
</context>
<context>
@@ -765,7 +765,7 @@
<message>
<location filename="../panel-plugins/systemstart/LStartButton.h" line="52"/>
<source>Remove from Quicklaunch</source>
- <translation>Fjern fra kvikstart</translation>
+ <translation>Fjern fra hurtigstart</translation>
</message>
</context>
<context>
@@ -782,7 +782,7 @@
<message>
<location filename="../panel-plugins/systemdashboard/LSysDashboard.cpp" line="43"/>
<source>System Dashboard</source>
- <translation>Systemets instrumentpanel</translation>
+ <translation>Systemets instrumentbræt</translation>
</message>
</context>
<context>
@@ -795,12 +795,12 @@
<message>
<location filename="../panel-plugins/systemdashboard/SysMenuQuick.ui" line="50"/>
<source>System Volume</source>
- <translation>Systemdrev</translation>
+ <translation>Systemlydstyrke</translation>
</message>
<message>
<location filename="../panel-plugins/systemdashboard/SysMenuQuick.ui" line="111"/>
<source>Launch Audio Mixer</source>
- <translation>Kør Lyd Mixer</translation>
+ <translation>Start lydmikser</translation>
</message>
<message>
<location filename="../panel-plugins/systemdashboard/SysMenuQuick.ui" line="156"/>
@@ -888,7 +888,7 @@
<message>
<location filename="../panel-plugins/userbutton/LUserButton.cpp" line="41"/>
<source>Quickly launch applications or open files</source>
- <translation>Hurtigt kør programmer eller åbne filer</translation>
+ <translation>Start hurtigt programmer eller åbne filer</translation>
</message>
</context>
<context>
@@ -901,7 +901,7 @@
<message>
<location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="36"/>
<source>Summary</source>
- <translation>Oversigt</translation>
+ <translation>Sammendrag</translation>
</message>
<message>
<location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="42"/>
@@ -911,12 +911,12 @@
<message>
<location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="56"/>
<source>CPU Usage:</source>
- <translation>CPU brug:</translation>
+ <translation>CPU-forbrug:</translation>
</message>
<message>
<location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="70"/>
<source>Mem Usage:</source>
- <translation>Hukommelsesbrug:</translation>
+ <translation>Hukommelsesforbrug:</translation>
</message>
<message>
<location filename="../desktop-plugins/systemmonitor/MonitorWidget.ui" line="85"/>
@@ -929,7 +929,7 @@
<message>
<location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="98"/>
<source>Note Files (*.note)</source>
- <translation>Note Filer (*.note)</translation>
+ <translation>Note-filer (*.note)</translation>
</message>
<message>
<location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="98"/>
@@ -949,17 +949,17 @@
<message>
<location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="138"/>
<source>Invalid Note Name: Try Again</source>
- <translation>Forkert Note Navn: Prøv Igen</translation>
+ <translation>Ugyldigt notenavn: Prøv igen</translation>
</message>
<message>
<location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="139"/>
<source>Select a Note Name</source>
- <translation>Vælg et Notenavn</translation>
+ <translation>Vælg et notenavn</translation>
</message>
<message>
<location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="166"/>
<source>Open Text File</source>
- <translation>Åbn Tekstfil</translation>
+ <translation>Åbn tekstfil</translation>
</message>
<message>
<location filename="../desktop-plugins/notepad/NotepadPlugin.cpp" line="167"/>
@@ -982,57 +982,57 @@
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Formular</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="69"/>
<source>Clear Playlist</source>
- <translation type="unfinished">Ryd spilleliste</translation>
+ <translation>Ryd spilleliste</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="70"/>
<source>Shuffle Playlist</source>
- <translation type="unfinished">Bland spilleliste</translation>
+ <translation>Bland spilleliste</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="72"/>
<source>Add Files</source>
- <translation type="unfinished">Tilføj filer</translation>
+ <translation>Tilføj filer</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="73"/>
<source>Add Directory</source>
- <translation type="unfinished">Tilføj mappe</translation>
+ <translation>Tilføj mappe</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="74"/>
<source>Add URL</source>
- <translation type="unfinished">Tilføj URL</translation>
+ <translation>Tilføj URL</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="102"/>
<source>Multimedia Files</source>
- <translation type="unfinished">Mediefiler</translation>
+ <translation>Multimediefiler</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="103"/>
<source>Select Multimedia Files</source>
- <translation type="unfinished">Vælg mediefiler</translation>
+ <translation>Vælg multimediefiler</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="130"/>
<source>Select Multimedia Directory</source>
- <translation type="unfinished">Vælg Medie Mappe</translation>
+ <translation>Vælg multimediemappe</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="159"/>
<source>Enter a valid URL for a multimedia file or stream:</source>
- <translation type="unfinished">Indtast en korrekt URL til mediefil eller stream:</translation>
+ <translation>Indtast en gyldig URL til en multimediefil eller strøm:</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="161"/>
<source>Multimedia URL</source>
- <translation type="unfinished">Medie URL</translation>
+ <translation>Multimedie-URL</translation>
</message>
</context>
<context>
@@ -1070,27 +1070,27 @@
<message>
<location filename="../desktop-plugins/audioplayer/PlayerWidget.cpp" line="102"/>
<source>Multimedia Files</source>
- <translation>Mediefiler</translation>
+ <translation>Multimediefiler</translation>
</message>
<message>
<location filename="../desktop-plugins/audioplayer/PlayerWidget.cpp" line="103"/>
<source>Select Multimedia Files</source>
- <translation>Vælg mediefiler</translation>
+ <translation>Vælg multimediefiler</translation>
</message>
<message>
<location filename="../desktop-plugins/audioplayer/PlayerWidget.cpp" line="130"/>
<source>Select Multimedia Directory</source>
- <translation>Vælg Medie Mappe</translation>
+ <translation>Vælg multimediemappe</translation>
</message>
<message>
<location filename="../desktop-plugins/audioplayer/PlayerWidget.cpp" line="159"/>
<source>Enter a valid URL for a multimedia file or stream:</source>
- <translation>Indtast en korrekt URL til mediefil eller stream:</translation>
+ <translation>Indtast en gyldig URL til en multimediefil eller strøm:</translation>
</message>
<message>
<location filename="../desktop-plugins/audioplayer/PlayerWidget.cpp" line="161"/>
<source>Multimedia URL</source>
- <translation>Medie URL</translation>
+ <translation>Multimedie-URL</translation>
</message>
</context>
<context>
@@ -1135,12 +1135,12 @@
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="263"/>
<source>New Feed Subscription</source>
- <translation>Abonner på nyt RSS-feed</translation>
+ <translation>Abonner på nyt feed</translation>
</message>
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="287"/>
<source>RSS URL</source>
- <translation>RSS URL</translation>
+ <translation>RSS-URL</translation>
</message>
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="302"/>
@@ -1150,7 +1150,7 @@
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="332"/>
<source>Add to Feeds</source>
- <translation>Tilføj til RSS-feeds</translation>
+ <translation>Tilføj til feeds</translation>
</message>
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="409"/>
@@ -1160,7 +1160,7 @@
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="430"/>
<source>Manual Sync Only</source>
- <translation>Udelukkende manuel synkronisering</translation>
+ <translation>Kun manuel synkronisering</translation>
</message>
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="437"/>
@@ -1170,7 +1170,7 @@
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="440"/>
<source>Default Sync Interval</source>
- <translation>Standard synkroniseringsinterval</translation>
+ <translation>Standardsynkroniseringsinterval</translation>
</message>
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.ui" line="471"/>
@@ -1216,7 +1216,7 @@
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="143"/>
<source>Feed URL: %1</source>
- <translation>RSS-feed URL: %1</translation>
+ <translation>Feed-URL: %1</translation>
</message>
<message>
<location filename="../desktop-plugins/rssreader/RSSFeedPlugin.cpp" line="144"/>
@@ -1254,27 +1254,27 @@
<message>
<location filename="../SettingsMenu.cpp" line="30"/>
<source>Screensaver</source>
- <translation>Skærmskåner</translation>
+ <translation>Pauseskærm</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="26"/>
<source>Preferences</source>
- <translation>Indstillinger</translation>
+ <translation>Præferencer</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="33"/>
<source>Wallpaper</source>
- <translation type="unfinished"></translation>
+ <translation>Tapet</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="36"/>
<source>Display</source>
- <translation>Fremvis</translation>
+ <translation>Skærm</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="39"/>
<source>All Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Alle skrivebordsindstillinger</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="54"/>
@@ -1307,7 +1307,7 @@
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="199"/>
<source>Browse Applications</source>
- <translation>Gennemse Programmer</translation>
+ <translation>Gennemse programmer</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="234"/>
@@ -1317,12 +1317,12 @@
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="305"/>
<source>Leave</source>
- <translation>Forlad</translation>
+ <translation>Ud</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="379"/>
<source>Manage Applications</source>
- <translation>Håndtér Programmer</translation>
+ <translation>Håndtér programmer</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="408"/>
@@ -1332,12 +1332,12 @@
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="488"/>
<source>Configure Desktop</source>
- <translation>Indstil skrivebordsmiljø</translation>
+ <translation>Konfigurer skrivebord</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="1065"/>
<source>Sign Out User</source>
- <translation>Log Bruger Ud</translation>
+ <translation>Log bruger ud</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="989"/>
@@ -1347,22 +1347,22 @@
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="262"/>
<source>Preferences</source>
- <translation>Indstillinger</translation>
+ <translation>Præferencer</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="1017"/>
<source>Power Off System</source>
- <translation>Sluk System</translation>
+ <translation>Sluk system</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="1036"/>
<source>(System Performing Updates)</source>
- <translation>(System Udfører Opdateringer)</translation>
+ <translation>(systemet udfører opdateringer)</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="924"/>
<source>Suspend System</source>
- <translation>Systemdvale</translation>
+ <translation>Sæt system i hvile</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.ui" line="1125"/>
@@ -1382,17 +1382,17 @@
<message>
<location filename="../panel-plugins/systemstart/StartMenu.cpp" line="500"/>
<source>%1% (Plugged In)</source>
- <translation>%1% (Indsat)</translation>
+ <translation>%1% (tilsluttet)</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.cpp" line="504"/>
<source>%1% (%2 Estimated)</source>
- <translation>%1% (%2 Estimeret)</translation>
+ <translation>%1% (%2 estimeret)</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.cpp" line="505"/>
<source>%1% Remaining</source>
- <translation>%1% Tilbage</translation>
+ <translation>%1% tilbage</translation>
</message>
<message>
<location filename="../panel-plugins/systemstart/StartMenu.cpp" line="521"/>
@@ -1407,7 +1407,7 @@
<message>
<location filename="../SystemWindow.ui" line="14"/>
<source>System Options</source>
- <translation>Systemindstillinger</translation>
+ <translation>Systemvalgmuligheder</translation>
</message>
<message>
<location filename="../SystemWindow.ui" line="55"/>
@@ -1427,7 +1427,7 @@
<message>
<location filename="../SystemWindow.ui" line="127"/>
<source>Cancel</source>
- <translation>Annullér</translation>
+ <translation>Annuller</translation>
</message>
<message>
<location filename="../SystemWindow.ui" line="156"/>
@@ -1478,7 +1478,7 @@
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="14"/>
<source>UserWidget</source>
- <translation>Bruger Widget</translation>
+ <translation>Brugerwidget</translation>
</message>
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="24"/>
@@ -1489,7 +1489,7 @@
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="65"/>
<source>Favorite Applications</source>
- <translation>Farvoritprogrammer</translation>
+ <translation>Favoritprogrammer</translation>
</message>
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="68"/>
@@ -1556,7 +1556,7 @@
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="461"/>
<source>Desktop Preferences</source>
- <translation>Skrivebordsindstillinger</translation>
+ <translation>Skrivebordspræferencer</translation>
</message>
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="473"/>
@@ -1566,12 +1566,12 @@
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="495"/>
<source>Desktop Appearance/Plugins</source>
- <translation>Skrivebord Udseende/Plugins</translation>
+ <translation>Skrivebord udseende/plugins</translation>
</message>
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="517"/>
<source>Screen Configuration</source>
- <translation>Skærm Indstillinger</translation>
+ <translation>Skærmkonfiguration</translation>
</message>
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="539"/>
@@ -1581,7 +1581,7 @@
<message>
<location filename="../panel-plugins/userbutton/UserWidget.ui" line="581"/>
<source>About the Lumina Desktop</source>
- <translation>Om Lumina Skrivebordet</translation>
+ <translation>Om Lumina-skrivebordet</translation>
</message>
<message>
<location filename="../panel-plugins/userbutton/UserWidget.cpp" line="289"/>
@@ -1641,12 +1641,12 @@
<message>
<location filename="../panel-plugins/userbutton/UserWidget.cpp" line="300"/>
<source>Utilities</source>
- <translation>Hjælpeværktøjer</translation>
+ <translation>Redskaber</translation>
</message>
<message>
<location filename="../panel-plugins/userbutton/UserWidget.cpp" line="301"/>
<source>Wine</source>
- <translation></translation>
+ <translation>Wine</translation>
</message>
<message>
<location filename="../panel-plugins/userbutton/UserWidget.cpp" line="302"/>
diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts
index b9d1e7c5..2935b900 100644
--- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts
+++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_de.ts
@@ -6,7 +6,7 @@
<message>
<location filename="../panel-plugins/applauncher/AppLaunchButton.cpp" line="37"/>
<source>Click to assign an application</source>
- <translation>Klicke um Programm zuzuweisen</translation>
+ <translation>Klicken Sie, um eine Anwendung zuzuweisen</translation>
</message>
<message>
<location filename="../panel-plugins/applauncher/AppLaunchButton.cpp" line="42"/>
@@ -16,7 +16,7 @@
<message>
<location filename="../panel-plugins/applauncher/AppLaunchButton.cpp" line="49"/>
<source>Open %1</source>
- <translation>Öffne %1</translation>
+ <translation>%1 öffnen</translation>
</message>
<message>
<location filename="../panel-plugins/applauncher/AppLaunchButton.cpp" line="67"/>
@@ -146,17 +146,17 @@
<message>
<location filename="../BootSplash.ui" line="94"/>
<source>Starting the Lumina Desktop...</source>
- <translation type="unfinished"></translation>
+ <translation>Lumina-Arbeitsfläche wird gestartet...</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="15"/>
<source>Version %1</source>
- <translation type="unfinished"></translation>
+ <translation>Version %1</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="39"/>
<source>This desktop is powered by coffee, coffee, and more coffee.</source>
- <translation type="unfinished"></translation>
+ <translation>Diese Arbeitsfläche wird durch Kaffee, Kaffee und mehr Kaffee angetrieben.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="41"/>
@@ -181,12 +181,12 @@
<message>
<location filename="../BootSplash.cpp" line="49"/>
<source>This desktop is generously sponsored by iXsystems</source>
- <translation type="unfinished"></translation>
+ <translation>Diese Arbeitsfläche wird großzügig von iXsystems gesponsert</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="51"/>
<source>I have never been hurt by what I have not said</source>
- <translation type="unfinished"></translation>
+ <translation>Ich bin niemals durch das verletzt worden, was ich nicht gesagt habe</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="53"/>
@@ -196,17 +196,17 @@
<message>
<location filename="../BootSplash.cpp" line="55"/>
<source>Everything has its beauty but not everyone sees it.</source>
- <translation type="unfinished"></translation>
+ <translation>Alles hat seine Schönheit, aber nicht jeder sieht es.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="57"/>
<source>Before God we are all equally wise - and equally foolish.</source>
- <translation type="unfinished"></translation>
+ <translation>Vor Gott sind wir alle gleich weise - und gleich dumm.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="59"/>
<source>We cannot do everything at once, but we can do something at once.</source>
- <translation type="unfinished"></translation>
+ <translation>Wir können nicht alles auf einmal machen, aber wir können etwas auf einmal machen.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="61"/>
@@ -215,13 +215,13 @@
</message>
<message>
<location filename="../BootSplash.cpp" line="63"/>
- <source>Don&apos;t expect to build up the weak by pulling down the strong.</source>
+ <source>Don't expect to build up the weak by pulling down the strong.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="65"/>
- <source>You can&apos;t know too much, but you can say too much.</source>
- <translation type="unfinished"></translation>
+ <source>You can't know too much, but you can say too much.</source>
+ <translation>Sie können nicht zu viel wissen, aber Sie können zu viel sagen.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="67"/>
@@ -236,12 +236,12 @@
<message>
<location filename="../BootSplash.cpp" line="71"/>
<source>Never trust a computer you can’t throw out a window.</source>
- <translation type="unfinished"></translation>
+ <translation>Trauen Sie niemals einem Computer, den Sie nicht aus einem Fenster werfen können.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="73"/>
<source>Study the past if you would define the future.</source>
- <translation type="unfinished"></translation>
+ <translation>Studieren Sie die Vergangenheit, wenn Sie die Zukunft bestimmen würden.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="75"/>
@@ -261,12 +261,12 @@
<message>
<location filename="../BootSplash.cpp" line="81"/>
<source>A person who never made a mistake never tried anything new.</source>
- <translation type="unfinished"></translation>
+ <translation>Eine Person, die nie einen Fehler gemacht hat, hat nie etwas Neues versucht.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="83"/>
<source>It does not matter how slowly you go as long as you do not stop.</source>
- <translation type="unfinished"></translation>
+ <translation>Es spielt keine Rolle, wie langsam Sie gehen, solange Sie nicht aufhören.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="85"/>
@@ -291,17 +291,17 @@
<message>
<location filename="../BootSplash.cpp" line="93"/>
<source>The only way to do great work is to love what you do.</source>
- <translation type="unfinished"></translation>
+ <translation>Der einzige Weg großartige Arbeit zu verrichten, ist zu lieben, was Sie machen.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="95"/>
<source>Political correctness is tyranny with manners.</source>
- <translation type="unfinished"></translation>
+ <translation>Politische Korrektheit ist Tyrannei mit Manieren.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="97"/>
- <source>Only two things are infinite, the universe and human stupidity, and I&apos;m not sure about the former.</source>
- <translation type="unfinished"></translation>
+ <source>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</source>
+ <translation>Nur zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim ersten bin ich mir nicht sicher.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="99"/>
@@ -310,13 +310,13 @@
</message>
<message>
<location filename="../BootSplash.cpp" line="101"/>
- <source>Do, or do not. There is no &apos;try&apos;.</source>
- <translation type="unfinished"></translation>
+ <source>Do, or do not. There is no 'try'.</source>
+ <translation>Machen oder nicht machen. Es gibt kein "Versuchen".</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="103"/>
<source>A mathematician is a device for turning coffee into theorems.</source>
- <translation type="unfinished"></translation>
+ <translation>Ein Mathematiker ist ein Gerät, um Kaffee in Theoreme umzuwandeln.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="105"/>
@@ -326,22 +326,22 @@
<message>
<location filename="../BootSplash.cpp" line="107"/>
<source>Black holes are where God divided by zero.</source>
- <translation type="unfinished"></translation>
+ <translation>Schwarze Löcher sind, wo Gott durch Null geteilt hat.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="109"/>
- <source>It&apos;s kind of fun to do the impossible.</source>
- <translation type="unfinished"></translation>
+ <source>It's kind of fun to do the impossible.</source>
+ <translation>Es macht Spaß, das Unmögliche zu tun.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="111"/>
<source>Knowledge speaks, but wisdom listens.</source>
- <translation type="unfinished"></translation>
+ <translation>Wissen spricht, aber Weisheit hört zu.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="113"/>
<source>A witty saying proves nothing.</source>
- <translation type="unfinished"></translation>
+ <translation>Ein witziges Sprichwort beweist nichts.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="115"/>
@@ -351,7 +351,7 @@
<message>
<location filename="../BootSplash.cpp" line="117"/>
<source>Well-timed silence hath more eloquence than speech.</source>
- <translation type="unfinished"></translation>
+ <translation>Zeitlich gut angesetzte Stille hat mehr Sprachfertigkeit als eine Rede.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="119"/>
@@ -361,12 +361,12 @@
<message>
<location filename="../BootSplash.cpp" line="121"/>
<source>The best way to predict the future is to invent it.</source>
- <translation type="unfinished"></translation>
+ <translation>Der beste Weg, die Zukunft vorauszusagen, ist, sie zu erfinden.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="123"/>
<source>Well done is better than well said.</source>
- <translation type="unfinished"></translation>
+ <translation>Gut gemacht ist besser als gut gesagt.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="125"/>
@@ -376,7 +376,7 @@
<message>
<location filename="../BootSplash.cpp" line="127"/>
<source>The truth is more important than the facts.</source>
- <translation type="unfinished"></translation>
+ <translation>Die Wahrheit ist wichtiger als die Fakten.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="129"/>
@@ -642,7 +642,7 @@
<message>
<location filename="../desktop-plugins/LDPlugin.cpp" line="38"/>
<source>Launch Item</source>
- <translation type="unfinished"></translation>
+ <translation>Element starten</translation>
</message>
<message>
<location filename="../desktop-plugins/LDPlugin.cpp" line="42"/>
@@ -738,7 +738,7 @@
<message>
<location filename="../LDesktop.cpp" line="292"/>
<source>Lock Session</source>
- <translation type="unfinished"></translation>
+ <translation>Sitzung sperren</translation>
</message>
<message>
<location filename="../LDesktop.cpp" line="293"/>
@@ -982,7 +982,7 @@
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="69"/>
@@ -1264,7 +1264,7 @@
<message>
<location filename="../SettingsMenu.cpp" line="33"/>
<source>Wallpaper</source>
- <translation type="unfinished"></translation>
+ <translation>Hintergrundbild</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="36"/>
@@ -1274,7 +1274,7 @@
<message>
<location filename="../SettingsMenu.cpp" line="39"/>
<source>All Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Alle Arbeitsflächeneinstellungen</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="54"/>
diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts
index 26c14237..8dac2274 100644
--- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts
+++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_it.ts
@@ -221,7 +221,7 @@
<message>
<location filename="../BootSplash.cpp" line="65"/>
<source>You can't know too much, but you can say too much.</source>
- <translation type="unfinished"></translation>
+ <translation>Non puoi sapere troppo, ma puoi dire troppo.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="67"/>
diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts
index a4a5ff5c..6e97229f 100644
--- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts
+++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_lt.ts
@@ -156,12 +156,12 @@
<message>
<location filename="../BootSplash.cpp" line="39"/>
<source>This desktop is powered by coffee, coffee, and more coffee.</source>
- <translation type="unfinished"></translation>
+ <translation>Šis darbalaukis veikia su kava, kava ir dar daugiau kavos.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="41"/>
<source>Keep up with desktop news!</source>
- <translation type="unfinished"></translation>
+ <translation>Sekite darbalaukio naujienas!</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="43"/>
@@ -246,7 +246,7 @@
<message>
<location filename="../BootSplash.cpp" line="75"/>
<source>The way to get started is to quit talking and begin doing.</source>
- <translation type="unfinished"></translation>
+ <translation>Darbo pradžios paslaptis yra nustoti kalbėti ir pradėti daryti.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="77"/>
@@ -306,7 +306,7 @@
<message>
<location filename="../BootSplash.cpp" line="99"/>
<source>I find that the harder I work, the more luck I seem to have.</source>
- <translation type="unfinished"></translation>
+ <translation>Aš suprantu, kad kuo daugiau aš dirbu, tuo labiau man sekasi.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="101"/>
@@ -331,7 +331,7 @@
<message>
<location filename="../BootSplash.cpp" line="109"/>
<source>It's kind of fun to do the impossible.</source>
- <translation type="unfinished"></translation>
+ <translation>Smagu yra daryti tai, kas neįmanoma.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="111"/>
@@ -346,7 +346,7 @@
<message>
<location filename="../BootSplash.cpp" line="115"/>
<source>Success usually comes to those who are too busy to be looking for it.</source>
- <translation type="unfinished"></translation>
+ <translation>Sėkmė, dažniausiai, nusišypso tiems, kas yra pernelyg užsiėmę, kad jos ieškotų.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="117"/>
@@ -361,7 +361,7 @@
<message>
<location filename="../BootSplash.cpp" line="121"/>
<source>The best way to predict the future is to invent it.</source>
- <translation type="unfinished"></translation>
+ <translation>Geriausiai būdas išpranašauti ateitį yra ją išrasti.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="123"/>
@@ -371,7 +371,7 @@
<message>
<location filename="../BootSplash.cpp" line="125"/>
<source>Sometimes it is not enough that we do our best; we must do what is required.</source>
- <translation type="unfinished"></translation>
+ <translation>Kartais, mums nepakanka daryti tai, kas geriausia; privalome daryti tai, kas reikalinga.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="127"/>
@@ -982,7 +982,7 @@
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Forma</translation>
+ <translation>Forma</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="69"/>
@@ -1017,22 +1017,22 @@
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="103"/>
<source>Select Multimedia Files</source>
- <translation type="unfinished">Pasirinkti multimedijos failus</translation>
+ <translation>Pasirinkti multimedijos failus</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="130"/>
<source>Select Multimedia Directory</source>
- <translation type="unfinished">Pasirinkti multimedijos katalogą</translation>
+ <translation>Pasirinkti multimedijos katalogą</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="159"/>
<source>Enter a valid URL for a multimedia file or stream:</source>
- <translation type="unfinished">Įveskite taisyklingą multimedijos failo ar srauto URL:</translation>
+ <translation>Įveskite taisyklingą multimedijos failo ar srauto URL:</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="161"/>
<source>Multimedia URL</source>
- <translation type="unfinished">Multimedijos URL</translation>
+ <translation>Multimedijos URL</translation>
</message>
</context>
<context>
diff --git a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts
index 8ce06739..806b46f3 100644
--- a/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts
+++ b/src-qt5/core/lumina-desktop/i18n/lumina-desktop_pl.ts
@@ -231,157 +231,157 @@
<message>
<location filename="../BootSplash.cpp" line="69"/>
<source>Any society that would give up a little liberty to gain a little security will deserve neither and lose both.</source>
- <translation type="unfinished"></translation>
+ <translation>Any society that would give up a little liberty to gain a little security will deserve neither and lose both.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="71"/>
<source>Never trust a computer you can’t throw out a window.</source>
- <translation type="unfinished"></translation>
+ <translation>Never trust a computer you can’t throw out a window.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="73"/>
<source>Study the past if you would define the future.</source>
- <translation type="unfinished"></translation>
+ <translation>Study the past if you would define the future.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="75"/>
<source>The way to get started is to quit talking and begin doing.</source>
- <translation type="unfinished"></translation>
+ <translation>The way to get started is to quit talking and begin doing.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="77"/>
<source>Ask and it will be given to you; search, and you will find; knock and the door will be opened for you.</source>
- <translation type="unfinished"></translation>
+ <translation>Ask and it will be given to you; search, and you will find; knock and the door will be opened for you.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="79"/>
<source>Start where you are. Use what you have. Do what you can.</source>
- <translation type="unfinished"></translation>
+ <translation>Start where you are. Use what you have. Do what you can.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="81"/>
<source>A person who never made a mistake never tried anything new.</source>
- <translation type="unfinished"></translation>
+ <translation>A person who never made a mistake never tried anything new.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="83"/>
<source>It does not matter how slowly you go as long as you do not stop.</source>
- <translation type="unfinished"></translation>
+ <translation>It does not matter how slowly you go as long as you do not stop.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="85"/>
<source>Do what you can, where you are, with what you have.</source>
- <translation type="unfinished"></translation>
+ <translation>Do what you can, where you are, with what you have.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="87"/>
<source>Remember no one can make you feel inferior without your consent.</source>
- <translation type="unfinished"></translation>
+ <translation>Remember no one can make you feel inferior without your consent.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="89"/>
<source>It’s not the years in your life that count. It’s the life in your years.</source>
- <translation type="unfinished"></translation>
+ <translation>It’s not the years in your life that count. It’s the life in your years.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="91"/>
<source>Either write something worth reading or do something worth writing.</source>
- <translation type="unfinished"></translation>
+ <translation>Either write something worth reading or do something worth writing.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="93"/>
<source>The only way to do great work is to love what you do.</source>
- <translation type="unfinished"></translation>
+ <translation>The only way to do great work is to love what you do.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="95"/>
<source>Political correctness is tyranny with manners.</source>
- <translation type="unfinished"></translation>
+ <translation>Political correctness is tyranny with manners.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="97"/>
<source>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</source>
- <translation type="unfinished"></translation>
+ <translation>Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="99"/>
<source>I find that the harder I work, the more luck I seem to have.</source>
- <translation type="unfinished"></translation>
+ <translation>I find that the harder I work, the more luck I seem to have.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="101"/>
<source>Do, or do not. There is no 'try'.</source>
- <translation type="unfinished"></translation>
+ <translation>Do, or do not. There is no 'try'.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="103"/>
<source>A mathematician is a device for turning coffee into theorems.</source>
- <translation type="unfinished"></translation>
+ <translation>A mathematician is a device for turning coffee into theorems.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="105"/>
<source>Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws.</source>
- <translation type="unfinished"></translation>
+ <translation>Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="107"/>
<source>Black holes are where God divided by zero.</source>
- <translation type="unfinished"></translation>
+ <translation>Black holes are where God divided by zero.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="109"/>
<source>It's kind of fun to do the impossible.</source>
- <translation type="unfinished"></translation>
+ <translation>It's kind of fun to do the impossible.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="111"/>
<source>Knowledge speaks, but wisdom listens.</source>
- <translation type="unfinished"></translation>
+ <translation>Knowledge speaks, but wisdom listens.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="113"/>
<source>A witty saying proves nothing.</source>
- <translation type="unfinished"></translation>
+ <translation>A witty saying proves nothing.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="115"/>
<source>Success usually comes to those who are too busy to be looking for it.</source>
- <translation type="unfinished"></translation>
+ <translation>Success usually comes to those who are too busy to be looking for it.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="117"/>
<source>Well-timed silence hath more eloquence than speech.</source>
- <translation type="unfinished"></translation>
+ <translation>Well-timed silence hath more eloquence than speech.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="119"/>
<source>I have never let my schooling interfere with my education.</source>
- <translation type="unfinished"></translation>
+ <translation>I have never let my schooling interfere with my education.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="121"/>
<source>The best way to predict the future is to invent it.</source>
- <translation type="unfinished"></translation>
+ <translation>The best way to predict the future is to invent it.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="123"/>
<source>Well done is better than well said.</source>
- <translation type="unfinished"></translation>
+ <translation>Well done is better than well said.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="125"/>
<source>Sometimes it is not enough that we do our best; we must do what is required.</source>
- <translation type="unfinished"></translation>
+ <translation>Sometimes it is not enough that we do our best; we must do what is required.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="127"/>
<source>The truth is more important than the facts.</source>
- <translation type="unfinished"></translation>
+ <translation>The truth is more important than the facts.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="129"/>
<source>Better to remain silent and be thought a fool than to speak out and remove all doubt.</source>
- <translation type="unfinished"></translation>
+ <translation>Better to remain silent and be thought a fool than to speak out and remove all doubt.</translation>
</message>
<message>
<location filename="../BootSplash.cpp" line="140"/>
@@ -642,17 +642,17 @@
<message>
<location filename="../desktop-plugins/LDPlugin.cpp" line="38"/>
<source>Launch Item</source>
- <translation type="unfinished"></translation>
+ <translation>Uruchom</translation>
</message>
<message>
<location filename="../desktop-plugins/LDPlugin.cpp" line="42"/>
<source>Start Moving Item</source>
- <translation>Zacznij przesuwać element</translation>
+ <translation>Przesuń element</translation>
</message>
<message>
<location filename="../desktop-plugins/LDPlugin.cpp" line="43"/>
<source>Start Resizing Item</source>
- <translation>Zacznij zmieniać rozmiar elementu</translation>
+ <translation>Zmień rozmiar elementu</translation>
</message>
<message>
<location filename="../desktop-plugins/LDPlugin.cpp" line="45"/>
@@ -738,7 +738,7 @@
<message>
<location filename="../LDesktop.cpp" line="292"/>
<source>Lock Session</source>
- <translation type="unfinished"></translation>
+ <translation>Zablokuj sesję</translation>
</message>
<message>
<location filename="../LDesktop.cpp" line="293"/>
@@ -982,57 +982,57 @@
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Formularz</translation>
+ <translation>Formularz</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="69"/>
<source>Clear Playlist</source>
- <translation type="unfinished">Wyczyść listę odtwarzania</translation>
+ <translation>Wyczyść listę odtwarzania</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="70"/>
<source>Shuffle Playlist</source>
- <translation type="unfinished">Odtwarzanie losowe</translation>
+ <translation>Odtwarzanie losowe</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="72"/>
<source>Add Files</source>
- <translation type="unfinished">Dodaj pliki</translation>
+ <translation>Dodaj pliki</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="73"/>
<source>Add Directory</source>
- <translation type="unfinished">Dodaj katalog</translation>
+ <translation>Dodaj katalog</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="74"/>
<source>Add URL</source>
- <translation type="unfinished">Dodaj URL</translation>
+ <translation>Dodaj URL</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="102"/>
<source>Multimedia Files</source>
- <translation type="unfinished">Pliki multimedialne</translation>
+ <translation>Pliki multimedialne</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="103"/>
<source>Select Multimedia Files</source>
- <translation type="unfinished">Wybierz pliki multimedialne</translation>
+ <translation>Wybierz pliki multimedialne</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="130"/>
<source>Select Multimedia Directory</source>
- <translation type="unfinished">Wybierz katalog z multimediami</translation>
+ <translation>Wybierz katalog z multimediami</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="159"/>
<source>Enter a valid URL for a multimedia file or stream:</source>
- <translation type="unfinished">Podaj adres URL pliku lub strumienia multimedialnego:</translation>
+ <translation>Podaj adres URL pliku lub strumienia multimedialnego:</translation>
</message>
<message>
<location filename="../panel-plugins/audioplayer/PPlayerWidget.cpp" line="161"/>
<source>Multimedia URL</source>
- <translation type="unfinished">Adres URL multimediów</translation>
+ <translation>Adres URL multimediów</translation>
</message>
</context>
<context>
@@ -1264,7 +1264,7 @@
<message>
<location filename="../SettingsMenu.cpp" line="33"/>
<source>Wallpaper</source>
- <translation type="unfinished"></translation>
+ <translation>Tapeta</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="36"/>
@@ -1274,7 +1274,7 @@
<message>
<location filename="../SettingsMenu.cpp" line="39"/>
<source>All Desktop Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia pulpitu</translation>
</message>
<message>
<location filename="../SettingsMenu.cpp" line="54"/>
diff --git a/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp b/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp
index 0dd68bb0..ab4e786f 100644
--- a/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp
+++ b/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskButton.cpp
@@ -16,7 +16,6 @@ LTaskButton::LTaskButton(QWidget *parent, bool smallDisplay) : LTBWidget(parent)
winMenu = new QMenu(this);
UpdateMenus();
showText = !smallDisplay;
- this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
this->setAutoRaise(false); //make sure these always look like buttons
this->setContextMenuPolicy(Qt::CustomContextMenu);
this->setFocusPolicy(Qt::NoFocus);
@@ -126,16 +125,15 @@ void LTaskButton::UpdateButton(){
QString txt = WINLIST[0].text();
if(txt.length()>30){ txt.truncate(27); txt.append("..."); }
else if(txt.length()<30){ txt = txt.leftJustified(30, ' '); }
- this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); this->setText(txt);
- }else if(noicon){ this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); this->setText( cname ); }
- else{ this->setToolButtonStyle(Qt::ToolButtonIconOnly); this->setText(""); }
+ this->setText(txt);
+ }else if(noicon){ this->setText( cname ); }
+ else{ this->setText(""); }
this->setToolTip(WINLIST[0].text());
}else if(WINLIST.length() > 1){
//multiple windows
this->setPopupMode(QToolButton::InstantPopup);
this->setMenu(winMenu);
- this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- if(noicon || showText){ "("+QString::number(WINLIST.length())+") "+cname; }
+ if(noicon || showText){ this->setText("("+QString::number(WINLIST.length())+") "+cname); }
else{ this->setText("("+QString::number(WINLIST.length())+")"); }
}
this->setState(showstate); //Make sure this is after the button setup so that it properly sets the margins/etc
diff --git a/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp b/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp
index 79c5dd36..c8e24702 100644
--- a/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp
+++ b/src-qt5/core/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp
@@ -116,8 +116,10 @@ void LTaskManagerPlugin::UpdateButtons(){
but->addWindow( winlist[i] );
if(this->layout()->direction()==QBoxLayout::LeftToRight){
but->setIconSize(QSize(this->height(), this->height()));
+ but->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
}else{
but->setIconSize(QSize(this->width(), this->width()));
+ but->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
}
this->layout()->addWidget(but);
connect(but, SIGNAL(MenuClosed()), this, SIGNAL(MenuClosed()));
diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_da.ts b/src-qt5/core/lumina-info/i18n/lumina-info_da.ts
index 97caa513..894a0dc0 100644
--- a/src-qt5/core/lumina-info/i18n/lumina-info_da.ts
+++ b/src-qt5/core/lumina-info/i18n/lumina-info_da.ts
@@ -6,7 +6,7 @@
<message>
<location filename="../MainUI.ui" line="14"/>
<source>Lumina Desktop Information</source>
- <translation>Lumina Skrivebords Information</translation>
+ <translation>Lumina-skrivebordsinformation</translation>
</message>
<message>
<location filename="../MainUI.ui" line="60"/>
@@ -21,7 +21,7 @@
<message>
<location filename="../MainUI.ui" line="124"/>
<source>Lumina Website</source>
- <translation>Hjemmeside for Lumina</translation>
+ <translation>Lumina-websted</translation>
</message>
<message>
<location filename="../MainUI.ui" line="152"/>
@@ -31,17 +31,17 @@
<message>
<location filename="../MainUI.ui" line="179"/>
<source>Desktop Version:</source>
- <translation>Skrivebords Version:</translation>
+ <translation>Skrivebordsversion:</translation>
</message>
<message>
<location filename="../MainUI.ui" line="202"/>
<source>OS Build:</source>
- <translation></translation>
+ <translation>OS-byg:</translation>
</message>
<message>
<location filename="../MainUI.ui" line="218"/>
<source>Qt Version:</source>
- <translation>Qt Version:</translation>
+ <translation>Qt version:</translation>
</message>
<message>
<location filename="../MainUI.ui" line="276"/>
@@ -51,7 +51,7 @@
<message>
<location filename="../MainUI.ui" line="233"/>
<source>View Information</source>
- <translation>Se Information</translation>
+ <translation>Vis information</translation>
</message>
<message>
<location filename="../MainUI.ui" line="298"/>
@@ -70,8 +70,8 @@
</message>
<message>
<location filename="../MainUI.ui" line="340"/>
- <source>&lt;a href=&quot;https://github.com/beanpole135&quot;&gt;Ken Moore&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;https://github.com/beanpole135&quot;&gt; Ken Moore&lt;/a&gt;</translation>
+ <source>&lt;a href="https://github.com/beanpole135"&gt;Ken Moore&lt;/a&gt;</source>
+ <translation>&lt;a href="https://github.com/beanpole135"&gt;Ken Moore&lt;/a&gt;</translation>
</message>
<message>
<location filename="../MainUI.ui" line="353"/>
@@ -85,8 +85,8 @@
</message>
<message>
<location filename="../MainUI.ui" line="428"/>
- <source>&lt;a href=&quot;https://github.com/pcbsd/lumina/graphs/contributors&quot;&gt;Open in web browser&lt;a&gt;</source>
- <translation>&lt;a href=&quot;https://github.com/pcbsd/lumina/graphs/contributors&quot;&gt;Åben i en web browser&lt;a&gt;</translation>
+ <source>&lt;a href="https://github.com/pcbsd/lumina/graphs/contributors"&gt;Open in web browser&lt;a&gt;</source>
+ <translation>&lt;a href="https://github.com/pcbsd/lumina/graphs/contributors"&gt;Åbn i en webbrowser&lt;a&gt;</translation>
</message>
<message>
<location filename="../MainUI.ui" line="454"/>
diff --git a/src-qt5/core/lumina-info/i18n/lumina-info_pl.ts b/src-qt5/core/lumina-info/i18n/lumina-info_pl.ts
index 6ff00c18..0bc77338 100644
--- a/src-qt5/core/lumina-info/i18n/lumina-info_pl.ts
+++ b/src-qt5/core/lumina-info/i18n/lumina-info_pl.ts
@@ -16,7 +16,7 @@
<message>
<location filename="../MainUI.ui" line="89"/>
<source>Source Repository</source>
- <translation>Repozytorium Żródłowe</translation>
+ <translation>Repozytorium źródłowe</translation>
</message>
<message>
<location filename="../MainUI.ui" line="124"/>
@@ -26,7 +26,7 @@
<message>
<location filename="../MainUI.ui" line="152"/>
<source>Bug Reports</source>
- <translation>Zgłaszanie Błędów</translation>
+ <translation>Zgłaszanie błędów</translation>
</message>
<message>
<location filename="../MainUI.ui" line="179"/>
@@ -46,7 +46,7 @@
<message>
<location filename="../MainUI.ui" line="276"/>
<source>Ask the Community</source>
- <translation type="unfinished">Zadaj Pytanie</translation>
+ <translation>Zapytaj Społeczność</translation>
</message>
<message>
<location filename="../MainUI.ui" line="233"/>
@@ -70,8 +70,8 @@
</message>
<message>
<location filename="../MainUI.ui" line="340"/>
- <source>&lt;a href=&quot;https://github.com/beanpole135&quot;&gt;Ken Moore&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;https://github.com/beanpole135&quot;&gt;Ken Moore&lt;/a&gt;</translation>
+ <source>&lt;a href="https://github.com/beanpole135"&gt;Ken Moore&lt;/a&gt;</source>
+ <translation>&lt;a href="https://github.com/beanpole135"&gt;Ken Moore&lt;/a&gt;</translation>
</message>
<message>
<location filename="../MainUI.ui" line="353"/>
@@ -85,8 +85,8 @@
</message>
<message>
<location filename="../MainUI.ui" line="428"/>
- <source>&lt;a href=&quot;https://github.com/pcbsd/lumina/graphs/contributors&quot;&gt;Open in web browser&lt;a&gt;</source>
- <translation>&lt;a href=&quot;https://github.com/pcbsd/lumina/graphs/contributors&quot;&gt;Otwórz w przeglądarce internetowej&lt;a&gt;</translation>
+ <source>&lt;a href="https://github.com/pcbsd/lumina/graphs/contributors"&gt;Open in web browser&lt;a&gt;</source>
+ <translation>&lt;a href="https://github.com/pcbsd/lumina/graphs/contributors"&gt;Otwórz w przeglądarce internetowej&lt;a&gt;</translation>
</message>
<message>
<location filename="../MainUI.ui" line="454"/>
diff --git a/src-qt5/core/lumina-open/LFileDialog.cpp b/src-qt5/core/lumina-open/LFileDialog.cpp
index a0fef17c..a400c60b 100644
--- a/src-qt5/core/lumina-open/LFileDialog.cpp
+++ b/src-qt5/core/lumina-open/LFileDialog.cpp
@@ -161,11 +161,13 @@ void LFileDialog::generateAppList(bool shownetwork){
XDGDesktopList applist;
applist.updateList();
PREFAPPS = getPreferredApplications();
- //qDebug() << "Preferred Apps:" << PREFAPPS;
+ qDebug() << "Preferred Apps:" << PREFAPPS;
ui->combo_rec->clear();
//Now get the application mimetype for the file extension (if available)
QStringList mimetypes = LXDG::findAppMimeForFile(filePath, true).split("::::"); //use all mimetypes
mimetypes.removeDuplicates();
+ QString defapp = getDefaultApp(mimetypes.first()); //default application
+ if(!defapp.isEmpty() && !PREFAPPS.contains(defapp) ){ PREFAPPS << defapp; } //ensure this is listed in the preferred apps list
//Now add all the detected applications
QHash< QString, QList<XDGDesktop*> > hash = LXDG::sortDesktopCats( applist.apps(false,true) );
QStringList cat = hash.keys();
@@ -205,7 +207,9 @@ void LFileDialog::generateAppList(bool shownetwork){
for(int i=0; i<PREFAPPS.length(); i++){
XDGDesktop dFile(PREFAPPS[i]);
if( dFile.isValid() ){
- ui->combo_rec->addItem( LXDG::findIcon(dFile.icon, "application-x-desktop"), dFile.name);
+ QString txt = dFile.name;
+ if(PREFAPPS[i] == defapp){ txt.prepend( tr("[default] ") ); }
+ ui->combo_rec->addItem( LXDG::findIcon(dFile.icon, "application-x-desktop"), txt);
if(i==0){ ui->combo_rec->setCurrentIndex(0); } //make sure the first item is selected
}else{
PREFAPPS.removeAt(i); //invalid app
diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_da.ts b/src-qt5/core/lumina-open/i18n/lumina-open_da.ts
index 757d5128..4f6d82c2 100644
--- a/src-qt5/core/lumina-open/i18n/lumina-open_da.ts
+++ b/src-qt5/core/lumina-open/i18n/lumina-open_da.ts
@@ -31,7 +31,7 @@
<message>
<location filename="../LFileDialog.ui" line="138"/>
<source>Find</source>
- <translation>Søg</translation>
+ <translation>Find</translation>
</message>
<message>
<location filename="../LFileDialog.ui" line="199"/>
@@ -41,22 +41,22 @@
<message>
<location filename="../LFileDialog.ui" line="221"/>
<source>OK</source>
- <translation>Ok</translation>
+ <translation>OK</translation>
</message>
<message>
<location filename="../LFileDialog.ui" line="235"/>
<source>Cancel</source>
- <translation>Annullér</translation>
+ <translation>Annuller</translation>
</message>
<message>
<location filename="../LFileDialog.cpp" line="40"/>
<source>(Email Link)</source>
- <translation>Email henvisning</translation>
+ <translation>(e-maillink)</translation>
</message>
<message>
<location filename="../LFileDialog.cpp" line="41"/>
<source>(Internet URL - %1)</source>
- <translation>(Internet URL - %1)</translation>
+ <translation>(Internet-URL - %1)</translation>
</message>
<message>
<location filename="../LFileDialog.cpp" line="114"/>
@@ -121,7 +121,7 @@
<message>
<location filename="../LFileDialog.cpp" line="126"/>
<source>Utilities</source>
- <translation>Værktøjer</translation>
+ <translation>Redskaber</translation>
</message>
<message>
<location filename="../LFileDialog.cpp" line="127"/>
@@ -145,13 +145,13 @@
<location filename="../main.cpp" line="188"/>
<location filename="../main.cpp" line="194"/>
<source>Audio Volume %1%</source>
- <translation>Lyd Volume %1%</translation>
+ <translation>Lydstyrke %1%</translation>
</message>
<message>
<location filename="../main.cpp" line="202"/>
<location filename="../main.cpp" line="211"/>
<source>Screen Brightness %1%</source>
- <translation>skærm-lysstyrke %1%</translation>
+ <translation>Skærm-lysstyrke %1%</translation>
</message>
<message>
<location filename="../main.cpp" line="243"/>
@@ -161,7 +161,7 @@
<message>
<location filename="../main.cpp" line="264"/>
<source>Application entry is invalid: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Programpost er ugyldig: %1</translation>
</message>
<message>
<location filename="../main.cpp" line="273"/>
@@ -171,7 +171,7 @@
<message>
<location filename="../main.cpp" line="284"/>
<source>URL shortcut is missing the URL: %1</source>
- <translation>URL genvej mangler URL&apos;en: %1</translation>
+ <translation>URL genvej mangler URL'en: %1</translation>
</message>
<message>
<location filename="../main.cpp" line="295"/>
@@ -190,8 +190,8 @@
</message>
<message>
<location filename="../main.cpp" line="363"/>
- <source>Could not find &quot;%1&quot;. Please ensure it is installed first.</source>
- <translation>Kunne ikke finde &quot;%1&quot;. Sørg for at programmet er installeret først.</translation>
+ <source>Could not find "%1". Please ensure it is installed first.</source>
+ <translation>Kunne ikke finde "%1". Sørg for at programmet er installeret først.</translation>
</message>
<message>
<location filename="../main.cpp" line="413"/>
diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_de.ts b/src-qt5/core/lumina-open/i18n/lumina-open_de.ts
index 8af30d78..08e0bb7e 100644
--- a/src-qt5/core/lumina-open/i18n/lumina-open_de.ts
+++ b/src-qt5/core/lumina-open/i18n/lumina-open_de.ts
@@ -161,7 +161,7 @@
<message>
<location filename="../main.cpp" line="264"/>
<source>Application entry is invalid: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Anwendungseintrag ist ungültig: %1</translation>
</message>
<message>
<location filename="../main.cpp" line="273"/>
@@ -171,17 +171,17 @@
<message>
<location filename="../main.cpp" line="284"/>
<source>URL shortcut is missing the URL: %1</source>
- <translation>fehlende URL für URL: %1</translation>
+ <translation>URL-Verknüpfung fehlt die URL: %1</translation>
</message>
<message>
<location filename="../main.cpp" line="295"/>
<source>Directory shortcut is missing the path to the directory: %1</source>
- <translation>fehlender Pfad zum Verzeichnis der Verknüpfung: %1</translation>
+ <translation>Verzeichnisverknüpfung fehlt der Pfad zum Verzeichnis: %1</translation>
</message>
<message>
<location filename="../main.cpp" line="300"/>
<source>Unknown type of shortcut : %1</source>
- <translation>unbekannter Typ für Vernüpfung: %1</translation>
+ <translation>Unbekannter Typ für Vernüpfung: %1</translation>
</message>
<message>
<location filename="../main.cpp" line="363"/>
@@ -190,8 +190,8 @@
</message>
<message>
<location filename="../main.cpp" line="363"/>
- <source>Could not find &quot;%1&quot;. Please ensure it is installed first.</source>
- <translation>Konnte &quot;%1&quot; nicht finden. Bitte stellen Sie zuerst sicher, dass es installiert ist.</translation>
+ <source>Could not find "%1". Please ensure it is installed first.</source>
+ <translation>Konnte "%1" nicht finden. Bitte stellen Sie zuerst sicher, dass es installiert ist.</translation>
</message>
<message>
<location filename="../main.cpp" line="413"/>
diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_it.ts b/src-qt5/core/lumina-open/i18n/lumina-open_it.ts
index 341374d2..415476ca 100644
--- a/src-qt5/core/lumina-open/i18n/lumina-open_it.ts
+++ b/src-qt5/core/lumina-open/i18n/lumina-open_it.ts
@@ -26,7 +26,7 @@
<message>
<location filename="../LFileDialog.ui" line="131"/>
<source>Binary Location</source>
- <translation type="unfinished">Posizione codice binario</translation>
+ <translation>Posizione codice binario</translation>
</message>
<message>
<location filename="../LFileDialog.ui" line="138"/>
diff --git a/src-qt5/core/lumina-open/i18n/lumina-open_lt.ts b/src-qt5/core/lumina-open/i18n/lumina-open_lt.ts
index acb59691..fce7de40 100644
--- a/src-qt5/core/lumina-open/i18n/lumina-open_lt.ts
+++ b/src-qt5/core/lumina-open/i18n/lumina-open_lt.ts
@@ -161,7 +161,7 @@
<message>
<location filename="../main.cpp" line="264"/>
<source>Application entry is invalid: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Programos įrašas yra neteisingas: %1</translation>
</message>
<message>
<location filename="../main.cpp" line="273"/>
@@ -190,8 +190,8 @@
</message>
<message>
<location filename="../main.cpp" line="363"/>
- <source>Could not find &quot;%1&quot;. Please ensure it is installed first.</source>
- <translation>Nepavyko rasti &quot;%1&quot;. Iš pradžių, įsitikinkite ar ji įdiegta.</translation>
+ <source>Could not find "%1". Please ensure it is installed first.</source>
+ <translation>Nepavyko rasti "%1". Iš pradžių, įsitikinkite ar ji įdiegta.</translation>
</message>
<message>
<location filename="../main.cpp" line="413"/>
diff --git a/src-qt5/core/lumina-session/main.cpp b/src-qt5/core/lumina-session/main.cpp
index ed391e04..3696ed20 100644
--- a/src-qt5/core/lumina-session/main.cpp
+++ b/src-qt5/core/lumina-session/main.cpp
@@ -61,7 +61,9 @@ int main(int argc, char ** argv)
//Check for any stale desktop lock files and clean them up
QString cfile = QDir::tempPath()+"/.LSingleApp-%1-%2-%3";
- cfile = cfile.arg( QString(getlogin()), "lumina-desktop", QString::number(QX11Info::appScreen()) );
+ QString desk = "lumina-desktop";
+ if(unified){ desk.append("-unified"); }
+ cfile = cfile.arg( QString(getlogin()), desk, QString::number(QX11Info::appScreen()) );
if(QFile::exists(cfile)){
qDebug() << "Found Desktop Lock for X session:" << disp;
qDebug() << " - Disabling Lock and starting new desktop session";
diff --git a/src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_da.ts b/src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_da.ts
index 4a8aaca2..0edee8df 100644
--- a/src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_da.ts
+++ b/src-qt5/core/lumina-wm-INCOMPLETE/i18n/lumina-wm_da.ts
@@ -6,37 +6,37 @@
<message>
<location filename="../LLockScreen.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../LLockScreen.ui" line="114"/>
<source>Password</source>
- <translation type="unfinished"></translation>
+ <translation>Adgangskode</translation>
</message>
<message>
<location filename="../LLockScreen.ui" line="126"/>
<source>Unlock Session</source>
- <translation type="unfinished"></translation>
+ <translation>Lås session op</translation>
</message>
<message>
<location filename="../LLockScreen.cpp" line="39"/>
<source>Locked by: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Låst af: %1</translation>
</message>
<message>
<location filename="../LLockScreen.cpp" line="76"/>
<source>Too Many Failures</source>
- <translation type="unfinished"></translation>
+ <translation>For mange mislykkedes forsøg</translation>
</message>
<message>
<location filename="../LLockScreen.cpp" line="76"/>
<source>Wait %1 Minutes</source>
- <translation type="unfinished"></translation>
+ <translation>Vent %1 minutter</translation>
</message>
<message>
<location filename="../LLockScreen.cpp" line="77"/>
<source>Failed Attempts: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Mislykkede forsøg: %1</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-archiver/MainUI.cpp b/src-qt5/desktop-utils/lumina-archiver/MainUI.cpp
index e465cdf8..2972550c 100644
--- a/src-qt5/desktop-utils/lumina-archiver/MainUI.cpp
+++ b/src-qt5/desktop-utils/lumina-archiver/MainUI.cpp
@@ -42,6 +42,7 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){
connect(ui->actionAdd_Dirs, SIGNAL(triggered()), this, SLOT(addDirs()) );
connect(ui->tree_contents, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), this, SLOT(ViewFile(QTreeWidgetItem*)) );
connect(ui->actionUSB_Image, SIGNAL(triggered()), this, SLOT(BurnImgToUSB()) );
+ connect(ui->tree_contents, SIGNAL(itemSelectionChanged()), this, SLOT(selectionChanged()) );
//Set Keyboard Shortcuts
ui->action_New->setShortcut(tr("CTRL+N"));
@@ -88,7 +89,7 @@ void MainUI::loadIcons(){
ui->actionAdd_Dirs->setIcon( LXDG::findIcon("archive-insert-directory","") );
ui->actionRemove_File->setIcon( LXDG::findIcon("archive-remove","") );
ui->actionExtract_All->setIcon( LXDG::findIcon("archive-extract","") );
- ui->actionExtract_Sel->setIcon( LXDG::findIcon("archive-extract","") );
+ ui->actionExtract_Sel->setIcon( LXDG::findIcon("edit-select-all","") );
ui->actionUSB_Image->setIcon( LXDG::findIcon("drive-removable-media-usb-pendrive","drive-removable-media-usb") );
}
@@ -112,6 +113,12 @@ QTreeWidgetItem* MainUI::findItem(QString path, QTreeWidgetItem *start){
}
bool MainUI::cleanItems(QStringList list, QTreeWidgetItem *start){
+ //Quick detection for an empty list
+ if(list.isEmpty() && ui->tree_contents->topLevelItemCount()>0){
+ ui->tree_contents->clear();
+ return true;
+ }
+ //Recursive resolution of items
bool changed = false;
if(start==0){
for(int i=0; i<ui->tree_contents->topLevelItemCount(); i++){
@@ -154,7 +161,7 @@ QString MainUI::CreateFileTypes(){
QString MainUI::OpenFileTypes(){
QStringList types;
- types << QString(tr("All Types %1")).arg("(*.tar.gz *.tar.xz *.tar.bz *.tar.bz2 *.tar.lzma *.tar *.zip *.tgz *.txz *.tbz *.tbz2 *.tlz *.cpio *.pax *.ar *.shar *.7z *.iso *.img *.xar *.jar *.rpm)");
+ types << QString(tr("All Known Types %1")).arg("(*.tar.gz *.tar.xz *.tar.bz *.tar.bz2 *.tar.lzma *.tar *.zip *.tgz *.txz *.tbz *.tbz2 *.tlz *.cpio *.pax *.ar *.shar *.7z *.iso *.img *.xar *.jar *.rpm)");
types << tr("Uncompressed Archive (*.tar)");
types << tr("GZip Compressed Archive (*.tar.gz *.tgz)");
types << tr("BZip Compressed Archive (*.tar.bz *.tbz)");
@@ -171,6 +178,7 @@ QString MainUI::OpenFileTypes(){
types << tr("READ-ONLY: XAR archive (*.xar)");
types << tr("READ-ONLY: Java archive (*.jar)");
types << tr("READ-ONLY: RedHat Package (*.rpm)");
+ types << tr("Show All Files (*)");
return types.join(";;");
}
@@ -340,7 +348,8 @@ void MainUI::ProcFinished(bool success, QString msg){
canmodify = canmodify && BACKEND->canModify(); //also include the file type limitations
ui->actionAdd_File->setEnabled(canmodify);
ui->actionRemove_File->setEnabled(canmodify && info.exists());
- ui->actionExtract_All->setEnabled(info.exists());
+ ui->actionExtract_All->setEnabled(info.exists() && ui->tree_contents->topLevelItemCount()>0);
+ ui->actionExtract_Sel->setEnabled(info.exists() && !ui->tree_contents->selectedItems().isEmpty());
ui->actionAdd_Dirs->setEnabled(canmodify);
}
@@ -349,3 +358,7 @@ void MainUI::ProcUpdate(int percent, QString txt){
ui->progressBar->setValue(percent);
if(!txt.isEmpty()){ ui->label_progress->setText(txt); }
}
+
+void MainUI::selectionChanged(){
+ ui->actionExtract_Sel->setEnabled(!ui->tree_contents->selectedItems().isEmpty());
+}
diff --git a/src-qt5/desktop-utils/lumina-archiver/MainUI.h b/src-qt5/desktop-utils/lumina-archiver/MainUI.h
index bf37d26a..273078ea 100644
--- a/src-qt5/desktop-utils/lumina-archiver/MainUI.h
+++ b/src-qt5/desktop-utils/lumina-archiver/MainUI.h
@@ -55,6 +55,8 @@ private slots:
void ProcFinished(bool, QString);
void ProcUpdate(int percent, QString txt);
+ //UI Slots
+ void selectionChanged();
};
#endif
diff --git a/src-qt5/desktop-utils/lumina-archiver/MainUI.ui b/src-qt5/desktop-utils/lumina-archiver/MainUI.ui
index 6666b7cb..0fc9eadf 100644
--- a/src-qt5/desktop-utils/lumina-archiver/MainUI.ui
+++ b/src-qt5/desktop-utils/lumina-archiver/MainUI.ui
@@ -15,6 +15,15 @@
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <property name="topMargin">
+ <number>1</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@@ -111,7 +120,7 @@
<x>0</x>
<y>0</y>
<width>403</width>
- <height>22</height>
+ <height>20</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@@ -168,6 +177,7 @@
<addaction name="actionRemove_File"/>
<addaction name="separator"/>
<addaction name="actionExtract_All"/>
+ <addaction name="actionExtract_Sel"/>
</widget>
<action name="action_Open">
<property name="text">
@@ -226,6 +236,9 @@
<property name="text">
<string>Extract Selection</string>
</property>
+ <property name="statusTip">
+ <string>Extract Selected Items</string>
+ </property>
</action>
<action name="actionUSB_Image">
<property name="text">
diff --git a/src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp b/src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp
index 78efd51c..0659f8b1 100644
--- a/src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp
+++ b/src-qt5/desktop-utils/lumina-archiver/TarBackend.cpp
@@ -27,6 +27,7 @@ Backend::~Backend(){
// PUBLIC
//===============
void Backend::loadFile(QString path){
+ //qDebug() << "Loading Archive:" << path;
filepath = path;
tmpfilepath = filepath.section("/",0,-2)+"/"+".tmp_larchiver_"+filepath.section("/",-1);
flags.clear();
@@ -149,7 +150,7 @@ void Backend::startViewFile(QString path){
args << "-x";
args << flags <<"--include" << path <<"--strip-components" << QString::number(path.count("/")) << "-C" << QDir::tempPath();
STARTING=true;
- qDebug() << "Starting command:" << "tar" << args;
+ //qDebug() << "Starting command:" << "tar" << args;
PROC.start("tar", args);
}
@@ -195,6 +196,7 @@ void Backend::startList(){
QStringList args;
args << "-tv";
LIST = STARTING=true;
+ //qDebug() << "Starting List:" << "tar "+args.join(" ")+" "+flags.join(" ");
PROC.start("tar", QStringList() << args << flags);
}
@@ -203,12 +205,17 @@ void Backend::startList(){
//===============
void Backend::procFinished(int retcode, QProcess::ExitStatus){
static QString result;
- processData();
//qDebug() << "Process Finished:" << PROC.arguments() << retcode;
+ processData();
LIST = STARTING = false;
if(PROC.arguments().contains("-tv")){
- if(retcode!=0){ contents.clear(); } //could not read archive
- emit ProcessFinished(true,result);
+ if(retcode!=0){ //could not read archive
+ contents.clear();
+ result = tr("Could not read archive");
+ }else if(result.isEmpty()){
+ result = tr("Archive Loaded");
+ }
+ emit ProcessFinished((retcode==0), result);
result.clear();
}else{
bool needupdate = true;
diff --git a/src-qt5/desktop-utils/lumina-fileinfo/i18n/l-fileinfo_da.ts b/src-qt5/desktop-utils/lumina-fileinfo/i18n/l-fileinfo_da.ts
index 945bea76..526d90a9 100644
--- a/src-qt5/desktop-utils/lumina-fileinfo/i18n/l-fileinfo_da.ts
+++ b/src-qt5/desktop-utils/lumina-fileinfo/i18n/l-fileinfo_da.ts
@@ -8,7 +8,7 @@
<location filename="../MainUI.ui" line="24"/>
<location filename="../MainUI.cpp" line="97"/>
<source>File Information</source>
- <translation>Filoplysninger</translation>
+ <translation>Filinformation</translation>
</message>
<message>
<location filename="../MainUI.ui" line="56"/>
@@ -48,7 +48,7 @@
<message>
<location filename="../MainUI.ui" line="138"/>
<source>MimeType:</source>
- <translation>MimeType:</translation>
+ <translation>MIME-type:</translation>
</message>
<message>
<location filename="../MainUI.ui" line="185"/>
@@ -124,7 +124,7 @@
<message>
<location filename="../MainUI.cpp" line="70"/>
<source>Read/Write</source>
- <translation>Læs/Skriv</translation>
+ <translation>Læs/skriv</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="71"/>
@@ -144,7 +144,7 @@
<message>
<location filename="../MainUI.cpp" line="77"/>
<source>XDG Shortcut</source>
- <translation>XDG genvej</translation>
+ <translation>XDG-genvej</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="78"/>
@@ -154,7 +154,7 @@
<message>
<location filename="../MainUI.cpp" line="79"/>
<source>Binary</source>
- <translation>Binær fil</translation>
+ <translation>Binær</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="81"/>
@@ -169,17 +169,17 @@
<message>
<location filename="../MainUI.cpp" line="249"/>
<source>Save Application File</source>
- <translation type="unfinished"></translation>
+ <translation>Gem programfil</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="249"/>
<source>Application Registrations (*.desktop)</source>
- <translation type="unfinished"></translation>
+ <translation>Programregistreringer (*.desktop)</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="290"/>
<source>Select a binary</source>
- <translation>Vælg en binær fil</translation>
+ <translation>Vælg en binær</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="293"/>
@@ -189,7 +189,7 @@
<message>
<location filename="../MainUI.cpp" line="293"/>
<source>Invalid selection: Not a valid executable</source>
- <translation type="unfinished"></translation>
+ <translation>Ugyldigt valg: Ikke en eksekverbar</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="305"/>
diff --git a/src-qt5/desktop-utils/lumina-fm/MainUI.cpp b/src-qt5/desktop-utils/lumina-fm/MainUI.cpp
index da3943a2..45ec860a 100644
--- a/src-qt5/desktop-utils/lumina-fm/MainUI.cpp
+++ b/src-qt5/desktop-utils/lumina-fm/MainUI.cpp
@@ -118,7 +118,7 @@ MainUI::~MainUI(){
}
workThread->quit();
//Also ensure the work thread is stopped
- workThread->wait();
+// workThread->wait();
}
void MainUI::OpenDirs(QStringList dirs){
diff --git a/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_da.ts b/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_da.ts
index 6b5ecc1a..5959aa92 100644
--- a/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_da.ts
+++ b/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_da.ts
@@ -6,7 +6,7 @@
<message>
<location filename="../BMMDialog.ui" line="14"/>
<source>Manage Bookmarks</source>
- <translation>Administrér bogmærker</translation>
+ <translation>Håndter bogmærker</translation>
</message>
<message>
<location filename="../BMMDialog.ui" line="35"/>
@@ -51,7 +51,7 @@
<message>
<location filename="../BMMDialog.cpp" line="64"/>
<source>This bookmark name already exists. Please choose another.</source>
- <translation>Dette bogmærke navn findes allerede. Vælg venligst et andet navn.</translation>
+ <translation>Dette bogmærkenavn findes allerede. Vælg venligst et andet.</translation>
</message>
</context>
<context>
@@ -59,52 +59,52 @@
<message>
<location filename="../BrowserWidget.cpp" line="209"/>
<source>Name</source>
- <translation type="unfinished">Navn</translation>
+ <translation>Navn</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="210"/>
<source>Size</source>
- <translation type="unfinished">Størrelse</translation>
+ <translation>Størrelse</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="211"/>
<source>Type</source>
- <translation type="unfinished">Type</translation>
+ <translation>Type</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="212"/>
<source>Date Modified</source>
- <translation type="unfinished">Ændringsdato</translation>
+ <translation>Ændringsdato</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="213"/>
<source>Date Created</source>
- <translation type="unfinished">Oprettelsesdato</translation>
+ <translation>Oprettelsesdato</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="315"/>
<source>Capacity: %1</source>
- <translation type="unfinished">Kapacitet: %1</translation>
+ <translation>Kapacitet: %1</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="341"/>
<source>Files: %1 (%2)</source>
- <translation type="unfinished">Filer: %1 (%2)</translation>
+ <translation>Filer: %1 (%2)</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="343"/>
<source>Files: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Filer: %1</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="349"/>
<source>Dirs: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Mapper: %1</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="363"/>
<source>No Directory Contents</source>
- <translation type="unfinished"></translation>
+ <translation>Intet mappeindhold</translation>
</message>
</context>
<context>
@@ -117,23 +117,23 @@
<message>
<location filename="../widgets/DirWidget2.ui" line="145"/>
<source>Increase Icon Sizes</source>
- <translation type="unfinished"></translation>
+ <translation>Større ikoner</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="161"/>
<source>Decrease Icon Sizes</source>
- <translation type="unfinished"></translation>
+ <translation>Mindre ikoner</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="179"/>
<source>Back</source>
- <translation>Forrige</translation>
+ <translation>Tilbage</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="182"/>
<location filename="../widgets/DirWidget2.ui" line="185"/>
<source>Go back to previous directory</source>
- <translation>Gå til forrige mappe</translation>
+ <translation>Gå tilbage til den forrige mappe</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="193"/>
@@ -160,37 +160,37 @@
<message>
<location filename="../widgets/DirWidget2.ui" line="218"/>
<source>Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Menu</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="221"/>
<source>Select Action</source>
- <translation type="unfinished"></translation>
+ <translation>Vælg handling</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="229"/>
<source>SingleColumn</source>
- <translation type="unfinished"></translation>
+ <translation>Enkelkolonne</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="232"/>
<source>Single column view</source>
- <translation type="unfinished"></translation>
+ <translation>Enkelkolonne visning</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="240"/>
<source>Dual Column</source>
- <translation type="unfinished"></translation>
+ <translation>Dobbeltkolonne</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="243"/>
<source>Dual Column View</source>
- <translation type="unfinished"></translation>
+ <translation>Dobbeltkolonne visning</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="533"/>
<source>(Limited Access) </source>
- <translation>(Begrænset Adgang)</translation>
+ <translation>(begrænset adgang) </translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="555"/>
@@ -230,17 +230,17 @@
<message>
<location filename="../widgets/DirWidget2.cpp" line="488"/>
<source>File Operations</source>
- <translation type="unfinished"></translation>
+ <translation>Filhandlinger</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="502"/>
<source>Directory Operations</source>
- <translation type="unfinished"></translation>
+ <translation>Mappehandlinger</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="514"/>
<source>Loading...</source>
- <translation type="unfinished"></translation>
+ <translation>Indlæser...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="563"/>
@@ -257,97 +257,97 @@
<message>
<location filename="../widgets/DirWidget2.cpp" line="594"/>
<source>The directory could not be created. Please ensure that you have the proper permissions to modify the current directory.</source>
- <translation type="unfinished"></translation>
+ <translation>Mappen kunne ikke oprettes. Sørg venligst for at du har de fornødne tilladelser til at ændre den aktuelle mappe.</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="313"/>
<source>Current</source>
- <translation type="unfinished"></translation>
+ <translation>Aktuelle</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="229"/>
<source>Create...</source>
- <translation type="unfinished"></translation>
+ <translation>Opret...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="231"/>
<source>File</source>
- <translation type="unfinished"></translation>
+ <translation>Fil</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="232"/>
<source>Directory</source>
- <translation type="unfinished"></translation>
+ <translation>Mappe</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="233"/>
<source>Application Launcher</source>
- <translation type="unfinished"></translation>
+ <translation>Programstarter</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="237"/>
<source>Launch...</source>
- <translation type="unfinished"></translation>
+ <translation>Start...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="239"/>
<source>Terminal</source>
- <translation type="unfinished"></translation>
+ <translation>Terminal</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="240"/>
<source>SlideShow</source>
- <translation type="unfinished"></translation>
+ <translation>Diasshow</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="241"/>
<source>Multimedia Player</source>
- <translation type="unfinished"></translation>
+ <translation>Multimedieafspiller</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="256"/>
<source>View Files...</source>
- <translation type="unfinished"></translation>
+ <translation>Vis filer...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="258"/>
<source>Checksums</source>
- <translation type="unfinished"></translation>
+ <translation>Tjeksumme</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="260"/>
<source>Properties</source>
- <translation type="unfinished"></translation>
+ <translation>Egenskaber</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="448"/>
<source>File Checksums:</source>
- <translation type="unfinished"></translation>
+ <translation>Fil-tjeksumme:</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="460"/>
<source>Missing Utility</source>
- <translation type="unfinished"></translation>
+ <translation>Manglende redskaber</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="460"/>
- <source>The &quot;lumina-fileinfo&quot; utility could not be found on the system. Please install it first.</source>
- <translation type="unfinished"></translation>
+ <source>The "lumina-fileinfo" utility could not be found on the system. Please install it first.</source>
+ <translation>Kunne ikke finde "lumina-fileinfo"-redskabet på systemet. Installér det venligst først.</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="485"/>
<source>Open</source>
- <translation type="unfinished"></translation>
+ <translation>Åbn</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="486"/>
<source>Open With...</source>
- <translation type="unfinished"></translation>
+ <translation>Åbn med...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="493"/>
<source>Rename...</source>
- <translation type="unfinished"></translation>
+ <translation>Omdøb...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="494"/>
@@ -390,42 +390,42 @@
<message>
<location filename="../FODialog.cpp" line="19"/>
<source>Calculating</source>
- <translation type="unfinished"></translation>
+ <translation>Udregner</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="131"/>
<source>Overwrite Files?</source>
- <translation type="unfinished"></translation>
+ <translation>Overskriv filer?</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="131"/>
<source>Do you want to overwrite the existing files?</source>
- <translation type="unfinished"></translation>
+ <translation>Vil du overskrive de eksisterende filer?</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="131"/>
<source>Note: It will just add a number to the filename otherwise.</source>
- <translation type="unfinished"></translation>
+ <translation>Bemærk: Det vel ellers blot tilføje et tal til filnavnet.</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="148"/>
<source>Removing: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fjerner: %1</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="149"/>
<source>Copying: %1 to %2</source>
- <translation type="unfinished"></translation>
+ <translation>Kopierer: %1 til %2</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="150"/>
<source>Restoring: %1 as %2</source>
- <translation type="unfinished"></translation>
+ <translation>Gendanner: %1 som %2</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="151"/>
<source>Moving: %1 to %2</source>
- <translation type="unfinished"></translation>
+ <translation>Flytter: %1 til %2</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="164"/>
@@ -458,7 +458,7 @@
<message>
<location filename="../FODialog.cpp" line="320"/>
<source>Invalid Move</source>
- <translation>Ugyldigt træk.</translation>
+ <translation>Ugyldigt træk</translation>
</message>
<message>
<location filename="../FODialog.cpp" line="320"/>
@@ -466,7 +466,7 @@
Old Location: %1
New Location: %2</source>
- <translation>Det er ikke muligt at flytte en mappe ind i sig selv. Lav venligst en kopi af mappen istedet.
+ <translation>Det er ikke muligt at flytte en mappe ind i sig selv. Lav venligst en kopi af mappen i stedet.
Gl. lokation: %1
Ny lokation: %2</translation>
@@ -477,107 +477,107 @@ Ny lokation: %2</translation>
<message>
<location filename="../gitWizard.ui" line="14"/>
<source>Clone a Git Repository</source>
- <translation type="unfinished"></translation>
+ <translation>Klon et Git-arkiv</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="24"/>
<source>Welcome!</source>
- <translation type="unfinished"></translation>
+ <translation>Velkommen!</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="27"/>
<source>This wizard will guide you through the process of downloading a GIT repository from the internet.</source>
- <translation type="unfinished"></translation>
+ <translation>Denne assistent vil guide den gennem processen til at downloade et GIT-arkiv fra internettet.</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="46"/>
<source>GitHub Repository Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Indstillinger for GitHub-arkiv</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="55"/>
<source>Organization/User</source>
- <translation type="unfinished"></translation>
+ <translation>Organisation/bruger</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="65"/>
<source>Repository Name</source>
- <translation type="unfinished"></translation>
+ <translation>Arkivnavn</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="75"/>
<source>Is Private Repository</source>
- <translation type="unfinished"></translation>
+ <translation>Er privat arkiv</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="89"/>
<source>Type of Access</source>
- <translation type="unfinished"></translation>
+ <translation>Type af tilgang</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="95"/>
<source>Use my SSH Key</source>
- <translation type="unfinished"></translation>
+ <translation>Brug min SSH-nøgle</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="105"/>
<source>Login to server</source>
- <translation type="unfinished"></translation>
+ <translation>Login til server</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="114"/>
<source>Username</source>
- <translation type="unfinished"></translation>
+ <translation>Brugernavn</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="124"/>
<source>Password</source>
- <translation type="unfinished"></translation>
+ <translation>Adgangskode</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="133"/>
<source>Anonymous (public repositories only)</source>
- <translation type="unfinished"></translation>
+ <translation>Anonym (kun offentlige arkiver)</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="143"/>
<source>Optional SSH Password</source>
- <translation type="unfinished"></translation>
+ <translation>Valgfri SSH-adgangskode</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="153"/>
<source>Advanced Options</source>
- <translation type="unfinished"></translation>
+ <translation>Avanceret valgmuligheder</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="159"/>
<source>Custom Depth</source>
- <translation type="unfinished"></translation>
+ <translation>Tilpasset dybde</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="166"/>
<source>Single Branch</source>
- <translation type="unfinished"></translation>
+ <translation>Enkel gren</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="175"/>
<source>branch name</source>
- <translation type="unfinished"></translation>
+ <translation>grennavn</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="232"/>
- <source>Click &quot;Next&quot; to start downloading the repository</source>
- <translation type="unfinished"></translation>
+ <source>Click "Next" to start downloading the repository</source>
+ <translation>Klik på "Næste" for at starte download af arkivet</translation>
</message>
<message>
<location filename="../gitWizard.h" line="58"/>
<source>Stop Download?</source>
- <translation type="unfinished"></translation>
+ <translation>Stop download?</translation>
</message>
<message>
<location filename="../gitWizard.h" line="58"/>
<source>Kill the current download?</source>
- <translation type="unfinished"></translation>
+ <translation>Dræb den aktuelle download?</translation>
</message>
</context>
<context>
@@ -590,52 +590,52 @@ Ny lokation: %2</translation>
<message>
<location filename="../MainUI.cpp" line="92"/>
<source>Shift+Left</source>
- <translation type="unfinished">Skift+venstre</translation>
+ <translation>Skift+Venstre</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="93"/>
<source>Shift+Right</source>
- <translation type="unfinished"></translation>
+ <translation>Skift+Højre</translation>
</message>
<message>
<location filename="../MainUI.ui" line="114"/>
<source>File</source>
- <translation type="unfinished"></translation>
+ <translation>Fil</translation>
</message>
<message>
<location filename="../MainUI.ui" line="126"/>
<source>View</source>
- <translation type="unfinished"></translation>
+ <translation>Vis</translation>
</message>
<message>
<location filename="../MainUI.ui" line="130"/>
<source>View Mode</source>
- <translation type="unfinished"></translation>
+ <translation>Visningstilstand</translation>
</message>
<message>
<location filename="../MainUI.ui" line="142"/>
<source>Bookmarks</source>
- <translation type="unfinished"></translation>
+ <translation>Bogmærker</translation>
</message>
<message>
<location filename="../MainUI.ui" line="150"/>
<source>External Devices</source>
- <translation type="unfinished"></translation>
+ <translation>Eksterne enheder</translation>
</message>
<message>
<location filename="../MainUI.ui" line="157"/>
<source>Git</source>
- <translation type="unfinished"></translation>
+ <translation>Git</translation>
</message>
<message>
<location filename="../MainUI.ui" line="171"/>
<source>New Tab</source>
- <translation type="unfinished"></translation>
+ <translation>Nyt faneblad</translation>
</message>
<message>
<location filename="../MainUI.ui" line="174"/>
<source>New Browser</source>
- <translation type="unfinished"></translation>
+ <translation>Ny browser</translation>
</message>
<message>
<location filename="../MainUI.ui" line="250"/>
@@ -650,317 +650,317 @@ Ny lokation: %2</translation>
<message>
<location filename="../MainUI.ui" line="288"/>
<source>Decrease Icon Size</source>
- <translation type="unfinished"></translation>
+ <translation>Mindre ikoner</translation>
</message>
<message>
<location filename="../MainUI.ui" line="293"/>
<source>Larger Icons</source>
- <translation type="unfinished"></translation>
+ <translation>Større ikoner</translation>
</message>
<message>
<location filename="../MainUI.ui" line="296"/>
<source>Ctrl++</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl++</translation>
</message>
<message>
<location filename="../MainUI.ui" line="304"/>
<source>Smaller Icons</source>
- <translation type="unfinished"></translation>
+ <translation>Mindre ikoner</translation>
</message>
<message>
<location filename="../MainUI.ui" line="307"/>
<source>Ctrl+-</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+-</translation>
</message>
<message>
<location filename="../MainUI.ui" line="315"/>
<source>New Window</source>
- <translation type="unfinished"></translation>
+ <translation>Nyt vindue</translation>
</message>
<message>
<location filename="../MainUI.ui" line="318"/>
<source>Ctrl+N</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+N</translation>
</message>
<message>
<location filename="../MainUI.ui" line="326"/>
<source>Add Bookmark</source>
- <translation type="unfinished"></translation>
+ <translation>Tilføj bogmærke</translation>
</message>
<message>
<location filename="../MainUI.ui" line="329"/>
<source>Ctrl+D</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+D</translation>
</message>
<message>
<location filename="../MainUI.ui" line="381"/>
<source>Delete Selection</source>
- <translation type="unfinished">Slet valgte</translation>
+ <translation>Slet valgte</translation>
</message>
<message>
<location filename="../MainUI.ui" line="384"/>
<source>Del</source>
- <translation type="unfinished"></translation>
+ <translation>Del</translation>
</message>
<message>
<location filename="../MainUI.ui" line="392"/>
<source>Refresh</source>
- <translation type="unfinished"></translation>
+ <translation>Genopfrisk</translation>
</message>
<message>
<location filename="../MainUI.ui" line="403"/>
<source>Close Tab</source>
- <translation type="unfinished"></translation>
+ <translation>Luk faneblad</translation>
</message>
<message>
<location filename="../MainUI.ui" line="414"/>
<source>Repo Status</source>
- <translation type="unfinished"></translation>
+ <translation>Arkivstatus</translation>
</message>
<message>
<location filename="../MainUI.ui" line="419"/>
<source>Clone Repository</source>
- <translation type="unfinished"></translation>
+ <translation>Klon arkiv</translation>
</message>
<message>
<location filename="../MainUI.ui" line="177"/>
<source>Ctrl+T</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+T</translation>
</message>
<message>
<location filename="../MainUI.ui" line="185"/>
<source>Exit</source>
- <translation type="unfinished"></translation>
+ <translation>Afslut</translation>
</message>
<message>
<location filename="../MainUI.ui" line="188"/>
<source>Ctrl+Q</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+Q</translation>
</message>
<message>
<location filename="../MainUI.ui" line="196"/>
<source>&amp;Preferences</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Præferencer</translation>
</message>
<message>
<location filename="../MainUI.ui" line="207"/>
<source>Show Hidden Files</source>
- <translation type="unfinished"></translation>
+ <translation>Vis skjulte filer</translation>
</message>
<message>
<location filename="../MainUI.ui" line="212"/>
<source>Scan for Devices</source>
- <translation type="unfinished"></translation>
+ <translation>Skan efter enheder</translation>
</message>
<message>
<location filename="../MainUI.ui" line="220"/>
<source>Manage Bookmarks</source>
- <translation type="unfinished">Administrér bogmærker</translation>
+ <translation>Håndter bogmærker</translation>
</message>
<message>
<location filename="../MainUI.ui" line="234"/>
<source>Show Action Buttons</source>
- <translation type="unfinished"></translation>
+ <translation>Vis handlingsknapper</translation>
</message>
<message>
<location filename="../MainUI.ui" line="245"/>
<source>Load Thumbnails</source>
- <translation type="unfinished"></translation>
+ <translation>Indlæs miniaturer</translation>
</message>
<message>
<location filename="../MainUI.ui" line="253"/>
<source>Ctrl+F</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+F</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="63"/>
<source>Detailed List</source>
- <translation type="unfinished"></translation>
+ <translation>Detaljeret liste</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="64"/>
<source>Basic List</source>
- <translation type="unfinished"></translation>
+ <translation>Basisliste</translation>
</message>
<message>
<location filename="../MainUI.ui" line="406"/>
<source>Ctrl+W</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+W</translation>
</message>
<message>
<location filename="../MainUI.ui" line="395"/>
<source>F5</source>
- <translation type="unfinished"></translation>
+ <translation>F5</translation>
</message>
<message>
<location filename="../MainUI.ui" line="362"/>
<source>Ctrl+C</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+C</translation>
</message>
<message>
<location filename="../MainUI.ui" line="337"/>
<source>Rename...</source>
- <translation type="unfinished"></translation>
+ <translation>Omdøb...</translation>
</message>
<message>
<location filename="../MainUI.ui" line="340"/>
<source>F2</source>
- <translation type="unfinished"></translation>
+ <translation>F2</translation>
</message>
<message>
<location filename="../MainUI.ui" line="348"/>
<source>Cut Selection</source>
- <translation type="unfinished">Klip valgte</translation>
+ <translation>Klip valgte</translation>
</message>
<message>
<location filename="../MainUI.ui" line="359"/>
<source>Copy Selection</source>
- <translation type="unfinished">Kopiér valgte</translation>
+ <translation>Kopiér valgte</translation>
</message>
<message>
<location filename="../MainUI.ui" line="370"/>
<source>Paste</source>
- <translation type="unfinished">Indsæt</translation>
+ <translation>Indsæt</translation>
</message>
<message>
<location filename="../MainUI.ui" line="373"/>
<source>Ctrl+V</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+V</translation>
</message>
<message>
<location filename="../MainUI.ui" line="351"/>
<source>Ctrl+X</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+X</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="189"/>
<source>Invalid Directories</source>
- <translation type="unfinished"></translation>
+ <translation>Ugyldige mapper</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="189"/>
<source>The following directories are invalid and could not be opened:</source>
- <translation type="unfinished"></translation>
+ <translation>De følgende mapper er ugyldige og kan ikke åbnes:</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="222"/>
<source>CTRL+B</source>
- <translation type="unfinished"></translation>
+ <translation>CTRL+B</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="231"/>
<source>CTRL+E</source>
- <translation type="unfinished"></translation>
+ <translation>CTRL+E</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="336"/>
<source>Root</source>
- <translation type="unfinished"></translation>
+ <translation>Rod</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="342"/>
<source>%1 (Type: %2)</source>
- <translation type="unfinished"></translation>
+ <translation>%1 (type: %2)</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="346"/>
<source>Filesystem: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Filsystem: %1</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="595"/>
<source>New Bookmark</source>
- <translation type="unfinished"></translation>
+ <translation>Nyt bogmærke</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="595"/>
<source>Name:</source>
- <translation type="unfinished">Navn:</translation>
+ <translation>Navn:</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="600"/>
<source>Invalid Name</source>
- <translation type="unfinished">Ugyldigt navn</translation>
+ <translation>Ugyldigt navn</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="600"/>
<source>This bookmark name already exists. Please choose another.</source>
- <translation type="unfinished">Dette bogmærke navn findes allerede. Vælg venligst et andet navn.</translation>
+ <translation>Dette bogmærkenavn findes allerede. Vælg venligst et andet.</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="621"/>
<source>Git Repository Status</source>
- <translation type="unfinished"></translation>
+ <translation>Git-arkiv status</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="711"/>
<source>Multimedia</source>
- <translation type="unfinished"></translation>
+ <translation>Multimedie</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="729"/>
<source>Slideshow</source>
- <translation type="unfinished">Slideshow</translation>
+ <translation>Diasshow</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="909"/>
<source>Items to be removed:</source>
- <translation type="unfinished"></translation>
+ <translation>Poster som skal fjernes:</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="423"/>
<source>Verify Quit</source>
- <translation type="unfinished"></translation>
+ <translation>Bekræft afslut</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="94"/>
<source>Ctrl+H</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+H</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="95"/>
<source>Ctrl+L</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+L</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="423"/>
<source>You have multiple tabs open. Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
+ <translation>Du har adskillige åbne faneblade. Er du sikker på, at du vil afslutte?</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="908"/>
<source>Verify Removal</source>
- <translation type="unfinished"></translation>
+ <translation>Bekræft fjernelse</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="908"/>
<source>WARNING: This will permanently delete the file(s) from the system!</source>
- <translation type="unfinished"></translation>
+ <translation>ADVARSEL: Dette vil slette filen/filerne permanent fra systemet!</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="908"/>
<source>Are you sure you want to continue?</source>
- <translation type="unfinished"></translation>
+ <translation>Er du sikker på, at du vil fortsætte?</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="868"/>
<source>Rename File</source>
- <translation type="unfinished"></translation>
+ <translation>Omdøb fil</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="868"/>
<source>New Name:</source>
- <translation type="unfinished"></translation>
+ <translation>Nyt navn:</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="882"/>
<source>Overwrite File?</source>
- <translation type="unfinished"></translation>
+ <translation>Overskriv fil?</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="882"/>
<source>An existing file with the same name will be replaced. Are you sure you want to proceed?</source>
- <translation type="unfinished"></translation>
+ <translation>En eksisterende fil med der samme navn vil blive erstattet. Er du sikker på, at du vil fortsætte?</translation>
</message>
</context>
<context>
@@ -968,37 +968,37 @@ Ny lokation: %2</translation>
<message>
<location filename="../widgets/MultimediaWidget.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Formular</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../widgets/MultimediaWidget.ui" line="28"/>
<source>Go To Next</source>
- <translation type="unfinished"></translation>
+ <translation>Gå til næste</translation>
</message>
<message>
<location filename="../widgets/MultimediaWidget.ui" line="107"/>
<source>(No Running Video)</source>
- <translation type="unfinished"></translation>
+ <translation>(ingen kørende video)</translation>
</message>
<message>
<location filename="../widgets/MultimediaWidget.cpp" line="124"/>
<source>Playing:</source>
- <translation type="unfinished"></translation>
+ <translation>Afspiller:</translation>
</message>
<message>
<location filename="../widgets/MultimediaWidget.cpp" line="130"/>
<source>Stopped</source>
- <translation type="unfinished"></translation>
+ <translation>Stoppet</translation>
</message>
<message>
<location filename="../widgets/MultimediaWidget.cpp" line="157"/>
<source>Error Playing File: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fejl ved afspilning af fil: %1</translation>
</message>
<message>
<location filename="../widgets/MultimediaWidget.cpp" line="168"/>
<source>Finished</source>
- <translation type="unfinished">Gennemført</translation>
+ <translation>Gennemført</translation>
</message>
</context>
<context>
@@ -1006,48 +1006,48 @@ Ny lokation: %2</translation>
<message>
<location filename="../OPWidget.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Formular</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../OPWidget.ui" line="44"/>
<location filename="../OPWidget.ui" line="51"/>
<source>...</source>
- <translation type="unfinished"></translation>
+ <translation>...</translation>
</message>
<message>
<location filename="../OPWidget.ui" line="60"/>
<source>Evaluating...</source>
- <translation type="unfinished"></translation>
+ <translation>Evaluerer...</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="52"/>
<source>Move</source>
- <translation type="unfinished"></translation>
+ <translation>Flyt</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="53"/>
<source>Copy</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiér</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="54"/>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Fjern</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="96"/>
<source>File Operation Errors</source>
- <translation type="unfinished"></translation>
+ <translation>Filhandlingsfejl</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="108"/>
<source>%1 Finished</source>
- <translation type="unfinished"></translation>
+ <translation>%1 gennemført</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="108"/>
<source>Errors Occured</source>
- <translation type="unfinished"></translation>
+ <translation>Fejl opstod</translation>
</message>
</context>
<context>
@@ -1055,39 +1055,39 @@ Ny lokation: %2</translation>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="14"/>
<source>Form</source>
- <translation type="unfinished">Formular</translation>
+ <translation>Formular</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="36"/>
<source>Delete this image file</source>
- <translation type="unfinished"></translation>
+ <translation>Slet denne billedfil</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="56"/>
<source>Rotate this image file counter-clockwise</source>
- <translation type="unfinished"></translation>
+ <translation>Roter denne billedfil modsat urets retning</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="69"/>
<source>Rotate this image file clockwise</source>
- <translation type="unfinished"></translation>
+ <translation>Roter denne billefil i urets retning</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="89"/>
<location filename="../widgets/SlideshowWidget.ui" line="92"/>
<source>Zoom in</source>
- <translation type="unfinished"></translation>
+ <translation>Zoom ind</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="105"/>
<location filename="../widgets/SlideshowWidget.ui" line="108"/>
<source>Zoom out</source>
- <translation type="unfinished"></translation>
+ <translation>Zoom ud</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="212"/>
<source>Go to Beginning</source>
- <translation type="unfinished"></translation>
+ <translation>Gå til begyndelsen</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="215"/>
@@ -1095,62 +1095,62 @@ Ny lokation: %2</translation>
<location filename="../widgets/SlideshowWidget.ui" line="304"/>
<location filename="../widgets/SlideshowWidget.ui" line="320"/>
<source>...</source>
- <translation type="unfinished"></translation>
+ <translation>...</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="218"/>
<source>Shift+Left</source>
- <translation type="unfinished">Skift+venstre</translation>
+ <translation>Skift+Venstre</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="228"/>
<source>Go to Previous</source>
- <translation type="unfinished"></translation>
+ <translation>Gå til forrige</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="234"/>
<source>Left</source>
- <translation type="unfinished"></translation>
+ <translation>Venstre</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="267"/>
<source>File Name</source>
- <translation type="unfinished"></translation>
+ <translation>Filnavn</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="301"/>
<source>Go to Next</source>
- <translation type="unfinished"></translation>
+ <translation>Gå til næste</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="307"/>
<source>Right</source>
- <translation type="unfinished"></translation>
+ <translation>Højre</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="317"/>
<source>Go to End</source>
- <translation type="unfinished"></translation>
+ <translation>Gå til slutningen</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.ui" line="323"/>
<source>Shift+Right</source>
- <translation type="unfinished"></translation>
+ <translation>Skift+Højre</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.cpp" line="125"/>
<source>Verify Removal</source>
- <translation type="unfinished"></translation>
+ <translation>Bekræft fjernelse</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.cpp" line="125"/>
<source>WARNING: This will permanently delete the file from the system!</source>
- <translation type="unfinished"></translation>
+ <translation>ADVARSEL: Dette vil slette filen permanent fra systemet!</translation>
</message>
<message>
<location filename="../widgets/SlideshowWidget.cpp" line="125"/>
<source>Are you sure you want to continue?</source>
- <translation type="unfinished"></translation>
+ <translation>Er du sikker på, at du vil fortsætte?</translation>
</message>
</context>
<context>
@@ -1158,12 +1158,12 @@ Ny lokation: %2</translation>
<message>
<location filename="../TrayUI.cpp" line="76"/>
<source>Finished</source>
- <translation type="unfinished">Gennemført</translation>
+ <translation>Gennemført</translation>
</message>
<message>
<location filename="../TrayUI.cpp" line="76"/>
<source>Errors during operation. Click to view details</source>
- <translation type="unfinished"></translation>
+ <translation>Fejl under handling. Klik for at vise detaljer</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_de.ts b/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_de.ts
index 84c07a5e..26942d93 100644
--- a/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_de.ts
+++ b/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_de.ts
@@ -94,7 +94,7 @@
<message>
<location filename="../BrowserWidget.cpp" line="343"/>
<source>Files: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Dateien: %1</translation>
</message>
<message>
<location filename="../BrowserWidget.cpp" line="349"/>
@@ -104,7 +104,7 @@
<message>
<location filename="../BrowserWidget.cpp" line="363"/>
<source>No Directory Contents</source>
- <translation type="unfinished"></translation>
+ <translation>Kein Verzeichnisinhalt</translation>
</message>
</context>
<context>
@@ -118,12 +118,12 @@
<message>
<location filename="../widgets/DirWidget2.ui" line="145"/>
<source>Increase Icon Sizes</source>
- <translation type="unfinished"></translation>
+ <translation>Symbolgrößen erhöhen</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="161"/>
<source>Decrease Icon Sizes</source>
- <translation type="unfinished"></translation>
+ <translation>Symbolgrößen verringern</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="179"/>
@@ -134,7 +134,7 @@
<location filename="../widgets/DirWidget2.ui" line="182"/>
<location filename="../widgets/DirWidget2.ui" line="185"/>
<source>Go back to previous directory</source>
- <translation>zurück zum vorhergehenden Verzeichnis</translation>
+ <translation>Zurück zum vorherigen Verzeichnis</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="193"/>
@@ -161,32 +161,32 @@
<message>
<location filename="../widgets/DirWidget2.ui" line="218"/>
<source>Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Menü</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="221"/>
<source>Select Action</source>
- <translation type="unfinished"></translation>
+ <translation>Aktion auswählen</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="229"/>
<source>SingleColumn</source>
- <translation type="unfinished"></translation>
+ <translation>EinzelneSpalte</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="232"/>
<source>Single column view</source>
- <translation type="unfinished"></translation>
+ <translation>Einzelspaltenansicht</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="240"/>
<source>Dual Column</source>
- <translation type="unfinished"></translation>
+ <translation>Doppelspalte</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="243"/>
<source>Dual Column View</source>
- <translation type="unfinished"></translation>
+ <translation>Doppelspaltenansicht</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="533"/>
@@ -231,17 +231,17 @@
<message>
<location filename="../widgets/DirWidget2.cpp" line="488"/>
<source>File Operations</source>
- <translation type="unfinished"></translation>
+ <translation>Dateioperationen</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="502"/>
<source>Directory Operations</source>
- <translation type="unfinished"></translation>
+ <translation>Verzeichnisoperationen</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="514"/>
<source>Loading...</source>
- <translation type="unfinished"></translation>
+ <translation>Ladevorgang...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="563"/>
@@ -268,7 +268,7 @@
<message>
<location filename="../widgets/DirWidget2.cpp" line="229"/>
<source>Create...</source>
- <translation type="unfinished"></translation>
+ <translation>Erstellen...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="231"/>
@@ -278,22 +278,22 @@
<message>
<location filename="../widgets/DirWidget2.cpp" line="232"/>
<source>Directory</source>
- <translation type="unfinished"></translation>
+ <translation>Verzeichnis</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="233"/>
<source>Application Launcher</source>
- <translation type="unfinished"></translation>
+ <translation>Anwendungsstarter</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="237"/>
<source>Launch...</source>
- <translation type="unfinished"></translation>
+ <translation>Starten...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="239"/>
<source>Terminal</source>
- <translation type="unfinished"></translation>
+ <translation>Terminal</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="240"/>
@@ -303,22 +303,22 @@
<message>
<location filename="../widgets/DirWidget2.cpp" line="241"/>
<source>Multimedia Player</source>
- <translation type="unfinished"></translation>
+ <translation>Multimedia-Abspieler</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="256"/>
<source>View Files...</source>
- <translation type="unfinished"></translation>
+ <translation>Dateien ansehen...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="258"/>
<source>Checksums</source>
- <translation type="unfinished"></translation>
+ <translation>Prüfsummen</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="260"/>
<source>Properties</source>
- <translation type="unfinished"></translation>
+ <translation>Eigenschaften</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="448"/>
@@ -332,8 +332,8 @@
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="460"/>
- <source>The &quot;lumina-fileinfo&quot; utility could not be found on the system. Please install it first.</source>
- <translation>Das &quot;lumina-fileinfo&quot; Dienstprogramm konnte nicht gefunden werden. Bitte erst installieren.</translation>
+ <source>The "lumina-fileinfo" utility could not be found on the system. Please install it first.</source>
+ <translation>Das "lumina-fileinfo" Dienstprogramm konnte nicht gefunden werden. Bitte erst installieren.</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="485"/>
@@ -553,7 +553,7 @@ Neue Position: %2</translation>
<message>
<location filename="../gitWizard.ui" line="159"/>
<source>Custom Depth</source>
- <translation>Benutzerdefinierter Wert für &quot;depth&quot;</translation>
+ <translation>Benutzerdefinierter Wert für "depth"</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="166"/>
@@ -567,8 +567,8 @@ Neue Position: %2</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="232"/>
- <source>Click &quot;Next&quot; to start downloading the repository</source>
- <translation>Auf &quot;Weiter&quot; klicken, um das Repository herunterzuladen</translation>
+ <source>Click "Next" to start downloading the repository</source>
+ <translation>Auf "Weiter" klicken, um das Repository herunterzuladen</translation>
</message>
<message>
<location filename="../gitWizard.h" line="58"/>
@@ -631,17 +631,17 @@ Neue Position: %2</translation>
<message>
<location filename="../MainUI.ui" line="171"/>
<source>New Tab</source>
- <translation type="unfinished"></translation>
+ <translation>Neue Registerkarte</translation>
</message>
<message>
<location filename="../MainUI.ui" line="174"/>
<source>New Browser</source>
- <translation>neuer Browser</translation>
+ <translation>Neuer Browser</translation>
</message>
<message>
<location filename="../MainUI.ui" line="250"/>
<source>Search Directory...</source>
- <translation>Suche im Verzeichnis...</translation>
+ <translation>Im Verzeichnis suchen...</translation>
</message>
<message>
<location filename="../MainUI.ui" line="283"/>
@@ -711,17 +711,17 @@ Neue Position: %2</translation>
<message>
<location filename="../MainUI.ui" line="403"/>
<source>Close Tab</source>
- <translation type="unfinished"></translation>
+ <translation>Registerkarte schließen</translation>
</message>
<message>
<location filename="../MainUI.ui" line="414"/>
<source>Repo Status</source>
- <translation>Status des Repositorys</translation>
+ <translation>Repositoriumsstatus</translation>
</message>
<message>
<location filename="../MainUI.ui" line="419"/>
<source>Clone Repository</source>
- <translation>Repository klonen</translation>
+ <translation>Repositorium klonen</translation>
</message>
<message>
<location filename="../MainUI.ui" line="177"/>
@@ -846,12 +846,12 @@ Neue Position: %2</translation>
<message>
<location filename="../MainUI.cpp" line="222"/>
<source>CTRL+B</source>
- <translation type="unfinished"></translation>
+ <translation>STRG+B</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="231"/>
<source>CTRL+E</source>
- <translation type="unfinished"></translation>
+ <translation>STRG+E</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="336"/>
@@ -1018,37 +1018,37 @@ Neue Position: %2</translation>
<message>
<location filename="../OPWidget.ui" line="60"/>
<source>Evaluating...</source>
- <translation type="unfinished"></translation>
+ <translation>Auswertung...</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="52"/>
<source>Move</source>
- <translation type="unfinished"></translation>
+ <translation>Verschieben</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="53"/>
<source>Copy</source>
- <translation type="unfinished"></translation>
+ <translation>Kopieren</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="54"/>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Entfernen</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="96"/>
<source>File Operation Errors</source>
- <translation type="unfinished"></translation>
+ <translation>Dateioperationsfehler</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="108"/>
<source>%1 Finished</source>
- <translation type="unfinished"></translation>
+ <translation>%1 abgeschlossen</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="108"/>
<source>Errors Occured</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler aufgetreten</translation>
</message>
</context>
<context>
@@ -1164,7 +1164,7 @@ Neue Position: %2</translation>
<message>
<location filename="../TrayUI.cpp" line="76"/>
<source>Errors during operation. Click to view details</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler während des Vorgangs. Zum Anzeigen von Details klicken</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_lt.ts b/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_lt.ts
index b5720165..328f8c36 100644
--- a/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_lt.ts
+++ b/src-qt5/desktop-utils/lumina-fm/i18n/lumina-fm_lt.ts
@@ -165,7 +165,7 @@
<message>
<location filename="../widgets/DirWidget2.ui" line="221"/>
<source>Select Action</source>
- <translation type="unfinished"></translation>
+ <translation>Pasirinkti veiksmą</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.ui" line="229"/>
@@ -307,7 +307,7 @@
<message>
<location filename="../widgets/DirWidget2.cpp" line="256"/>
<source>View Files...</source>
- <translation type="unfinished"></translation>
+ <translation>Rodyti failų...</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="258"/>
@@ -331,8 +331,8 @@
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="460"/>
- <source>The &quot;lumina-fileinfo&quot; utility could not be found on the system. Please install it first.</source>
- <translation>Sistemoje nepavyko rasti &quot;lumina-fileinfo&quot; paslaugų programos. Prašome, iš pradžių, ją įdiegti.</translation>
+ <source>The "lumina-fileinfo" utility could not be found on the system. Please install it first.</source>
+ <translation>Sistemoje nepavyko rasti "lumina-fileinfo" paslaugų programos. Prašome, iš pradžių, ją įdiegti.</translation>
</message>
<message>
<location filename="../widgets/DirWidget2.cpp" line="485"/>
@@ -566,8 +566,8 @@ Nauja vieta: %2</translation>
</message>
<message>
<location filename="../gitWizard.ui" line="232"/>
- <source>Click &quot;Next&quot; to start downloading the repository</source>
- <translation>Spustelėkite &quot;Kitas&quot;, kad pradėtumėte saugyklos atsisiuntimą</translation>
+ <source>Click "Next" to start downloading the repository</source>
+ <translation>Spustelėkite "Kitas", kad pradėtumėte saugyklos atsisiuntimą</translation>
</message>
<message>
<location filename="../gitWizard.h" line="58"/>
@@ -845,12 +845,12 @@ Nauja vieta: %2</translation>
<message>
<location filename="../MainUI.cpp" line="222"/>
<source>CTRL+B</source>
- <translation type="unfinished"></translation>
+ <translation>CTRL(VALD)+B</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="231"/>
<source>CTRL+E</source>
- <translation type="unfinished"></translation>
+ <translation>CTRL(VALD)+E</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="336"/>
@@ -1037,7 +1037,7 @@ Nauja vieta: %2</translation>
<message>
<location filename="../OPWidget.cpp" line="96"/>
<source>File Operation Errors</source>
- <translation type="unfinished"></translation>
+ <translation>Failų operacijos klaidos</translation>
</message>
<message>
<location filename="../OPWidget.cpp" line="108"/>
diff --git a/src-qt5/desktop-utils/lumina-fm/widgets/DirWidget2.cpp b/src-qt5/desktop-utils/lumina-fm/widgets/DirWidget2.cpp
index 967e6b1a..69693c7d 100644
--- a/src-qt5/desktop-utils/lumina-fm/widgets/DirWidget2.cpp
+++ b/src-qt5/desktop-utils/lumina-fm/widgets/DirWidget2.cpp
@@ -7,6 +7,7 @@
#include "DirWidget2.h"
#include "ui_DirWidget2.h"
+#include <QActionGroup>
#include <QMessageBox>
#include <QCursor>
#include <QClipboard>
@@ -44,9 +45,12 @@ DirWidget::DirWidget(QString objID, QWidget *parent) : QWidget(parent), ui(new U
line_dir = new QLineEdit(this);
toolbar->addWidget(line_dir);
connect(line_dir, SIGNAL(returnPressed()), this, SLOT(dir_changed()) );
- toolbar->addAction(ui->actionSingleColumn);
- ui->actionSingleColumn->setChecked(true);
- toolbar->addAction(ui->actionDualColumn);
+ QActionGroup *columnActionGroup = new QActionGroup(this);
+ toolbar->addAction(ui->actionSingleColumn);
+ ui->actionSingleColumn->setChecked(true);
+ columnActionGroup->addAction(ui->actionSingleColumn);
+ toolbar->addAction(ui->actionDualColumn);
+ columnActionGroup->addAction(ui->actionDualColumn);
toolbar->addAction(ui->actionMenu);
//Add the browser widgets
RCBW = 0; //right column browser is unavailable initially
@@ -400,7 +404,6 @@ void DirWidget::dir_changed(){
void DirWidget::on_actionSingleColumn_triggered(bool checked){
if(!checked){ return; }
- ui->actionDualColumn->setChecked(false);
if(RCBW==0){ return; } //nothing to do
ui->browser_layout->removeWidget(RCBW);
RCBW->deleteLater();
@@ -410,7 +413,6 @@ void DirWidget::on_actionSingleColumn_triggered(bool checked){
void DirWidget::on_actionDualColumn_triggered(bool checked){
if(!checked){ return; }
- ui->actionSingleColumn->setChecked(false);
if(RCBW!=0){ return; } //nothing to do
RCBW = new BrowserWidget("rc", this);
ui->browser_layout->addWidget(RCBW);
diff --git a/src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp b/src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp
index 40c9857b..25f4cc62 100644
--- a/src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp
+++ b/src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp
@@ -9,12 +9,15 @@
#include <LuminaX11.h>
#include <QMessageBox>
+#include <QClipboard>
-
-MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){
+MainUI::MainUI()
+ : QMainWindow(), ui(new Ui::MainUI),
+ mousegrabbed(false),
+ picSaved(false),
+ closeOnSave(false)
+{
ui->setupUi(this); //load the designer file
- mousegrabbed = false;
- picSaved = false;
XCB = new LXCB();
IMG = new ImageEditor(this);
ui->scrollArea->setWidget(IMG);
@@ -30,7 +33,8 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){
scaleTimer->setSingleShot(true);
scaleTimer->setInterval(200); //~1/5 second
tabbar = new QTabBar(this);
- ui->tabLayout->insertWidget(0,tabbar);
+ tabbar->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
+ ui->tabLayout->insertWidget(0,tabbar, Qt::AlignLeft | Qt::AlignBottom);
tabbar->addTab(LXDG::findIcon("view-preview",""), tr("View"));
tabbar->addTab(LXDG::findIcon("preferences-other",""), tr("Settings"));
ui->stackedWidget->setCurrentWidget(ui->page_current);
@@ -47,6 +51,7 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){
//connect(ui->push_snap, SIGNAL(clicked()), this, SLOT(startScreenshot()) );
connect(ui->actionTake_Screenshot, SIGNAL(triggered()), this, SLOT(startScreenshot()) );
connect(ui->tool_crop, SIGNAL(clicked()), IMG, SLOT(cropImage()) );
+ connect(ui->tool_copy_to_clipboard, SIGNAL(clicked()), this, SLOT(copyToClipboard()) );
connect(IMG, SIGNAL(selectionChanged(bool)), this, SLOT(imgselchanged(bool)) );
connect(IMG, SIGNAL(scaleFactorChanged(int)), this, SLOT(imgScalingChanged(int)) );
connect(ui->slider_zoom, SIGNAL(valueChanged(int)), this, SLOT(sliderChanged()) );
@@ -74,16 +79,14 @@ MainUI::~MainUI(){}
void MainUI::setupIcons(){
//Setup the icons
- //ui->tool_save->setIcon( LXDG::findIcon("document-save","") );
ui->tool_quicksave->setIcon( LXDG::findIcon("document-edit","") );
ui->actionSave_As->setIcon( LXDG::findIcon("document-save-as","") );
ui->actionQuick_Save->setIcon( LXDG::findIcon("document-save","") );
ui->actionClose->setIcon( LXDG::findIcon("application-exit","") );
- //ui->push_snap->setIcon( LXDG::findIcon("camera-web","") );
+ ui->tool_copy_to_clipboard->setIcon( LXDG::findIcon("insert-image","") );
ui->actionTake_Screenshot->setIcon( LXDG::findIcon("camera-web","") );
ui->tool_crop->setIcon( LXDG::findIcon("transform-crop","") );
ui->tool_resize->setIcon( LXDG::findIcon("transform-scale","") );
- //ui->actionEdit->setIcon( LXDG::findIcon("applications-graphics","") );
this->setWindowIcon( LXDG::findIcon("camera-web","") );
}
@@ -96,13 +99,22 @@ void MainUI::showSaveError(QString path){
void MainUI::saveScreenshot(){
if(mousegrabbed){ return; }
QString filepath = QFileDialog::getSaveFileName(this, tr("Save Screenshot"), ppath+"/"+QString( "Screenshot-%1.png" ).arg( lastScreenShot.toString("yyyy-MM-dd-hh-mm-ss")), tr("PNG Files (*.png);;AllFiles (*)") );
- if(filepath.isEmpty()){ return; }
+ if(filepath.isEmpty()){
+ closeOnSave = false;
+ return;
+ }
if(!filepath.endsWith(".png")){ filepath.append(".png"); }
if( !IMG->image().save(filepath, "png") ){
+ closeOnSave = false;
showSaveError(filepath);
}else{
picSaved = true;
ppath = filepath.section("/",0,-2); //just the directory
+ if (closeOnSave) {
+ // We came here from close, now we need to close *after* handling
+ // the current screen event.
+ QTimer::singleShot(0, this, SLOT(close()));
+ }
}
}
@@ -121,6 +133,12 @@ void MainUI::quicksave(){
}
}
+void MainUI::copyToClipboard(){
+ qDebug() << "Copy Image to clipboard";
+ QClipboard *clipboard = QApplication::clipboard();
+ clipboard->setImage(IMG->image());
+ qDebug() << " - Success:" << !clipboard->image().isNull();
+}
void MainUI::startScreenshot(){
if(mousegrabbed){ return; }
@@ -243,8 +261,18 @@ void MainUI::closeEvent(QCloseEvent *ev){
//qDebug() << "Close Event:" << ui->check_show_popups->isChecked() << picSaved;
if(ui->check_show_popups->isChecked() && !picSaved){
//Ask what to do about the unsaved changed
- if(QMessageBox::Yes != QMessageBox::warning(this, tr("Unsaved Screenshot"), tr("The current screenshot has not been saved yet. Do you want to quit anyway?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) ){
- //cancelled close of window
+ const int messageRet = QMessageBox::warning(this, tr("Unsaved Screenshot"),
+ tr("The current screenshot has not been saved yet. Do you want to save or discard your changes?"),
+ QMessageBox::Discard | QMessageBox::Save |QMessageBox::Cancel, QMessageBox::Cancel);
+ switch (messageRet) {
+ case QMessageBox::Discard:
+ // Just close, we don't care about the file.
+ break;
+ case QMessageBox::Save:
+ closeOnSave = true;
+ saveScreenshot();
+ // fall through
+ case QMessageBox::Cancel:
ev->ignore();
return;
}
diff --git a/src-qt5/desktop-utils/lumina-screenshot/MainUI.h b/src-qt5/desktop-utils/lumina-screenshot/MainUI.h
index 396bfafe..4a18ef74 100644
--- a/src-qt5/desktop-utils/lumina-screenshot/MainUI.h
+++ b/src-qt5/desktop-utils/lumina-screenshot/MainUI.h
@@ -41,7 +41,7 @@ public slots:
private:
Ui::MainUI *ui;
- bool mousegrabbed, picSaved;
+ bool mousegrabbed, picSaved, closeOnSave;
QRect lastgeom;
QString ppath; //previous file path
WId cwin; //current window to screenshot
@@ -63,6 +63,7 @@ private slots:
}
void saveScreenshot();
void quicksave();
+ void copyToClipboard();
void startScreenshot();
diff --git a/src-qt5/desktop-utils/lumina-screenshot/MainUI.ui b/src-qt5/desktop-utils/lumina-screenshot/MainUI.ui
index cddee009..f4230ff6 100644
--- a/src-qt5/desktop-utils/lumina-screenshot/MainUI.ui
+++ b/src-qt5/desktop-utils/lumina-screenshot/MainUI.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>386</width>
- <height>288</height>
+ <width>480</width>
+ <height>318</height>
</rect>
</property>
<property name="sizePolicy">
@@ -54,7 +54,7 @@
<item>
<widget class="QFrame" name="frame_modify">
<property name="frameShape">
- <enum>QFrame::NoFrame</enum>
+ <enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
@@ -83,12 +83,44 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="statusTip">
+ <string>Open screenshot with an application</string>
+ </property>
<property name="text">
- <string>Open With...</string>
+ <string>Open</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="tool_copy_to_clipboard">
+ <property name="statusTip">
+ <string>Copy screenshot to clipboard</string>
+ </property>
+ <property name="text">
+ <string>Copy</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+C</string>
+ </property>
+ <property name="toolButtonStyle">
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="Line" name="line">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
</widget>
</item>
<item>
@@ -99,12 +131,18 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="statusTip">
+ <string>Resize screenshot to selection</string>
+ </property>
<property name="text">
<string>Resize</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
</widget>
</item>
<item>
@@ -115,12 +153,18 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="statusTip">
+ <string>Crop screenshot to selection</string>
+ </property>
<property name="text">
<string>&amp;Crop</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
</widget>
</item>
</layout>
@@ -210,8 +254,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>344</width>
- <height>216</height>
+ <width>439</width>
+ <height>230</height>
</rect>
</property>
</widget>
@@ -463,9 +507,9 @@
</attribute>
<addaction name="actionTake_Screenshot"/>
<addaction name="actionSave_As"/>
- <addaction name="actionQuick_Save"/>
<addaction name="actionClose"/>
</widget>
+ <widget class="QStatusBar" name="statusBar"/>
<action name="actionTake_Screenshot">
<property name="text">
<string>Capture</string>
diff --git a/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_da.ts b/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_da.ts
index 7cc9d423..ec870f78 100644
--- a/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_da.ts
+++ b/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_da.ts
@@ -6,12 +6,12 @@
<message>
<location filename="../ImageEditor.cpp" line="14"/>
<source>Zoom In</source>
- <translation type="unfinished"></translation>
+ <translation>Zoom ind</translation>
</message>
<message>
<location filename="../ImageEditor.cpp" line="15"/>
<source>Zoom Out</source>
- <translation type="unfinished"></translation>
+ <translation>Zoom ud</translation>
</message>
</context>
<context>
@@ -19,7 +19,7 @@
<message>
<location filename="../MainUI.ui" line="375"/>
<source>Take Screenshot</source>
- <translation>Gem skærmbillede</translation>
+ <translation>Tag skærmbillede</translation>
</message>
<message>
<location filename="../MainUI.ui" line="151"/>
@@ -30,57 +30,57 @@
<location filename="../MainUI.ui" line="196"/>
<location filename="../MainUI.ui" line="386"/>
<source>Save As</source>
- <translation type="unfinished"></translation>
+ <translation>Gem som</translation>
</message>
<message>
<location filename="../MainUI.ui" line="244"/>
<source>Crop</source>
- <translation type="unfinished"></translation>
+ <translation>Beskær</translation>
</message>
<message>
<location filename="../MainUI.ui" line="228"/>
<source>Resize</source>
- <translation type="unfinished"></translation>
+ <translation>Tilpas størrelse</translation>
</message>
<message>
<location filename="../MainUI.ui" line="20"/>
<source>Lumina Screenshot</source>
- <translation type="unfinished"></translation>
+ <translation>Lumina-skærmbillede</translation>
</message>
<message>
<location filename="../MainUI.ui" line="70"/>
<source> Sec Delay</source>
- <translation type="unfinished"></translation>
+ <translation> Sek. forsinkelse</translation>
</message>
<message>
<location filename="../MainUI.ui" line="183"/>
<source>Capture</source>
- <translation type="unfinished"></translation>
+ <translation>Fang</translation>
</message>
<message>
<location filename="../MainUI.ui" line="212"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Rediger</translation>
</message>
<message>
<location filename="../MainUI.ui" line="362"/>
<source>File</source>
- <translation type="unfinished"></translation>
+ <translation>Fil</translation>
</message>
<message>
<location filename="../MainUI.ui" line="378"/>
<source>Ctrl+N</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+N</translation>
</message>
<message>
<location filename="../MainUI.ui" line="402"/>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Luk</translation>
</message>
<message>
<location filename="../MainUI.ui" line="405"/>
<source>Esc</source>
- <translation type="unfinished"></translation>
+ <translation>Esc</translation>
</message>
<message>
<location filename="../MainUI.ui" line="57"/>
@@ -100,12 +100,12 @@
<message>
<location filename="../MainUI.cpp" line="79"/>
<source>Could not save screenshot</source>
- <translation type="unfinished"></translation>
+ <translation>Kunne ikke gemme skærmbillede</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="79"/>
<source>The screenshot could not be saved. Please check directory permissions or pick a different directory</source>
- <translation type="unfinished"></translation>
+ <translation>Skærmbilledet kunne ikke gemmes. Tjek venligst mappetilladelserne eller vælg en anden mappe</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="86"/>
@@ -125,7 +125,7 @@
<message>
<location filename="../MainUI.cpp" line="86"/>
<source>PNG Files (*.png);;AllFiles (*)</source>
- <translation>PNG Filer (*.png);;AllFiles (*)</translation>
+ <translation>PNG-filer (*.png);;Alle filer (*)</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_de.ts b/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_de.ts
index ab4efacf..5888f671 100644
--- a/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_de.ts
+++ b/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_de.ts
@@ -50,17 +50,17 @@
<message>
<location filename="../MainUI.ui" line="70"/>
<source> Sec Delay</source>
- <translation type="unfinished"></translation>
+ <translation> Sek. Verzögerung</translation>
</message>
<message>
<location filename="../MainUI.ui" line="183"/>
<source>Capture</source>
- <translation type="unfinished"></translation>
+ <translation>Aufnehmen</translation>
</message>
<message>
<location filename="../MainUI.ui" line="212"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Bearbeiten</translation>
</message>
<message>
<location filename="../MainUI.ui" line="362"/>
@@ -100,12 +100,12 @@
<message>
<location filename="../MainUI.cpp" line="79"/>
<source>Could not save screenshot</source>
- <translation type="unfinished"></translation>
+ <translation>Bildschirmfoto konnte nicht gespeichert werden</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="79"/>
<source>The screenshot could not be saved. Please check directory permissions or pick a different directory</source>
- <translation type="unfinished"></translation>
+ <translation>Das Bildschirmfoto konnte nicht gespeichert werden. Bitte überprüfen Sie die Verzeichnisberechtigungen oder wählen Sie ein anderes Verzeichnis aus</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="86"/>
diff --git a/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_pl.ts b/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_pl.ts
index 9ccca97d..c2dafeda 100644
--- a/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_pl.ts
+++ b/src-qt5/desktop-utils/lumina-screenshot/i18n/l-screenshot_pl.ts
@@ -45,22 +45,22 @@
<message>
<location filename="../MainUI.ui" line="20"/>
<source>Lumina Screenshot</source>
- <translation type="unfinished"></translation>
+ <translation>Zrzut ekranu Lumina</translation>
</message>
<message>
<location filename="../MainUI.ui" line="70"/>
<source> Sec Delay</source>
- <translation type="unfinished"></translation>
+ <translation> sekund(y) opoźnienia</translation>
</message>
<message>
<location filename="../MainUI.ui" line="183"/>
<source>Capture</source>
- <translation type="unfinished"></translation>
+ <translation>Wykonaj zrzut ekranu</translation>
</message>
<message>
<location filename="../MainUI.ui" line="212"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Edycja</translation>
</message>
<message>
<location filename="../MainUI.ui" line="362"/>
diff --git a/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_da.ts b/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_da.ts
index ff5233cb..f046a686 100644
--- a/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_da.ts
+++ b/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_da.ts
@@ -6,12 +6,12 @@
<message>
<location filename="../TerminalWidget.cpp" line="60"/>
<source>Copy Selection</source>
- <translation type="unfinished"></translation>
+ <translation>Kopiér valgte</translation>
</message>
<message>
<location filename="../TerminalWidget.cpp" line="61"/>
<source>Paste</source>
- <translation type="unfinished"></translation>
+ <translation>Indsæt</translation>
</message>
</context>
<context>
@@ -19,27 +19,27 @@
<message>
<location filename="../TrayIcon.cpp" line="123"/>
<source>Trigger Terminal</source>
- <translation type="unfinished"></translation>
+ <translation>Udløs terminal</translation>
</message>
<message>
<location filename="../TrayIcon.cpp" line="125"/>
<source>Top of Screen</source>
- <translation type="unfinished"></translation>
+ <translation>Øverst på skærmen</translation>
</message>
<message>
<location filename="../TrayIcon.cpp" line="130"/>
<source>Close Terminal</source>
- <translation type="unfinished"></translation>
+ <translation>Luk terminal</translation>
</message>
<message>
<location filename="../TrayIcon.cpp" line="139"/>
<source>Move To Monitor</source>
- <translation type="unfinished"></translation>
+ <translation>Flyt til skærm</translation>
</message>
<message>
<location filename="../TrayIcon.cpp" line="142"/>
<source>Monitor %1</source>
- <translation type="unfinished"></translation>
+ <translation>Skærm %1</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_de.ts b/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_de.ts
index 9cf56536..606091e8 100644
--- a/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_de.ts
+++ b/src-qt5/desktop-utils/lumina-terminal/i18n/l-terminal_de.ts
@@ -6,12 +6,12 @@
<message>
<location filename="../TerminalWidget.cpp" line="60"/>
<source>Copy Selection</source>
- <translation type="unfinished"></translation>
+ <translation>Auswahl kopieren</translation>
</message>
<message>
<location filename="../TerminalWidget.cpp" line="61"/>
<source>Paste</source>
- <translation type="unfinished"></translation>
+ <translation>Einfügen</translation>
</message>
</context>
<context>
@@ -24,12 +24,12 @@
<message>
<location filename="../TrayIcon.cpp" line="125"/>
<source>Top of Screen</source>
- <translation type="unfinished"></translation>
+ <translation>Oben am Bildschirm</translation>
</message>
<message>
<location filename="../TrayIcon.cpp" line="130"/>
<source>Close Terminal</source>
- <translation type="unfinished"></translation>
+ <translation>Terminal schließen</translation>
</message>
<message>
<location filename="../TrayIcon.cpp" line="139"/>
@@ -39,7 +39,7 @@
<message>
<location filename="../TrayIcon.cpp" line="142"/>
<source>Monitor %1</source>
- <translation type="unfinished"></translation>
+ <translation>Monitor %1</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp b/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp
index e8eaa007..a0aff9cc 100644
--- a/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp
+++ b/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp
@@ -83,7 +83,7 @@ void PlainTextEditor::LoadFile(QString filepath){
this->centerCursor(); //scroll until cursor is centered (if possible)
}
hasChanges = false;
- watcher->addPath(filepath);
+ if(QFile::exists(filepath)){ watcher->addPath(filepath); }
emit FileLoaded(this->whatsThis());
}
diff --git a/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_da.ts b/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_da.ts
index 66f5b9bd..f9a5fdde 100644
--- a/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_da.ts
+++ b/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_da.ts
@@ -1,43 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.1">
+<TS version="2.1" language="l-te_da">
<context>
<name>ColorDialog</name>
<message>
<location filename="../ColorDialog.ui" line="14"/>
<source>Customize Colors</source>
- <translation type="unfinished"></translation>
+ <translation>Tilpas farver</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="24"/>
<source>Item Type</source>
- <translation type="unfinished"></translation>
+ <translation>Posttype</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="29"/>
<source>Color</source>
- <translation type="unfinished"></translation>
+ <translation>Farve</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="34"/>
<source>Sample</source>
- <translation type="unfinished"></translation>
+ <translation>Prøve</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="44"/>
<location filename="../ColorDialog.cpp" line="55"/>
<source>Select Color</source>
- <translation type="unfinished"></translation>
+ <translation>Vælg farve</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="64"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Annuller</translation>
</message>
<message>
<location filename="../ColorDialog.ui" line="71"/>
<source>Apply</source>
- <translation type="unfinished"></translation>
+ <translation>Anvend</translation>
</message>
</context>
<context>
@@ -45,17 +45,17 @@
<message>
<location filename="../MainUI.ui" line="14"/>
<source>MainWindow</source>
- <translation type="unfinished"></translation>
+ <translation>Hovedvindue</translation>
</message>
<message>
<location filename="../MainUI.ui" line="46"/>
<source>Tab 1</source>
- <translation type="unfinished"></translation>
+ <translation>Faneblad 1</translation>
</message>
<message>
<location filename="../MainUI.ui" line="81"/>
<source>Find the previous match</source>
- <translation type="unfinished"></translation>
+ <translation>Find det forrige match</translation>
</message>
<message>
<location filename="../MainUI.ui" line="84"/>
@@ -64,184 +64,184 @@
<location filename="../MainUI.ui" line="161"/>
<location filename="../MainUI.ui" line="173"/>
<source>...</source>
- <translation type="unfinished"></translation>
+ <translation>...</translation>
</message>
<message>
<location filename="../MainUI.ui" line="183"/>
<source>Find:</source>
- <translation type="unfinished"></translation>
+ <translation>Find:</translation>
</message>
<message>
<location filename="../MainUI.ui" line="94"/>
<source>Find the next match</source>
- <translation type="unfinished"></translation>
+ <translation>Find det næste match</translation>
</message>
<message>
<location filename="../MainUI.ui" line="104"/>
<source>Replace:</source>
- <translation type="unfinished"></translation>
+ <translation>Erstat:</translation>
</message>
<message>
<location filename="../MainUI.ui" line="123"/>
<source>Match case</source>
- <translation type="unfinished"></translation>
+ <translation>Forskel på store og små bogstaver</translation>
</message>
<message>
<location filename="../MainUI.ui" line="145"/>
<source>Replace next match</source>
- <translation type="unfinished"></translation>
+ <translation>Erstat næste match</translation>
</message>
<message>
<location filename="../MainUI.ui" line="158"/>
<source>Replace all matches (to end of document)</source>
- <translation type="unfinished"></translation>
+ <translation>Erstat alle match (til slutningen af dokumentet)</translation>
</message>
<message>
<location filename="../MainUI.ui" line="170"/>
<source>Hide the find/replace options</source>
- <translation type="unfinished"></translation>
+ <translation>Skjul valgmulighederne find/erstat</translation>
</message>
<message>
<location filename="../MainUI.ui" line="208"/>
<source>File</source>
- <translation type="unfinished"></translation>
+ <translation>Fil</translation>
</message>
<message>
<location filename="../MainUI.ui" line="221"/>
<source>View</source>
- <translation type="unfinished"></translation>
+ <translation>Vis</translation>
</message>
<message>
<location filename="../MainUI.ui" line="225"/>
<source>Syntax Highlighting</source>
- <translation type="unfinished"></translation>
+ <translation>Syntaksfremhævning</translation>
</message>
<message>
<location filename="../MainUI.ui" line="238"/>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Rediger</translation>
</message>
<message>
<location filename="../MainUI.ui" line="253"/>
<source>toolBar</source>
- <translation type="unfinished"></translation>
+ <translation>værktøjsbjælke</translation>
</message>
<message>
<location filename="../MainUI.ui" line="279"/>
<source>Show Line Numbers</source>
- <translation type="unfinished"></translation>
+ <translation>Vis linjenumre</translation>
</message>
<message>
<location filename="../MainUI.ui" line="284"/>
<source>None</source>
- <translation type="unfinished"></translation>
+ <translation>Ingen</translation>
</message>
<message>
<location filename="../MainUI.ui" line="289"/>
<location filename="../MainUI.cpp" line="151"/>
<source>New File</source>
- <translation type="unfinished"></translation>
+ <translation>Ny fil</translation>
</message>
<message>
<location filename="../MainUI.ui" line="292"/>
<source>Ctrl+N</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+N</translation>
</message>
<message>
<location filename="../MainUI.ui" line="300"/>
<source>Open File</source>
- <translation type="unfinished"></translation>
+ <translation>Åbn fil</translation>
</message>
<message>
<location filename="../MainUI.ui" line="303"/>
<source>Ctrl+O</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+O</translation>
</message>
<message>
<location filename="../MainUI.ui" line="311"/>
<source>Save File</source>
- <translation type="unfinished"></translation>
+ <translation>Gem fil</translation>
</message>
<message>
<location filename="../MainUI.ui" line="314"/>
<source>Ctrl+S</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+S</translation>
</message>
<message>
<location filename="../MainUI.ui" line="322"/>
<source>Save File As</source>
- <translation type="unfinished"></translation>
+ <translation>Gem fil som</translation>
</message>
<message>
<location filename="../MainUI.ui" line="327"/>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Luk</translation>
</message>
<message>
<location filename="../MainUI.ui" line="330"/>
<source>Ctrl+Q</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+Q</translation>
</message>
<message>
<location filename="../MainUI.ui" line="338"/>
<source>Close File</source>
- <translation type="unfinished"></translation>
+ <translation>Luk fil</translation>
</message>
<message>
<location filename="../MainUI.ui" line="341"/>
<source>Ctrl+W</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+W</translation>
</message>
<message>
<location filename="../MainUI.ui" line="349"/>
<source>Customize Colors</source>
- <translation type="unfinished"></translation>
+ <translation>Tilpas farver</translation>
</message>
<message>
<location filename="../MainUI.ui" line="360"/>
<source>Wrap Lines</source>
- <translation type="unfinished"></translation>
+ <translation>Ombryd linjer</translation>
</message>
<message>
<location filename="../MainUI.ui" line="365"/>
<source>Find</source>
- <translation type="unfinished"></translation>
+ <translation>Find</translation>
</message>
<message>
<location filename="../MainUI.ui" line="368"/>
<source>Ctrl+F</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+F</translation>
</message>
<message>
<location filename="../MainUI.ui" line="376"/>
<source>Replace</source>
- <translation type="unfinished"></translation>
+ <translation>Erstat</translation>
</message>
<message>
<location filename="../MainUI.ui" line="379"/>
<source>Ctrl+R</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+R</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="40"/>
<source>Text Editor</source>
- <translation type="unfinished"></translation>
+ <translation>Tekstredigering</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="158"/>
<source>Open File(s)</source>
- <translation type="unfinished"></translation>
+ <translation>Åbn fil(er)</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="158"/>
<source>Text Files (*)</source>
- <translation type="unfinished"></translation>
+ <translation>Tekstfiler (*)</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="289"/>
<location filename="../MainUI.cpp" line="386"/>
<source>Lose Unsaved Changes?</source>
- <translation type="unfinished"></translation>
+ <translation>Mist ugemte ændringer?</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="289"/>
@@ -249,7 +249,10 @@
Do you want to close it anyway?
%1</source>
- <translation type="unfinished"></translation>
+ <translation>Denne fil har ugemte ændringer.
+Vil du lukke den alligevel?
+
+%1</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="386"/>
@@ -257,7 +260,10 @@ Do you want to close it anyway?
Do you want to close the editor anyway?
%1</source>
- <translation type="unfinished"></translation>
+ <translation>Der er ugemte ændringer.
+Vil du lukke redigeringsprogrammet alligevel?
+
+%1</translation>
</message>
</context>
<context>
@@ -265,32 +271,32 @@ Do you want to close the editor anyway?
<message>
<location filename="../PlainTextEditor.cpp" line="94"/>
<source>Save File</source>
- <translation type="unfinished"></translation>
+ <translation>Gem fil</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="94"/>
<source>Text File (*)</source>
- <translation type="unfinished"></translation>
+ <translation>Tekstfil (*)</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="289"/>
<source>Row Number: %1, Column Number: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Rækkenummer: %1, kolonnenummer: %2</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="298"/>
<source>The following file has been changed by some other utility. Do you want to re-load it?</source>
- <translation type="unfinished"></translation>
+ <translation>Den følgende fil er blevet ændret af et andet redskab. Vil du genindlæse den?</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="300"/>
<source>(Note: You will lose all currently-unsaved changes)</source>
- <translation type="unfinished"></translation>
+ <translation>(bemærk: du vil miste alle nuværende ugemte ændringer)</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="304"/>
<source>File Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Fil ændret</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_de.ts b/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_de.ts
index d493699e..9d7c344b 100644
--- a/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_de.ts
+++ b/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_de.ts
@@ -241,7 +241,7 @@
<location filename="../MainUI.cpp" line="289"/>
<location filename="../MainUI.cpp" line="386"/>
<source>Lose Unsaved Changes?</source>
- <translation type="unfinished"></translation>
+ <translation>Nicht gespeicherte Änderungen verlieren?</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="289"/>
@@ -249,7 +249,10 @@
Do you want to close it anyway?
%1</source>
- <translation type="unfinished"></translation>
+ <translation>Diese Datei hat nicht gespeicherte Änderungen.
+Möchten Sie sie trotzdem schließen?
+
+%1</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="386"/>
@@ -257,7 +260,10 @@ Do you want to close it anyway?
Do you want to close the editor anyway?
%1</source>
- <translation type="unfinished"></translation>
+ <translation>Es gibt nicht gespeicherte Änderungen.
+Möchten Sie den Editor trotzdem schließen?
+
+%1</translation>
</message>
</context>
<context>
@@ -275,7 +281,7 @@ Do you want to close the editor anyway?
<message>
<location filename="../PlainTextEditor.cpp" line="289"/>
<source>Row Number: %1, Column Number: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Zeilennummer: %1, Spaltennummer: %2</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="298"/>
@@ -285,7 +291,7 @@ Do you want to close the editor anyway?
<message>
<location filename="../PlainTextEditor.cpp" line="300"/>
<source>(Note: You will lose all currently-unsaved changes)</source>
- <translation>(Hinweis: Sie werden alle momentan ungespeicherten Änderungen verlieren)</translation>
+ <translation>(Hinweis: Sie werden alle momentan nicht gespeicherten Änderungen verlieren)</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="304"/>
diff --git a/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_pl.ts b/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_pl.ts
index 914fa454..9d24336f 100644
--- a/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_pl.ts
+++ b/src-qt5/desktop-utils/lumina-textedit/i18n/l-te_pl.ts
@@ -99,7 +99,7 @@
<message>
<location filename="../MainUI.ui" line="170"/>
<source>Hide the find/replace options</source>
- <translation type="unfinished"></translation>
+ <translation>Ukryj opcję szukaj/zamień</translation>
</message>
<message>
<location filename="../MainUI.ui" line="208"/>
@@ -241,7 +241,7 @@
<location filename="../MainUI.cpp" line="289"/>
<location filename="../MainUI.cpp" line="386"/>
<source>Lose Unsaved Changes?</source>
- <translation type="unfinished"></translation>
+ <translation>Porzucić niezapisane zmiany?</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="289"/>
@@ -249,7 +249,10 @@
Do you want to close it anyway?
%1</source>
- <translation type="unfinished"></translation>
+ <translation>Plik posiada niezapisane dane.
+Czy na pewno go zamknąć?
+
+%1</translation>
</message>
<message>
<location filename="../MainUI.cpp" line="386"/>
@@ -257,7 +260,10 @@ Do you want to close it anyway?
Do you want to close the editor anyway?
%1</source>
- <translation type="unfinished"></translation>
+ <translation>Niezapisane dane.
+Czy chcesz mimo to zamknąć edytor?
+
+%1</translation>
</message>
</context>
<context>
@@ -275,22 +281,22 @@ Do you want to close the editor anyway?
<message>
<location filename="../PlainTextEditor.cpp" line="289"/>
<source>Row Number: %1, Column Number: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Numier wiersza: %1, Numer kolumny: %2</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="298"/>
<source>The following file has been changed by some other utility. Do you want to re-load it?</source>
- <translation type="unfinished"></translation>
+ <translation>Zawartość pliku została zmieniona przez zewnętrzny program. Czy ponownie załadować plik?</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="300"/>
<source>(Note: You will lose all currently-unsaved changes)</source>
- <translation type="unfinished"></translation>
+ <translation>(Uwaga: Utracisz wszystkie niezapisane dane)</translation>
</message>
<message>
<location filename="../PlainTextEditor.cpp" line="304"/>
<source>File Modified</source>
- <translation type="unfinished"></translation>
+ <translation>Plik zmodyfikowany</translation>
</message>
</context>
</TS>
bgstack15