1/* 2 SPDX-FileCopyrightText: 2012-2013 Daniel Nicoletti <dantti12@gmail.com> 3 SPDX-FileCopyrightText: 2014-2015 Jan Grulich <jgrulich@redhat.com> 4 5 SPDX-License-Identifier: LGPL-2.0-or-later 6*/ 7 8import QtQuick 2.2 9import QtQuick.Controls 1.3 10import org.kde.plasma.extras 2.0 as PlasmaExtras 11import org.kde.plasma.components 2.0 as PlasmaComponents // for Highlight 12import org.kde.plasma.printmanager 0.2 as PrintManager 13 14FocusScope { 15 id: dialog 16 17 property bool scrollBarVisible: printersView.contentHeight > scrollArea.height 18 property bool searchBarVisible: scrollBarVisible || searchBar.text.length !== 0 19 20 21 TextField { 22 id: searchBar 23 24 anchors { 25 left: parent.left 26 right: parent.right 27 top: parent.top 28 rightMargin: Math.round(units.gridUnit / 2) 29 } 30 31 visible: searchBarVisible 32 placeholderText: i18n("Search for a printer...") 33 34 onTextChanged: { 35 printersFilterModel.setFilterWildcard(text) 36 } 37 } 38 39 PrintManager.ProcessRunner { 40 id: processRunner 41 } 42 43 PrintManager.PrinterSortFilterModel { 44 id: printersFilterModel 45 sourceModel: printersModel 46 } 47 48 PlasmaExtras.ScrollArea { 49 id: scrollArea 50 anchors { 51 bottom: parent.bottom 52 left: parent.left 53 right: parent.right 54 top: searchBarVisible ? searchBar.bottom : parent.top 55 } 56 57 ListView { 58 id: printersView 59 60 anchors.fill: parent 61 focus: true 62 currentIndex: -1 63 clip: true 64 model: printersFilterModel 65 highlight: PlasmaComponents.Highlight{ } 66 highlightMoveDuration: 0 67 highlightResizeDuration: 0 68 delegate: PrinterItem { 69 width: printersView.width 70 } 71 72 PlasmaExtras.PlaceholderMessage { 73 anchors.centerIn: parent 74 width: parent.width - (units.largeSpacing * 4) 75 76 visible: printersFilterModel.count === 0 || serverUnavailable 77 text: serverUnavailable ? 78 printersModelError : 79 i18n("No printers have been configured or discovered") 80 iconName: serverUnavailable ? "dialog-error" : "" 81 } 82 } 83 } 84} 85