mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.9 KiB
102 lines
2.9 KiB
/* |
|
SPDX-FileCopyrightText: 2013 Kai Uwe Broulik <[email protected]> |
|
SPDX-FileCopyrightText: 2015 Martin Klapetek <[email protected]> |
|
|
|
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL |
|
*/ |
|
|
|
import QtQuick 2.5 |
|
import QtQuick.Controls 1.4 as QQC1 |
|
import QtQuick.Controls 2.5 as QQC2 |
|
import QtQuick.Layouts 1.3 |
|
import QtQuick.Dialogs 1.1 |
|
|
|
import org.kde.plasma.core 2.1 as PlasmaCore |
|
import org.kde.kholidays 1.0 as KHolidays |
|
import org.kde.holidayeventshelperplugin 1.0 |
|
|
|
ColumnLayout { |
|
id: holidaysConfig |
|
anchors.left: parent.left |
|
anchors.right: parent.right |
|
|
|
signal configurationChanged |
|
|
|
function saveConfig() |
|
{ |
|
configHelper.saveConfig(); |
|
} |
|
|
|
// This is just for getting the column width |
|
QQC2.CheckBox { |
|
id: checkbox |
|
visible: false |
|
} |
|
|
|
QmlConfigHelper { |
|
id: configHelper |
|
} |
|
|
|
QQC2.TextField { |
|
id: filter |
|
Layout.fillWidth: true |
|
placeholderText: i18nd("kholidays_calendar_plugin", "Search…") |
|
inputMethodHints: Qt.ImhNoPredictiveText |
|
} |
|
|
|
// Still QQC1 bevcause there's no QQC2 TableView |
|
QQC1.TableView { |
|
id: holidaysView |
|
|
|
signal toggleCurrent |
|
|
|
Layout.fillWidth: true |
|
Layout.fillHeight: true |
|
|
|
Keys.onSpacePressed: toggleCurrent() |
|
|
|
model: PlasmaCore.SortFilterModel { |
|
sourceModel: KHolidays.HolidayRegionsModel { |
|
id: holidaysModel |
|
} |
|
// SortFilterModel doesn't have a case-sensitivity option... |
|
// but filterRegExp always causes case-insensitive sorting |
|
filterRegExp: filter.text |
|
filterRole: "name" |
|
} |
|
|
|
QQC1.TableViewColumn { |
|
width: checkbox.width |
|
delegate: QQC2.CheckBox { |
|
id: checkBox |
|
anchors.centerIn: parent |
|
checked: model ? configHelper.selectedRegions.indexOf(model.region) !== -1 : false |
|
activeFocusOnTab: false // only let the TableView as a whole get focus |
|
onClicked: { |
|
//needed for model's setData to be called |
|
if (checked) { |
|
configHelper.addRegion(model.region); |
|
} else { |
|
configHelper.removeRegion(model.region); |
|
} |
|
holidaysConfig.configurationChanged(); |
|
} |
|
} |
|
|
|
resizable: false |
|
movable: false |
|
} |
|
QQC1.TableViewColumn { |
|
role: "region" |
|
title: i18nd("kholidays_calendar_plugin", "Region") |
|
} |
|
QQC1.TableViewColumn { |
|
role: "name" |
|
title: i18nd("kholidays_calendar_plugin", "Name") |
|
} |
|
QQC1.TableViewColumn { |
|
role: "description" |
|
title: i18nd("kholidays_calendar_plugin", "Description") |
|
} |
|
} |
|
}
|
|
|