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 @@ -29,8 +29,6 @@ property bool scrollBarVisible: printersView.contentHeight > scrollArea.height property bool searchBarVisible: scrollBarVisible || searchBar.text.length !== 0 - property string printersModelError: "" - property alias serverUnavailable: printersModel.serverUnavailable state: printersFilterModel.count > 0 ? "JOBS_PRINTER" : "NO_PRINTER" @@ -58,10 +56,7 @@ PrintManager.PrinterSortFilterModel { id: printersFilterModel - sourceModel: PrintManager.PrinterModel { - id: printersModel - onError: printersModelError = errorTitle - } + sourceModel: printersModel } PlasmaExtras.ScrollArea { 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 @@ -30,6 +30,9 @@ property int jobsFilter: printmanager.Plasmoid.configuration.allJobs ? PrintManager.JobModel.WhichAll : printmanager.Plasmoid.configuration.completedJobs ? PrintManager.JobModel.WhichCompleted : PrintManager.JobModel.WhichActive + property alias serverUnavailable: printersModel.serverUnavailable + property string printersModelError: "" + readonly property string kcmName: "kcm_printer_manager" readonly property bool kcmAllowed: KCMShell.authorize(kcmName + ".desktop").length > 0 @@ -48,15 +51,28 @@ Plasmoid.switchWidth: units.gridUnit * 10 Plasmoid.switchHeight: units.gridUnit * 10 - Plasmoid.status: (activeJobsFilterModel.activeCount > 0) ? PlasmaCore.Types.ActiveStatus : PlasmaCore.Types.PassiveStatus + Plasmoid.status: { + if (activeJobsFilterModel.activeCount > 0) { + return PlasmaCore.Types.ActiveStatus; + } else if (printersModel.count > 0 || serverUnavailable) { + return PlasmaCore.Types.PassiveStatus; + } else { + return PlasmaCore.Types.HiddenStatus; + } + } onJobsFilterChanged: jobsModel.setWhichJobs(jobsFilter) Component.onCompleted: { if (kcmAllowed) { plasmoid.setAction("printerskcm", i18n("&Configure Printers..."), "printer"); } } + PrintManager.PrinterModel { + id: printersModel + onError: printersModelError = errorTitle + } + PrintManager.JobSortFilterModel { id: jobsFilterModel