diff --git a/wallpapers/potd/contents/config/main.xml b/wallpapers/potd/contents/config/main.xml new file mode 100644 index 000000000..152e0bec7 --- /dev/null +++ b/wallpapers/potd/contents/config/main.xml @@ -0,0 +1,23 @@ + + + + + + + + apod + + + + 0 + + + + #000000 + + + + diff --git a/wallpapers/potd/contents/ui/config.qml b/wallpapers/potd/contents/ui/config.qml new file mode 100644 index 000000000..012d7c726 --- /dev/null +++ b/wallpapers/potd/contents/ui/config.qml @@ -0,0 +1,167 @@ +/* + * Copyright 2016 Weng Xuetian + * + * 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 Library 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.5 +import QtQuick.Controls 1.0 as QtControls +import QtQuick.Dialogs 1.1 as QtDialogs +import org.kde.plasma.core 2.0 as PlasmaCore + +Column { + id: root + property string cfg_Provider + property int cfg_FillMode + property alias cfg_Color: colorDialog.color + ListModel { + id: providerModel + } + + function populateProviders() { + providerModel.clear(); + var providers = engine.data["Providers"]; + if (providers) { + var provider; + for (provider in providers) { + providerModel.append({'id': provider, 'name': providers[provider]}) + } + } + } + + PlasmaCore.DataSource { + id: engine + engine: "potd" + connectedSources: ["Providers"] + onDataChanged: populateProviders() + } + + Component.onCompleted: { + populateProviders() + for (var i = 0; i < providerModel.count; i++) { + if (providerModel.get(i)["id"] == wallpaper.configuration.Provider) { + providerComboBox.currentIndex = i; + break; + } + } + } + + Row { + spacing: units.largeSpacing / 2 + QtControls.Label { + width: formAlignment - units.largeSpacing + horizontalAlignment: Text.AlignRight + text: i18nd("plasma_applet_org.kde.potd", "Providers:") + anchors.verticalCenter: providerComboBox.verticalCenter + } + QtControls.ComboBox { + id: providerComboBox + property int textLength: 24 + width: theme.mSize(theme.defaultFont).width * textLength + model: providerModel + textRole: "name" + onCurrentIndexChanged: { + cfg_Provider = providerModel.get(currentIndex)["id"] + } + } + } + + Row { + //x: formAlignment - positionLabel.paintedWidth + spacing: units.largeSpacing / 2 + QtControls.Label { + id: positionLabel + width: formAlignment - units.largeSpacing + anchors { + verticalCenter: resizeComboBox.verticalCenter + } + text: i18nd("plasma_applet_org.kde.potd", "Positioning:") + horizontalAlignment: Text.AlignRight + } + QtControls.ComboBox { + id: resizeComboBox + property int textLength: 24 + width: theme.mSize(theme.defaultFont).width * textLength + model: [ + { + 'label': i18nd("plasma_applet_org.kde.potd", "Scaled and Cropped"), + 'fillMode': Image.PreserveAspectCrop + }, + { + 'label': i18nd("plasma_applet_org.kde.potd","Scaled"), + 'fillMode': Image.Stretch + }, + { + 'label': i18nd("plasma_applet_org.kde.potd","Scaled, Keep Proportions"), + 'fillMode': Image.PreserveAspectFit + }, + { + 'label': i18nd("plasma_applet_org.kde.potd", "Centered"), + 'fillMode': Image.Pad + }, + { + 'label': i18nd("plasma_applet_org.kde.potd","Tiled"), + 'fillMode': Image.Tile + } + ] + + textRole: "label" + onCurrentIndexChanged: cfg_FillMode = model[currentIndex]["fillMode"] + Component.onCompleted: setMethod(); + + function setMethod() { + for (var i = 0; i < model.length; i++) { + if (model[i]["fillMode"] == wallpaper.configuration.FillMode) { + resizeComboBox.currentIndex = i; + var tl = model[i]["label"].length; + } + } + } + } + } + + QtDialogs.ColorDialog { + id: colorDialog + modality: Qt.WindowModal + showAlphaChannel: false + title: i18nd("plasma_applet_org.kde.potd", "Select Background Color") + } + + Row { + id: colorRow + spacing: units.largeSpacing / 2 + QtControls.Label { + width: formAlignment - units.largeSpacing + anchors.verticalCenter: colorButton.verticalCenter + horizontalAlignment: Text.AlignRight + text: i18nd("plasma_applet_org.kde.potd", "Background Color:") + } + QtControls.Button { + id: colorButton + width: units.gridUnit * 3 + text: " " // needed to it gets a proper height... + onClicked: colorDialog.open() + + Rectangle { + id: colorRect + anchors.centerIn: parent + width: parent.width - 2 * units.smallSpacing + height: theme.mSize(theme.defaultFont).height + color: colorDialog.color + } + } + } +} diff --git a/wallpapers/potd/contents/ui/main.qml b/wallpapers/potd/contents/ui/main.qml new file mode 100644 index 000000000..c986b52cb --- /dev/null +++ b/wallpapers/potd/contents/ui/main.qml @@ -0,0 +1,49 @@ +/* + * Copyright 2016 Weng Xuetian + * + * 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 Library 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.5 +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.kquickcontrolsaddons 2.0 + +Rectangle { + id: root + + readonly property string provider: wallpaper.configuration.Provider + + PlasmaCore.DataSource { + id: engine + engine: "potd" + connectedSources: [provider] + } + + Rectangle { + id: backgroundColor + anchors.fill: parent + color: wallpaper.configuration.Color + Behavior on color { + ColorAnimation { duration: units.longDuration } + } + } + + QImageItem { + anchors.fill: parent + image: engine.data[provider]["Image"] + fillMode: wallpaper.configuration.FillMode + } +} diff --git a/wallpapers/potd/metadata.desktop b/wallpapers/potd/metadata.desktop new file mode 100644 index 000000000..94c321795 --- /dev/null +++ b/wallpapers/potd/metadata.desktop @@ -0,0 +1,105 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Picture of the Day +Name[ar]=صورة اليوم +Name[ast]=Imaxe del día +Name[bs]=Slika dana +Name[ca]=Imatge del dia +Name[ca@valencia]=Imatge del dia +Name[cs]=Obrázek dne +Name[da]=Dagens billede +Name[de]=Bild des Tages +Name[el]=Φωτογραφία της ημέρας +Name[en_GB]=Picture of the Day +Name[es]=Imagen del día +Name[et]=Päevapilt +Name[fi]=Päivän kuva +Name[fr]=Image du jour +Name[ga]=Grianghraf an Lae +Name[gl]=Imaxe do día +Name[hr]=Slika dana +Name[hu]=A nap képe +Name[is]=Myndir dagsins +Name[it]=Immagine del giorno +Name[ja]=今日の写真 +Name[kk]=Тәулік суреті +Name[km]=រូបភាព​ប្រចាំ​ថ្ងៃ +Name[ko]=오늘의 그림 +Name[lt]=Dienos paveiksliukas +Name[lv]=Dienas attēls +Name[mr]=दिवसाचे चित्र +Name[nb]=Dagens bilde +Name[nds]=Bild för Vundaag +Name[nl]=Afbeelding van de dag +Name[nn]=Dagens bilete +Name[pa]=ਅੱਜ ਦੀ ਤਸਵੀਰ +Name[pl]=Obraz dnia +Name[pt]=Imagem do Dia +Name[pt_BR]=Imagem do dia +Name[ro]=Imaginea zilei +Name[ru]=Изображение дня +Name[sk]=Obrázok dňa +Name[sl]=Slika dneva +Name[sr]=слика дана +Name[sr@ijekavian]=слика дана +Name[sr@ijekavianlatin]=slika dana +Name[sr@latin]=slika dana +Name[sv]=Dagens bild +Name[tr]=Günün Resmi +Name[uk]=Картинка дня +Name[wa]=Imådje do djoû +Name[x-test]=xxPicture of the Dayxx +Name[zh_CN]=每日一图 +Name[zh_TW]=本日圖片 +Comment=A new picture from the Internet each day +Comment[ar]=صورة من السابكة كل يوم +Comment[bs]=Nova slika sa Interneta svaki dan +Comment[ca]=Una imatge nova des d'Internet cada dia +Comment[ca@valencia]=Una imatge nova des d'Internet cada dia +Comment[cs]=Nový obrázek z internetu denně +Comment[da]=Et nyt billede fra internettet hver dag +Comment[de]=Täglich ein Bild aus dem Internet anzeigen +Comment[el]=Κάθε μέρα μια νέα εικόνα από το διαδίκτυο +Comment[en_GB]=A new picture from the Internet each day +Comment[es]=Una nueva imagen desde Internet cada día +Comment[et]=Iga päev uus pilt internetist +Comment[fi]=Joka päivä uusi kuva Internetistä +Comment[fr]=Une nouvelle image chaque jour provenant d'Internet +Comment[gl]=Mostra imaxes de internet cada día. +Comment[hu]=Minden nap új kép az internetről +Comment[it]=Una nuova immagine ogni giorno da Internet. +Comment[kk]=Күнде Интернеттен жаңа сурет +Comment[ko]=인터넷에서 매일 새 그림 가져오기 +Comment[nb]=Et nytt bilde fra Internett hver dag +Comment[nds]=Elk Dag en nieg Bild ut dat Internet halen +Comment[nl]=Elke dag een nieuw plaatje uit het internet +Comment[nn]=Eit nytt bilete frå Internett kvar dag +Comment[pl]=Każdego dnia nowe zdjęcie z internetu +Comment[pt]=Uma nova imagem diária da Internet +Comment[pt_BR]=Uma nova imagem diária da Internet +Comment[ro]=O nouă imagine din Internet în fiecare zi +Comment[ru]=Новое изображение из Интернета каждый день +Comment[sk]=Nový obrázok z Internetu každý deň +Comment[sl]=Nova slika z interneta vsak dan +Comment[sr]=Сваки дан нова слика са Интернета +Comment[sr@ijekavian]=Сваки дан нова слика са Интернета +Comment[sr@ijekavianlatin]=Svaki dan nova slika sa Interneta +Comment[sr@latin]=Svaki dan nova slika sa Interneta +Comment[sv]=En ny bild från Internet varje dag +Comment[tr]=Her gün İnternet'ten yeni bir resim göster +Comment[uk]=Нове зображення з інтернету щодня +Comment[x-test]=xxA new picture from the Internet each dayxx +Comment[zh_CN]=每天从互联网获取新图片 +Comment[zh_TW]=網際網路上的每日新圖片 + +Type=Service +ServiceTypes=Plasma/Wallpaper +Icon=office-calendar +X-Plasma-MainScript=ui/main.qml +X-KDE-PluginInfo-Author=Weng Xuetian +X-KDE-PluginInfo-Email=wengxt@gmail.com +X-KDE-PluginInfo-Name=org.kde.potd +X-KDE-PluginInfo-Version=1.0 +X-KDE-PluginInfo-Website=http://kde.org/ +X-KDE-PluginInfo-License=LGPL +X-KDE-PluginInfo-EnabledByDefault=true