diff --git a/plasmoid/package/contents/ui/PopupDialog.qml b/plasmoid/package/contents/ui/PopupDialog.qml --- a/plasmoid/package/contents/ui/PopupDialog.qml +++ b/plasmoid/package/contents/ui/PopupDialog.qml @@ -52,6 +52,10 @@ } } + PrintManager.ProcessRunner { + id: processRunner + } + PrintManager.PrinterSortFilterModel { id: printersFilterModel sourceModel: PrintManager.PrinterModel { diff --git a/plasmoid/package/contents/ui/PrinterItem.qml b/plasmoid/package/contents/ui/PrinterItem.qml --- a/plasmoid/package/contents/ui/PrinterItem.qml +++ b/plasmoid/package/contents/ui/PrinterItem.qml @@ -167,10 +167,6 @@ Component.onCompleted: currentIndex = -1 - PrintManager.ProcessRunner { - id: processRunner - } - Component { id: actionItem diff --git a/plasmoid/package/contents/ui/printmanager.qml b/plasmoid/package/contents/ui/printmanager.qml --- a/plasmoid/package/contents/ui/printmanager.qml +++ b/plasmoid/package/contents/ui/printmanager.qml @@ -21,14 +21,18 @@ import QtQuick 2.2 import org.kde.plasma.plasmoid 2.0 import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.kquickcontrolsaddons 2.0 import org.kde.plasma.printmanager 0.2 as PrintManager Item { id: printmanager property int jobsFilter: printmanager.Plasmoid.configuration.allJobs ? PrintManager.JobModel.WhichAll : printmanager.Plasmoid.configuration.completedJobs ? PrintManager.JobModel.WhichCompleted : PrintManager.JobModel.WhichActive + readonly property string kcmName: "kcm_printer_manager" + readonly property bool kcmAllowed: KCMShell.authorize(kcmName + ".desktop").length > 0 + Plasmoid.toolTipMainText: i18n("Printers") Plasmoid.icon: "printer" Plasmoid.fullRepresentation: PopupDialog { @@ -45,7 +49,9 @@ onJobsFilterChanged: jobsModel.setWhichJobs(jobsFilter) Component.onCompleted: { updateJobStatus() - plasmoid.setAction("printerskcm", i18n("&Configure Printers..."), "printer"); + if (kcmAllowed) { + plasmoid.setAction("printerskcm", i18n("&Configure Printers..."), "printer"); + } } PrintManager.JobSortFilterModel { @@ -65,12 +71,8 @@ onActiveCountChanged: updateJobStatus() } - PrintManager.ProcessRunner { - id: processRunner - } - function action_printerskcm() { - processRunner.openPrintKCM(); + KCMShell.open([printmanager.kcmName]); } function updateJobStatus() {