diff --git a/kcmkwin/kwindesktop/kcm_kwin_virtualdesktops.desktop b/kcmkwin/kwindesktop/kcm_kwin_virtualdesktops.desktop index 0db9f39ad..5d224a8f8 100644 --- a/kcmkwin/kwindesktop/kcm_kwin_virtualdesktops.desktop +++ b/kcmkwin/kwindesktop/kcm_kwin_virtualdesktops.desktop @@ -1,165 +1,165 @@ [Desktop Entry] Exec=kcmshell5 kcm_kwin_virtualdesktops Icon=preferences-desktop-virtual Type=Service X-KDE-ServiceTypes=KCModule X-DocPath=kcontrol/kwin_virtualdesktops/index.html X-KDE-Library=kcm_kwin_virtualdesktops X-KDE-ParentApp=kcontrol X-KDE-FormFactors=desktop X-KDE-System-Settings-Parent-Category=desktopbehavior X-KDE-Weight=60 Name=Virtual Desktops Name[ar]=أسطح المكتب الافتراضية Name[bg]=Виртуални работни плотове Name[bs]=Virtuelne površi Name[ca]=Escriptoris virtuals Name[ca@valencia]=Escriptoris virtuals Name[cs]=Virtuální plochy Name[da]=Virtuelle skriveborde Name[de]=Virtuelle Arbeitsflächen Name[el]=Εικονικές επιφάνειες εργασίες Name[en_GB]=Virtual Desktops Name[es]=Escritorios virtuales Name[et]=Virtuaalsed töölauad Name[eu]=Alegiazko mahaigaina Name[fi]=Virtuaalityöpöydät Name[fr]=Bureaux virtuels Name[ga]=Deasca Fíorúla Name[gl]=Escritorios virtuais Name[gu]=વર્ચ્યુઅલ ડેસ્કટોપો Name[he]=שולחנות עבודה וירטואליים Name[hi]=आभासी डेस्कटॉप Name[hr]=Virtualne radne površine Name[hu]=Virtuális asztalok Name[ia]=Scriptorios virtual Name[id]=Desktop Virtual Name[is]=Sýndarskjáborð Name[it]=Desktop virtuali Name[ja]=仮想デスクトップ Name[kk]=Виртуалды Үстелдер Name[km]=ផ្ទៃតុ​និម្មិត Name[kn]=ವಾಸ್ತವಪ್ರಾಯ ಗಣಕತೆರೆಗಳು Name[ko]=가상 데스크톱 Name[lt]=Virtualūs darbalaukiai Name[lv]=Virtuālās darbvirsmas Name[mr]=आभासी डेस्कटॉप Name[nb]=Virtuelle skrivebord Name[nds]=Mehr Schriefdischen Name[nl]=Virtuele bureaubladen Name[nn]=Virtuelle skrivebord Name[pa]=ਵਰਚੁਅਲ ਡੈਸਕਟਾਪ Name[pl]=Pulpity wirtualne Name[pt]=Ecrãs Virtuais Name[pt_BR]=Áreas de trabalho virtuais Name[ro]=Birouri virtuale Name[ru]=Рабочие столы Name[si]=අත්ථ්‍ය වැඩතල Name[sk]=Virtuálne pracovné plochy Name[sl]=Navidezna namizja Name[sr]=Виртуелне површи Name[sr@ijekavian]=Виртуелне површи Name[sr@ijekavianlatin]=Virtuelne površi Name[sr@latin]=Virtuelne površi Name[sv]=Virtuella skrivbord Name[tg]=Мизҳои кории виртуалӣ Name[th]=พื้นที่ทำงานเสมือน Name[tr]=Sanal Masaüstleri Name[ug]=مەۋھۇم ئۈستەلئۈستى Name[uk]=Віртуальні стільниці Name[wa]=Forveyous scribannes Name[x-test]=xxVirtual Desktopsxx Name[zh_CN]=虚拟桌面 Name[zh_TW]=虛擬桌面 -Comment=Navigation, Number and Layout of Virtual Desktops +Comment=Configure navigation, number and layout of virtual desktops Comment[bs]=Navigacija, broj i izgled virtualnih desktopa Comment[ca]=Navegació, nombre i disposició dels escriptoris virtuals Comment[ca@valencia]=Navegació, nombre i disposició dels escriptoris virtuals Comment[cs]=Navigace, počet a rozvržení virtuálních ploch Comment[da]=Navigation, antal og layout af virtuelle skriveborde Comment[de]=Navigation, Anzahl und Layout virtueller Arbeitsflächen Comment[el]=Περιήγηση, αριθμός και διάταξη εικονικών επιφανειών εργασίας Comment[en_GB]=Navigation, Number and Layout of Virtual Desktops Comment[es]=Navegación, número y disposición de los escritorios virtuales Comment[et]=Virtuaalsete töölaudade vahel liikumine, nende arv ja paigutus Comment[eu]=Nabigazioa, alegiazko mahaigainen kopurua eta antolamendua Comment[fi]=Virtuaalityöpöytien vaihtaminen, määrä ja asettelu Comment[fr]=Navigation, nombre et disposition des bureaux virtuels Comment[gl]=Navegación, cantidade e disposición dos escritorios virtuais Comment[he]=ניווט, פריסה ומספר שולחנות עבודה וירטואלים Comment[hu]=Navigáció, a virtuális asztalok száma és elrendezése Comment[id]=Navigasi, Jumlah dan Tataletak Desktop Virtual Comment[it]=Navigazione, numero e disposizione dei desktop virtuali Comment[ko]=가상 데스크톱 탐색, 개수, 레이아웃 Comment[lt]=Naršymas, Skaičius ir išdėstymas virtualių darbalaukių Comment[nb]=Navigering, antall og utlegg av virtuelle skrivebord Comment[nds]=Tall, Anornen un dat Anstüern vun de virtuellen Schriefdischen fastleggen Comment[nl]=Navigatie door, aantal en indeling van virtuele bureaubladen Comment[nn]=Navigering, nummer og vising av virtuelle skrivebord Comment[pa]=ਵਰਚੁਅਲ ਡੈਸਕਟਾਪਾਂ ਲਈ ਨੇਵੀਗੇਸ਼ਨ, ਗਿਣਤੀ ਅਤੇ ਢਾਂਚਾ Comment[pl]=Poruszanie się, liczba i układ wirtualnych pulpitów Comment[pt]=Navegação, Número e Disposição dos Ecrãs Virtuais Comment[pt_BR]=Navegação, quantidade e layout das áreas de trabalho virtuais Comment[ru]=Число, расположение и способ переключения рабочих столов Comment[sk]=Navigácia, počet a rozloženie virtuálnych plôch Comment[sl]=Krmarjenje med, število in razporeditev navideznih namizij Comment[sr]=Кретање, број и распоред виртуелних површи Comment[sr@ijekavian]=Кретање, број и распоред виртуелних површи Comment[sr@ijekavianlatin]=Kretanje, broj i raspored virtuelnih površi Comment[sr@latin]=Kretanje, broj i raspored virtuelnih površi Comment[sv]=Navigering, antal och layout av virtuella skrivbord Comment[tr]=Gezinti, Sanal Masaüstlerinin Sayısı ve Yerleşimi Comment[uk]=Навігація, кількість та компонування віртуальних стільниць Comment[vi]=Số lượng, bố trí và điều hướng của màn hình ảo Comment[x-test]=xxNavigation, Number and Layout of Virtual Desktopsxx Comment[zh_CN]=虚拟桌面的切换,数量和布局 Comment[zh_TW]=虛擬桌面的導覽、數字與佈局 X-KDE-Keywords=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings X-KDE-Keywords[bs]=pozadina,pozadine,broj,virtuelna pozadina,višestruka pozadina,pejdžer,dodatak pejdžeru,aplet pejdžer,pejdžer postavke X-KDE-Keywords[ca]=escriptori,escriptoris,nombre,escriptori virtual,escriptoris múltiples,paginador,estri paginador,miniaplicació de paginació,arranjament de paginador X-KDE-Keywords[ca@valencia]=escriptori,escriptoris,nombre,escriptori virtual,escriptoris múltiples,paginador,estri paginador,miniaplicació de paginació,arranjament de paginador X-KDE-Keywords[da]=skrivebord,skriveborde,desktop,desktops,virtuelt skrivebord,flere skriveborde,spaces,pager,skrivebordsvælger,pager widget,pager applet X-KDE-Keywords[de]=Arbeitsfläche,Arbeitsflächen,Desktop,Anzahl,Virtuelle Arbeitsfläche,Mehrere Arbeitsflächen,Arbeitsflächenumschalter,Arbeitsflächenumschalter-Bedienelement,Arbeitsflächenumschalter-Miniprogramm,Arbeitsflächenumschalter-Einstellungen X-KDE-Keywords[el]=επιφάνεια εργασίας,επιφάνειες εργασίας,αριθμός,εικονική επιφάνεια εργασίας,πολλαπλές επιφάνειες εργασίας,χαρτί,γραφικό συστατικό χαρτιού,μικροεφαρμογή χαρτιού,ρυθμίσεις χαρτιού X-KDE-Keywords[en_GB]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings X-KDE-Keywords[es]=escritorio,escritorios,número,escritorio virtual,múltiples escritorios,paginador,control de paginación,miniaplicación del paginador,preferencias del paginador X-KDE-Keywords[et]=töölaud,töölauad,arv,virtuaalne töölaud,mitu töölauda,töölauavahetaja,töölaudade vahetaja,töölauavahetaja aplett,töölauavahetaja vidin,töölauavahetaja seadistused X-KDE-Keywords[eu]=mahaigain,mahaigainak,kopuru,mahaigain birtuala,alegiazko mahaigaina,hainbat mahaigain,bilagailu,bilagailuaren trepeta,bilagailuaren miniaplikazioa,bilagailuaren ezarpenak X-KDE-Keywords[fi]=työpöytä,työpöydät,lukumäärä,virtuaalityöpöytä,monta työpöytää,sivutin,sivutinsovelma,sivuttimen asetukset X-KDE-Keywords[fr]=bureau, bureaux, numéro, bureau virtuel, bureaux multiples, gestionnaire de bureau, composant graphique du gestionnaire de bureau, paramètres du gestionnaire de bureaux X-KDE-Keywords[gl]=escritorio,escritorios,número,escritorio virtual,escritorios múltiplos,paxinador, trebello paxinador, miniaplicativo paxinador,configuración do paxinador X-KDE-Keywords[hu]=asztal,asztalok,szám,virtuális asztal,több asztal,papír,papír felületi elem,papír kisalkalmazás,papírbeállítások X-KDE-Keywords[ia]=scriptorio,scriptorios,numero,scriptorio virtual,scriptorio multiple,pager, widget de pager, applet de pager, preferentias de pager X-KDE-Keywords[id]=desktop,desktop,jumlah,desktop virtual,banyak desktop,halaman,widget halaman,applet halaman,pengaturan halaman X-KDE-Keywords[it]=desktop,numero,desktop virtuali,desktop multipli,cambiadesktop,oggetto cambiadesktop,applet cambiadesktop,impostazioni del cambiadesktop X-KDE-Keywords[kk]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings X-KDE-Keywords[km]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings X-KDE-Keywords[ko]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings,데스크톱,가상 데스크톱,다중 데스크톱 X-KDE-Keywords[nb]=skrivebord,antall,virtuelt skrivebord,flere skrivebord,veksler,vekslerelement,veksler-miniprogram,vekslerinnstillinger X-KDE-Keywords[nds]=Schriefdisch,Schriefdischen,virtuell,mehr,Schriefdisch-Översicht,instellen X-KDE-Keywords[nl]=bureaublad,bureaubladen,aantal,virtueel bureaublad,meervoudige bureaubladen,pager,pager-widget,pager-applet,pagerinstellingen X-KDE-Keywords[nn]=skrivebord,mengd,tal,virtuelt skrivebord,fleire skrivebord,vekslar,vekslarelement,vekslarelement,vekslerinnstillinger,vekslaroppsett X-KDE-Keywords[pa]=ਡੈਸਕਟਾਪ,ਗਿਣਤੀ,ਨੰਬਰ,ਅੰਕ,ਵਰਚੁਅਲ ਡੈਸਕਟਾਪ,ਕਈ ਡੈਸਕਟਾਪ,ਪੇਜ਼ਰ,ਪੇਜ਼ਰ ਵਿਜੈਟ,ਪੇਜ਼ਰ ਐਪਲਿਟ,ਪੇਜ਼ਰ ਸੈਟਿੰਗਾਂ X-KDE-Keywords[pl]=pulpit,pulpity,liczba,pulpity wirtualne,wiele pulpitów X-KDE-Keywords[pt]=ecrã,ecrãs,número,ecrã virtual,múltiplos ecrãs,paginador,elemento paginador,'applet' do paginador,configuração do paginador X-KDE-Keywords[pt_BR]=área de trabalho,áreas de trabalho,desktop,desktops,número,área de trabalho virtual,múltiplas áreas de trabalho,paginador,elemento paginador,miniaplicativo do paginador,configurações do paginador X-KDE-Keywords[ru]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings,рабочий стол,рабочие столы,число,виртуальный рабочий стол,несколько рабочих столов,переключатель,переключение,виджет переключения,аплет переключения,параметры переключения,настройки переключения X-KDE-Keywords[sk]=plocha,plochy,číslo,virtuálna plocha,viac plôch,pager,widget pagera,applet pagera,nastavenia pagera X-KDE-Keywords[sl]=namizje,namizja,število namizij,navidezna namizja,več namizij,pozivnik X-KDE-Keywords[sr]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings,површ,број,виртуелна површ,више површи,листач,виџет листача,аплет листача,поставке листача X-KDE-Keywords[sr@ijekavian]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings,површ,број,виртуелна површ,више површи,листач,виџет листача,аплет листача,поставке листача X-KDE-Keywords[sr@ijekavianlatin]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings,površ,broj,virtuelna površ,više površi,listač,vidžet listača,aplet listača,postavke listača X-KDE-Keywords[sr@latin]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings,površ,broj,virtuelna površ,više površi,listač,vidžet listača,aplet listača,postavke listača X-KDE-Keywords[sv]=skrivbord,antal,virtuellt skrivbord,flera skrivbord,skrivbordsvisning,visningskomponent,visningsminiprogram,visningsinställningar X-KDE-Keywords[tr]=masaüstü,masaüstleri,sayı,sanal masaüstü,çoklu masaüstü,sayfalayıcı,sayfalayıcı gereci,sayfalayıcı gereci,sayfalayıcı ayarları X-KDE-Keywords[uk]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings,стільниця,стільниці,кількість,віртуальна стільниця,перемикач,пейджер,віджет перемикача,віджет пейджера,аплет перемикання,аплет перемикача,параметри перемикання,параметри перемикача X-KDE-Keywords[x-test]=xxdesktopxx,xxdesktopsxx,xxnumberxx,xxvirtual desktopxx,xxmultiple desktopsxx,xxpagerxx,xxpager widgetxx,xxpager appletxx,xxpager settingsxx X-KDE-Keywords[zh_CN]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings,桌面,虚拟桌面,多桌面,分页,分页器,分页器组件,分页器设置 X-KDE-Keywords[zh_TW]=desktop,desktops,number,virtual desktop,multiple desktops,pager,pager widget,pager applet,pager settings Categories=Qt;KDE;X-KDE-settings-translations; diff --git a/kcmkwin/kwindesktop/package/contents/ui/main.qml b/kcmkwin/kwindesktop/package/contents/ui/main.qml index 71ea78f30..b2be8bc99 100644 --- a/kcmkwin/kwindesktop/package/contents/ui/main.qml +++ b/kcmkwin/kwindesktop/package/contents/ui/main.qml @@ -1,295 +1,294 @@ /* * Copyright (C) 2018 Eike Hein * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ -import QtQuick 2.1 +import QtQuick 2.5 +import QtQuick.Controls 2.5 as QQC2 import QtQuick.Layouts 1.1 -import QtQuick.Controls 2.4 as QtControls + +import org.kde.kcm 1.2 import org.kde.kirigami 2.5 as Kirigami import org.kde.plasma.core 2.1 as PlasmaCore -import org.kde.kcm 1.2 ScrollViewKCM { id: root - ConfigModule.quickHelp: i18n("Virtual Desktops") + ConfigModule.quickHelp: i18n("This module lets you configure the navigation, number and layout of virtual desktops.") Connections { target: kcm.desktopsModel onReadyChanged: { rowsSpinBox.value = kcm.desktopsModel.rows; } onRowsChanged: { rowsSpinBox.value = kcm.desktopsModel.rows; } } Component { id: desktopsListItemComponent Kirigami.SwipeListItem { id: listItem contentItem: RowLayout { - QtControls.TextField { + QQC2.TextField { id: nameField background: null leftPadding: Kirigami.Units.largeSpacing topPadding: 0 bottomPadding: 0 Layout.fillWidth: true Layout.alignment: Qt.AlignVCenter text: model.display readOnly: true onEditingFinished: { readOnly = true; Qt.callLater(kcm.desktopsModel.setDesktopName, model.Id, text); } } } actions: [ Kirigami.Action { enabled: !model.IsMissing iconName: "edit-rename" tooltip: i18nc("@info:tooltip", "Rename") onTriggered: { nameField.readOnly = false; nameField.selectAll(); nameField.forceActiveFocus(); } }, Kirigami.Action { enabled: !model.IsMissing - iconName: "list-remove" + iconName: "edit-delete-remove" tooltip: i18nc("@info:tooltip", "Remove") onTriggered: kcm.desktopsModel.removeDesktop(model.Id) }] } } header: ColumnLayout { id: messagesLayout spacing: Kirigami.Units.largeSpacing Kirigami.InlineMessage { Layout.fillWidth: true type: Kirigami.MessageType.Error text: kcm.desktopsModel.error visible: kcm.desktopsModel.error != "" } Kirigami.InlineMessage { Layout.fillWidth: true type: Kirigami.MessageType.Information text: i18n("Virtual desktops have been changed outside this settings application. Saving now will overwrite the changes.") visible: kcm.desktopsModel.serverModified } - - RowLayout { - QtControls.Label { - text: i18n("Rows:") - } - - QtControls.SpinBox { - id: rowsSpinBox - - from: 1 - to: 20 - editable: true - - onValueModified: kcm.desktopsModel.rows = value - } - - Item { // Spacer - Layout.fillWidth: true - } - - QtControls.Button { - Layout.alignment: Qt.AlignRight - - text: i18nc("@action:button", "Add") - icon.name: "list-add" - - onClicked: kcm.desktopsModel.createDesktop(i18n("New Desktop")) - } - } } view: ListView { id: desktopsList model: kcm.desktopsModel.ready ? kcm.desktopsModel : null section.property: "DesktopRow" section.delegate: Kirigami.AbstractListItem { width: desktopsList.width backgroundColor: Kirigami.Theme.backgroundColor + Kirigami.Theme.inherit: false + Kirigami.Theme.colorSet: Kirigami.Theme.Window hoverEnabled: false supportsMouseEvents: false - Kirigami.Theme.inherit: false - Kirigami.Theme.colorSet: Kirigami.Theme.Window - - QtControls.Label { + Kirigami.Heading { + level: 2 text: i18n("Row %1", section) } } delegate: Kirigami.DelegateRecycler { width: desktopsList.width sourceComponent: desktopsListItemComponent } } - footer: Kirigami.FormLayout { - Connections { - target: kcm - - onNavWrapsChanged: navWraps.checked = kcm.navWraps + footer: ColumnLayout { + RowLayout { + QQC2.Button { + text: i18nc("@action:button", "Add") + icon.name: "list-add" - onOsdEnabledChanged: osdEnabled.checked = kcm.osdEnabled - onOsdDurationChanged: osdDuration.value = kcm.osdDuration - onOsdTextOnlyChanged: osdTextOnly.checked = !kcm.osdTextOnly - } + onClicked: kcm.desktopsModel.createDesktop(i18n("New Desktop")) + } - QtControls.CheckBox { - id: navWraps + Item { // Spacer + Layout.fillWidth: true + } - Kirigami.FormData.label: i18n("Options:") + QQC2.SpinBox { + id: rowsSpinBox - text: i18n("Navigation wraps around") + from: 1 + to: 20 + editable: true - checked: kcm.navWraps + textFromValue: function(value, locale) { return i18np("1 Row", "%1 Rows", value)} - onCheckedChanged: kcm.navWraps = checked + onValueModified: kcm.desktopsModel.rows = value + } } - RowLayout { - Layout.fillWidth: true + Kirigami.FormLayout { + Connections { + target: kcm - QtControls.CheckBox { - id: animationEnabled + onNavWrapsChanged: navWraps.checked = kcm.navWraps - text: i18n("Show animation when switching:") + onOsdEnabledChanged: osdEnabled.checked = kcm.osdEnabled + onOsdDurationChanged: osdDuration.value = kcm.osdDuration + onOsdTextOnlyChanged: osdTextOnly.checked = !kcm.osdTextOnly + } - checked: kcm.animationsModel.enabled + QQC2.CheckBox { + id: navWraps - onCheckedChanged: kcm.animationsModel.enabled = checked - } + Kirigami.FormData.label: i18n("Options:") + + text: i18n("Navigation wraps around") - QtControls.ComboBox { - enabled: animationEnabled.checked + checked: kcm.navWraps - model: kcm.animationsModel - textRole: "NameRole" - currentIndex: kcm.animationsModel.currentIndex - onActivated: kcm.animationsModel.currentIndex = currentIndex + onCheckedChanged: kcm.navWraps = checked } - QtControls.Button { - enabled: animationEnabled.checked && kcm.animationsModel.currentConfigurable + RowLayout { + Layout.fillWidth: true - icon.name: "configure" + QQC2.CheckBox { + id: animationEnabled - onClicked: kcm.configureAnimation() - } + text: i18n("Show animation when switching:") - QtControls.Button { - enabled: animationEnabled.checked + checked: kcm.animationsModel.enabled - icon.name: "dialog-information" + onCheckedChanged: kcm.animationsModel.enabled = checked + } - onClicked: kcm.showAboutAnimation() - } + QQC2.ComboBox { + enabled: animationEnabled.checked - Item { - Layout.fillWidth: true - } - } + model: kcm.animationsModel + textRole: "NameRole" + currentIndex: kcm.animationsModel.currentIndex + onActivated: kcm.animationsModel.currentIndex = currentIndex + } - RowLayout { - Layout.fillWidth: true + QQC2.Button { + enabled: animationEnabled.checked && kcm.animationsModel.currentConfigurable - QtControls.CheckBox { - id: osdEnabled + icon.name: "configure" - text: i18n("Show on-screen display when switching:") + onClicked: kcm.configureAnimation() + } + + QQC2.Button { + enabled: animationEnabled.checked + + icon.name: "dialog-information" - checked: kcm.osdEnabled + onClicked: kcm.showAboutAnimation() + } - onToggled: kcm.osdEnabled = checked + Item { + Layout.fillWidth: true + } } - QtControls.SpinBox { - id: osdDuration + RowLayout { + Layout.fillWidth: true - enabled: osdEnabled.checked + QQC2.CheckBox { + id: osdEnabled - from: 0 - to: 10000 - stepSize: 100 + text: i18n("Show on-screen display when switching:") - textFromValue: function(value, locale) { return i18n("%1 ms", value)} + checked: kcm.osdEnabled - value: kcm.osdDuration + onToggled: kcm.osdEnabled = checked + } - onValueChanged: kcm.osdDuration = value - } - } + QQC2.SpinBox { + id: osdDuration - RowLayout { - Layout.fillWidth: true + enabled: osdEnabled.checked + + from: 0 + to: 10000 + stepSize: 100 + + textFromValue: function(value, locale) { return i18n("%1 ms", value)} - Item { - width: units.largeSpacing + value: kcm.osdDuration + + onValueChanged: kcm.osdDuration = value + } } - QtControls.CheckBox { - id: osdTextOnly + RowLayout { + Layout.fillWidth: true + + Item { + width: units.largeSpacing + } - enabled: osdEnabled.checked + QQC2.CheckBox { + id: osdTextOnly - text: i18n("Show desktop layout indicators") + enabled: osdEnabled.checked - checked: !kcm.osdTextOnly + text: i18n("Show desktop layout indicators") - onToggled: kcm.osdTextOnly = !checked + checked: !kcm.osdTextOnly + + onToggled: kcm.osdTextOnly = !checked + } } } } } diff --git a/kcmkwin/kwindesktop/package/metadata.desktop b/kcmkwin/kwindesktop/package/metadata.desktop index 497682225..a93b2ad5c 100644 --- a/kcmkwin/kwindesktop/package/metadata.desktop +++ b/kcmkwin/kwindesktop/package/metadata.desktop @@ -1,117 +1,117 @@ [Desktop Entry] Name=Virtual Desktops Name[ar]=أسطح المكتب الافتراضية Name[bg]=Виртуални работни плотове Name[bs]=Virtuelne površi Name[ca]=Escriptoris virtuals Name[ca@valencia]=Escriptoris virtuals Name[cs]=Virtuální plochy Name[da]=Virtuelle skriveborde Name[de]=Virtuelle Arbeitsflächen Name[el]=Εικονικές επιφάνειες εργασίες Name[en_GB]=Virtual Desktops Name[es]=Escritorios virtuales Name[et]=Virtuaalsed töölauad Name[eu]=Alegiazko mahaigaina Name[fi]=Virtuaalityöpöydät Name[fr]=Bureaux virtuels Name[ga]=Deasca Fíorúla Name[gl]=Escritorios virtuais Name[gu]=વર્ચ્યુઅલ ડેસ્કટોપો Name[he]=שולחנות עבודה וירטואליים Name[hi]=आभासी डेस्कटॉप Name[hr]=Virtualne radne površine Name[hu]=Virtuális asztalok Name[ia]=Scriptorios virtual Name[id]=Desktop Virtual Name[is]=Sýndarskjáborð Name[it]=Desktop virtuali Name[ja]=仮想デスクトップ Name[kk]=Виртуалды Үстелдер Name[km]=ផ្ទៃតុ​និម្មិត Name[kn]=ವಾಸ್ತವಪ್ರಾಯ ಗಣಕತೆರೆಗಳು Name[ko]=가상 데스크톱 Name[lt]=Virtualūs darbalaukiai Name[lv]=Virtuālās darbvirsmas Name[mr]=आभासी डेस्कटॉप Name[nb]=Virtuelle skrivebord Name[nds]=Mehr Schriefdischen Name[nl]=Virtuele bureaubladen Name[nn]=Virtuelle skrivebord Name[pa]=ਵਰਚੁਅਲ ਡੈਸਕਟਾਪ Name[pl]=Pulpity wirtualne Name[pt]=Ecrãs Virtuais Name[pt_BR]=Áreas de trabalho virtuais Name[ro]=Birouri virtuale Name[ru]=Рабочие столы Name[si]=අත්ථ්‍ය වැඩතල Name[sk]=Virtuálne pracovné plochy Name[sl]=Navidezna namizja Name[sr]=Виртуелне површи Name[sr@ijekavian]=Виртуелне површи Name[sr@ijekavianlatin]=Virtuelne površi Name[sr@latin]=Virtuelne površi Name[sv]=Virtuella skrivbord Name[tg]=Мизҳои кории виртуалӣ Name[th]=พื้นที่ทำงานเสมือน Name[tr]=Sanal Masaüstleri Name[ug]=مەۋھۇم ئۈستەلئۈستى Name[uk]=Віртуальні стільниці Name[wa]=Forveyous scribannes Name[x-test]=xxVirtual Desktopsxx Name[zh_CN]=虚拟桌面 Name[zh_TW]=虛擬桌面 -Comment=Navigation, Number and Layout of Virtual Desktops +Comment=Configure navigation, number and layout of virtual desktops Comment[bs]=Navigacija, broj i izgled virtualnih desktopa Comment[ca]=Navegació, nombre i disposició dels escriptoris virtuals Comment[ca@valencia]=Navegació, nombre i disposició dels escriptoris virtuals Comment[cs]=Navigace, počet a rozvržení virtuálních ploch Comment[da]=Navigation, antal og layout af virtuelle skriveborde Comment[de]=Navigation, Anzahl und Layout virtueller Arbeitsflächen Comment[el]=Περιήγηση, αριθμός και διάταξη εικονικών επιφανειών εργασίας Comment[en_GB]=Navigation, Number and Layout of Virtual Desktops Comment[es]=Navegación, número y disposición de los escritorios virtuales Comment[et]=Virtuaalsete töölaudade vahel liikumine, nende arv ja paigutus Comment[eu]=Nabigazioa, alegiazko mahaigainen kopurua eta antolamendua Comment[fi]=Virtuaalityöpöytien vaihtaminen, määrä ja asettelu Comment[fr]=Navigation, nombre et disposition des bureaux virtuels Comment[gl]=Navegación, cantidade e disposición dos escritorios virtuais Comment[he]=ניווט, פריסה ומספר שולחנות עבודה וירטואלים Comment[hu]=Navigáció, a virtuális asztalok száma és elrendezése Comment[id]=Navigasi, Jumlah dan Tataletak Desktop Virtual Comment[it]=Navigazione, numero e disposizione dei desktop virtuali Comment[ko]=가상 데스크톱 탐색, 개수, 레이아웃 Comment[lt]=Naršymas, Skaičius ir išdėstymas virtualių darbalaukių Comment[nb]=Navigering, antall og utlegg av virtuelle skrivebord Comment[nds]=Tall, Anornen un dat Anstüern vun de virtuellen Schriefdischen fastleggen Comment[nl]=Navigatie door, aantal en indeling van virtuele bureaubladen Comment[nn]=Navigering, nummer og vising av virtuelle skrivebord Comment[pa]=ਵਰਚੁਅਲ ਡੈਸਕਟਾਪਾਂ ਲਈ ਨੇਵੀਗੇਸ਼ਨ, ਗਿਣਤੀ ਅਤੇ ਢਾਂਚਾ Comment[pl]=Poruszanie się, liczba i układ wirtualnych pulpitów Comment[pt]=Navegação, Número e Disposição dos Ecrãs Virtuais Comment[pt_BR]=Navegação, quantidade e layout das áreas de trabalho virtuais Comment[ru]=Число, расположение и способ переключения рабочих столов Comment[sk]=Navigácia, počet a rozloženie virtuálnych plôch Comment[sl]=Krmarjenje med, število in razporeditev navideznih namizij Comment[sr]=Кретање, број и распоред виртуелних површи Comment[sr@ijekavian]=Кретање, број и распоред виртуелних површи Comment[sr@ijekavianlatin]=Kretanje, broj i raspored virtuelnih površi Comment[sr@latin]=Kretanje, broj i raspored virtuelnih površi Comment[sv]=Navigering, antal och layout av virtuella skrivbord Comment[tr]=Gezinti, Sanal Masaüstlerinin Sayısı ve Yerleşimi Comment[uk]=Навігація, кількість та компонування віртуальних стільниць Comment[vi]=Số lượng, bố trí và điều hướng của màn hình ảo Comment[x-test]=xxNavigation, Number and Layout of Virtual Desktopsxx Comment[zh_CN]=虚拟桌面的切换,数量和布局 Comment[zh_TW]=虛擬桌面的導覽、數字與佈局 Icon=preferences-desktop Type=Service X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-Name=kcm_kwin_virtualdesktops X-KDE-ServiceTypes=Plasma/Generic X-Plasma-API=declarativeappletscript X-KDE-FormFactors=desktop X-Plasma-MainScript=ui/main.qml diff --git a/kcmkwin/kwindesktop/virtualdesktops.cpp b/kcmkwin/kwindesktop/virtualdesktops.cpp index 2960beba6..44adafa77 100644 --- a/kcmkwin/kwindesktop/virtualdesktops.cpp +++ b/kcmkwin/kwindesktop/virtualdesktops.cpp @@ -1,284 +1,284 @@ /* * Copyright (C) 2018 Eike Hein * Copyright (C) 2018 Vlad Zagorodniy * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "virtualdesktops.h" #include "animationsmodel.h" #include "desktopsmodel.h" #include #include #include #include K_PLUGIN_FACTORY_WITH_JSON(VirtualDesktopsFactory, "kcm_kwin_virtualdesktops.json", registerPlugin();) namespace KWin { VirtualDesktops::VirtualDesktops(QObject *parent, const QVariantList &args) : KQuickAddons::ConfigModule(parent, args) , m_kwinConfig(KSharedConfig::openConfig("kwinrc")) , m_desktopsModel(new KWin::DesktopsModel(this)) , m_navWraps(true) , m_osdEnabled(false) , m_osdDuration(1000) , m_osdTextOnly(false) , m_animationsModel(new AnimationsModel(this)) { KAboutData *about = new KAboutData(QStringLiteral("kcm_kwin_virtualdesktops"), - i18n("Configure Virtual Desktops"), + i18n("Virtual Desktops"), QStringLiteral("2.0"), QString(), KAboutLicense::GPL); setAboutData(about); setButtons(Apply | Default); QObject::connect(m_desktopsModel, &KWin::DesktopsModel::userModifiedChanged, this, &VirtualDesktops::updateNeedsSave); connect(m_animationsModel, &AnimationsModel::enabledChanged, this, &VirtualDesktops::updateNeedsSave); connect(m_animationsModel, &AnimationsModel::currentIndexChanged, this, &VirtualDesktops::updateNeedsSave); } VirtualDesktops::~VirtualDesktops() { } QAbstractItemModel *VirtualDesktops::desktopsModel() const { return m_desktopsModel; } bool VirtualDesktops::navWraps() const { return m_navWraps; } void VirtualDesktops::setNavWraps(bool wraps) { if (m_navWraps != wraps) { m_navWraps = wraps; emit navWrapsChanged(); updateNeedsSave(); } } bool VirtualDesktops::osdEnabled() const { return m_osdEnabled; } void VirtualDesktops::setOsdEnabled(bool enabled) { if (m_osdEnabled != enabled) { m_osdEnabled = enabled; emit osdEnabledChanged(); updateNeedsSave(); } } int VirtualDesktops::osdDuration() const { return m_osdDuration; } void VirtualDesktops::setOsdDuration(int duration) { if (m_osdDuration != duration) { m_osdDuration = duration; emit osdDurationChanged(); updateNeedsSave(); } } int VirtualDesktops::osdTextOnly() const { return m_osdTextOnly; } void VirtualDesktops::setOsdTextOnly(bool textOnly) { if (m_osdTextOnly != textOnly) { m_osdTextOnly = textOnly; emit osdTextOnlyChanged(); updateNeedsSave(); } } QAbstractItemModel *VirtualDesktops::animationsModel() const { return m_animationsModel; } void VirtualDesktops::load() { KConfigGroup navConfig(m_kwinConfig, "Windows"); setNavWraps(navConfig.readEntry("RollOverDesktops", true)); KConfigGroup osdConfig(m_kwinConfig, "Plugins"); setOsdEnabled(osdConfig.readEntry("desktopchangeosdEnabled", false)); KConfigGroup osdSettings(m_kwinConfig, "Script-desktopchangeosd"); setOsdDuration(osdSettings.readEntry("PopupHideDelay", 1000)); setOsdTextOnly(osdSettings.readEntry("TextOnly", false)); m_animationsModel->load(); } void VirtualDesktops::save() { m_desktopsModel->syncWithServer(); m_animationsModel->save(); KConfigGroup navConfig(m_kwinConfig, "Windows"); navConfig.writeEntry("RollOverDesktops", m_navWraps); KConfigGroup osdConfig(m_kwinConfig, "Plugins"); osdConfig.writeEntry("desktopchangeosdEnabled", m_osdEnabled); KConfigGroup osdSettings(m_kwinConfig, "Script-desktopchangeosd"); osdSettings.writeEntry("PopupHideDelay", m_osdDuration); osdSettings.writeEntry("TextOnly", m_osdTextOnly); m_kwinConfig->sync(); QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KWin"), QStringLiteral("org.kde.KWin"), QStringLiteral("reloadConfig")); QDBusConnection::sessionBus().send(message); setNeedsSave(false); } void VirtualDesktops::defaults() { m_desktopsModel->setRows(1); m_animationsModel->defaults(); setNavWraps(true); setOsdEnabled(false); setOsdDuration(1000); setOsdTextOnly(false); } void VirtualDesktops::configureAnimation() { const QModelIndex index = m_animationsModel->index(m_animationsModel->currentIndex(), 0); if (!index.isValid()) { return; } m_animationsModel->requestConfigure(index, nullptr); } void VirtualDesktops::showAboutAnimation() { const QModelIndex index = m_animationsModel->index(m_animationsModel->currentIndex(), 0); if (!index.isValid()) { return; } const QString name = index.data(AnimationsModel::NameRole).toString(); const QString comment = index.data(AnimationsModel::DescriptionRole).toString(); const QString author = index.data(AnimationsModel::AuthorNameRole).toString(); const QString email = index.data(AnimationsModel::AuthorEmailRole).toString(); const QString website = index.data(AnimationsModel::WebsiteRole).toString(); const QString version = index.data(AnimationsModel::VersionRole).toString(); const QString license = index.data(AnimationsModel::LicenseRole).toString(); const QString icon = index.data(AnimationsModel::IconNameRole).toString(); const KAboutLicense::LicenseKey licenseType = KAboutLicense::byKeyword(license).key(); KAboutData aboutData( name, // Plugin name name, // Display name version, // Version comment, // Short description licenseType, // License QString(), // Copyright statement QString(), // Other text website.toLatin1() // Home page ); aboutData.setProgramLogo(icon); const QStringList authors = author.split(','); const QStringList emails = email.split(','); if (authors.count() == emails.count()) { int i = 0; for (const QString &author : authors) { if (!author.isEmpty()) { aboutData.addAuthor(i18n(author.toUtf8()), QString(), emails[i]); } i++; } } QPointer aboutPlugin = new KAboutApplicationDialog(aboutData); aboutPlugin->exec(); delete aboutPlugin; } void VirtualDesktops::updateNeedsSave() { bool needsSave = false; if (m_desktopsModel->userModified()) { needsSave = true; } if (m_animationsModel->needsSave()) { needsSave = true; } KConfigGroup navConfig(m_kwinConfig, "Windows"); if (m_navWraps != navConfig.readEntry("RollOverDesktops", true)) { needsSave = true; } KConfigGroup osdConfig(m_kwinConfig, "Plugins"); if (m_osdEnabled != osdConfig.readEntry("desktopchangeosdEnabled", false)) { needsSave = true; } KConfigGroup osdSettings(m_kwinConfig, "Script-desktopchangeosd"); if (m_osdDuration != osdSettings.readEntry("PopupHideDelay", 1000)) { needsSave = true; } if (m_osdTextOnly != osdSettings.readEntry("TextOnly", false)) { needsSave = true; } setNeedsSave(needsSave); } } #include "virtualdesktops.moc"