diff --git a/CMakeLists.txt b/CMakeLists.txt index 1de2208..2395d21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,92 +1,92 @@ cmake_minimum_required(VERSION 3.1) # KDE Application Version, managed by release script set (RELEASE_SERVICE_VERSION_MAJOR "20") set (RELEASE_SERVICE_VERSION_MINOR "07") set (RELEASE_SERVICE_VERSION_MICRO "70") set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") project(print-manager VERSION ${RELEASE_SERVICE_VERSION}) set(QT_MIN_VERSION "5.9.0") -set(KF5_MIN_VERSION "5.70.0") +set(KF5_MIN_VERSION "5.71.0") ################# set KDE specific information ################# find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMPackageConfigHelpers) include(ECMOptionalAddSubdirectory) include(FeatureSummary) find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core DBus Network Widgets Qml Quick ) find_package(CUPS "1.5" REQUIRED) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED Config ConfigWidgets CoreAddons DBusAddons IconThemes I18n KCMUtils KIO Notifications Plasma WidgetsAddons WindowSystem) find_package(KF5Kirigami2 ${KF5_MIN_VERSION} CONFIG) set_package_properties(KF5Kirigami2 PROPERTIES DESCRIPTION "A QtQuick based components set" TYPE RUNTIME ) find_package(CupsSmb) set_package_properties(CupsSmb PROPERTIES TYPE RUNTIME DESCRIPTION "SMB backend for CUPS (aka smbspool)" PURPOSE "Required for CUPS to be able to print to printers shared over SMB" URL "https://samba.org" ) add_definitions( -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_FAST_OPERATOR_PLUS -DQT_NO_URL_CAST_FROM_STRING -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_FROM_ASCII ) remove_definitions(-DQT_NO_KEYWORDS) # Generate config.h configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libkcups ${CUPS_INCLUDE_DIR} ) install(FILES org.kde.print-manager.metainfo.xml DESTINATION "${KDE_INSTALL_METAINFODIR}") add_definitions(-DTRANSLATION_DOMAIN="print-manager") add_subdirectory(libkcups) add_subdirectory(configure-printer) add_subdirectory(add-printer) add_subdirectory(printer-manager-kcm) add_subdirectory(printqueue) add_subdirectory(print-manager-kded) add_subdirectory(plasmoid) add_subdirectory(declarative-plugins) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/plasmoid/package/contents/ui/printmanager.qml b/plasmoid/package/contents/ui/printmanager.qml index 417d7b9..4b73a43 100644 --- a/plasmoid/package/contents/ui/printmanager.qml +++ b/plasmoid/package/contents/ui/printmanager.qml @@ -1,114 +1,114 @@ /* * Copyright 2012-2013 Daniel Nicoletti * Copyright 2014 Jan Grulich * * This program 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 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 Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ 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 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 Plasmoid.toolTipMainText: i18n("Printers") Plasmoid.toolTipSubText: { if (serverUnavailable && printersModelError) { return printersModelError; } else if (activeJobsFilterModel.activeCount > 1) { return i18np("There is one print job in the queue", "There are %1 print jobs in the queue", activeJobsFilterModel.activeCount); // If there is only one job, show more information about it } else if (activeJobsFilterModel.activeCount === 1) { var idx = activeJobsFilterModel.index(0, 0); var jobName = activeJobsFilterModel.data(idx, PrintManager.JobModel.RoleJobName); var printerName = activeJobsFilterModel.data(idx, PrintManager.JobModel.RoleJobPrinter); if (jobName) { return i18nc("Printing document name with printer name", "Printing %1 with %2", jobName, printerName); } else { return printerName === "" ? "" : i18nc("Printing with printer name", "Printing with %1", printerName); } } else if (printersModel.count > 0) { return i18n("Print queue is empty"); } else { return i18n("No printers have been configured or discovered"); } } Plasmoid.icon: "printer" Plasmoid.fullRepresentation: PopupDialog { id: dialogItem anchors.fill: parent focus: true } Plasmoid.switchWidth: units.gridUnit * 10 Plasmoid.switchHeight: units.gridUnit * 10 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 sourceModel: PrintManager.JobModel { id: jobsModel Component.onCompleted: setWhichJobs(printmanager.jobsFilter) } } PrintManager.JobSortFilterModel { id: activeJobsFilterModel sourceModel: PrintManager.JobModel { Component.onCompleted: setWhichJobs(PrintManager.JobModel.WhichActive) } } function action_printerskcm() { - KCMShell.open([printmanager.kcmName]); + KCMShell.openSystemSettings(printmanager.kcmName); } }