use just a combobox

This commit is contained in:
Marco Martin 2013-08-13 14:44:07 +02:00
parent 2a293e0680
commit 4c2a1046c2
2 changed files with 15 additions and 62 deletions

View File

@ -167,6 +167,7 @@ QVariant ConfigModel::get(int row) const
value["name"] = m_categories.at(row)->name(); value["name"] = m_categories.at(row)->name();
value["icon"] = m_categories.at(row)->icon(); value["icon"] = m_categories.at(row)->icon();
value["pluginName"] = m_categories.at(row)->pluginName();
if (m_appletInterface) { if (m_appletInterface) {
value["source"] = QUrl::fromLocalFile(m_appletInterface.data()->package().filePath("ui", m_categories.at(row)->source())); value["source"] = QUrl::fromLocalFile(m_appletInterface.data()->package().filePath("ui", m_categories.at(row)->source()));
} else { } else {

View File

@ -17,7 +17,6 @@
*/ */
import QtQuick 2.0 import QtQuick 2.0
import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.plasma.configuration 2.0 import org.kde.plasma.configuration 2.0
import QtQuick.Controls 1.0 as QtControls import QtQuick.Controls 1.0 as QtControls
import QtQuick.Layouts 1.0 import QtQuick.Layouts 1.0
@ -26,9 +25,6 @@ ColumnLayout {
id: root id: root
spacing: _m spacing: _m
PlasmaExtras.Title {
text: "Plugins"
}
//BEGIN functions //BEGIN functions
function saveConfig() { function saveConfig() {
@ -49,68 +45,19 @@ ColumnLayout {
} }
//END functions //END functions
ListView { Component.onCompleted: {
id: categoriesView for (var i = 0; i < configDialog.wallpaperConfigModel.count; ++i) {
anchors { var data = configDialog.wallpaperConfigModel.get(i);
left: parent.left for(var j in data) print(j)
right: parent.right if (configDialog.currentWallpaper == data.pluginName) {
} pluginCombobox.currentIndex = i
height: 100 break;
orientation: ListView.Horizontal
model: configDialog.wallpaperConfigModel
delegate: ConfigCategoryDelegate {
id: delegate
current: categoriesView.currentIndex == index
anchors {
top: parent.top
bottom: parent.bottom
left: undefined
right: undefined
}
width: 64
onClicked: {
configDialog.currentWallpaper = model.pluginName
if (categoriesView.currentIndex == index) {
return
} else {
categoriesView.currentIndex = index;
main.sourceFile = model.source
root.restoreConfig()
}
}
onCurrentChanged: {
categoriesView.currentIndex = index
if (current) {
categoriesView.currentIndex = index
}
}
Component.onCompleted: {
if (configDialog.currentWallpaper == model.pluginName) {
loadWallpaperTimer.pendingCurrent = model
loadWallpaperTimer.restart()
}
}
}
highlight: Rectangle {
color: theme.highlightColor
}
Timer {
id: loadWallpaperTimer
interval: 100
property variant pendingCurrent
onTriggered: {
if (pendingCurrent) {
categoriesView.currentIndex = pendingCurrent.index
main.sourceFile = pendingCurrent.source
root.restoreConfig()
}
} }
} }
} }
Row { Row {
spacing: 10 spacing: 4
QtControls.Label { QtControls.Label {
anchors.verticalCenter: pluginCombobox.verticalCenter anchors.verticalCenter: pluginCombobox.verticalCenter
text: "Wallpaper plugin:" text: "Wallpaper plugin:"
@ -119,6 +66,11 @@ ColumnLayout {
id: pluginCombobox id: pluginCombobox
model: configDialog.wallpaperConfigModel model: configDialog.wallpaperConfigModel
textRole: "name" textRole: "name"
onCurrentIndexChanged: {
var model = configDialog.wallpaperConfigModel.get(currentIndex)
main.sourceFile = model.source
root.restoreConfig()
}
} }
} }
@ -126,7 +78,7 @@ ColumnLayout {
id: main id: main
Layout.fillHeight: true; Layout.fillHeight: true;
anchors { anchors {
left: categoriesView.left; left: parent.left;
right: parent.right; right: parent.right;
} }
property string sourceFile property string sourceFile