diff --git a/applets/mediaframe/package/contents/config/main.xml b/applets/mediaframe/package/contents/config/main.xml
index dd4da3fa9..db2cd5997 100644
--- a/applets/mediaframe/package/contents/config/main.xml
+++ b/applets/mediaframe/package/contents/config/main.xml
@@ -1,35 +1,35 @@
- 6.8
+ 10.0
true
true
true
true
true
1
diff --git a/applets/mediaframe/package/contents/ui/ConfigGeneral.qml b/applets/mediaframe/package/contents/ui/ConfigGeneral.qml
index 4aa21963a..acf19e205 100644
--- a/applets/mediaframe/package/contents/ui/ConfigGeneral.qml
+++ b/applets/mediaframe/package/contents/ui/ConfigGeneral.qml
@@ -1,183 +1,215 @@
/*
* Copyright 2015 Lars Pontoppidan
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, 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 General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
*/
-import QtQuick 2.1
-import QtQuick.Controls 1.1
+import QtQuick 2.7
+import QtQuick.Controls 1.5
import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.kquickcontrolsaddons 2.0 as KQuickAddons
Item {
id: root
- width: parent.width
- height: parent.height
-
+
property alias cfg_interval: intervalSpinBox.value
property alias cfg_randomize: randomizeCheckBox.checked
property alias cfg_pauseOnMouseOver: pauseOnMouseOverCheckBox.checked
property alias cfg_useBackground: useBackgroundCheckBox.checked
property alias cfg_leftClickOpenImage: leftClickOpenImageCheckBox.checked
//property alias cfg_showCountdown: showCountdownCheckBox.checked
property alias cfg_fillMode: root.fillMode
/*
* Image.Stretch - the image is scaled to fit
* Image.PreserveAspectFit - the image is scaled uniformly to fit without cropping
* Image.PreserveAspectCrop - the image is scaled uniformly to fill, cropping if necessary
* Image.Tile - the image is duplicated horizontally and vertically
* Image.TileVertically - the image is stretched horizontally and tiled vertically
* Image.TileHorizontally - the image is stretched vertically and tiled horizontally
* Image.Pad - the image is not transformed
*/
property int fillMode: Image.PreserveAspectFit
- ColumnLayout {
-
- width: parent.width
- height: parent.height
-
- RowLayout {
- Layout.fillWidth: true
-
+ ColumnLayout {
+ spacing: 20
+
+
+ Grid {
+ columns: 2
+ rows: 7
+ rowSpacing: 20
+ columnSpacing: 10
+ verticalItemAlignment: Grid.AlignVCenter
+
+ // Row 1, Col 1
Label {
text: i18n("Change picture every")
}
+ // Row 1, Col 2
SpinBox {
-
id: intervalSpinBox
-
suffix: i18n("s")
decimals: 1
// Once a day should be high enough
maximumValue: 24*(60*60)
+ } // end SpinBox
+
+
+ // Row 2, Col 1
+ Label {
+ id: fillLabel
+ text: i18n("Fill mode:")
}
- }
-
- ColumnLayout {
- RowLayout {
- Layout.fillWidth: true
- Label {
- text: i18n("Fill mode:")
+
+ // Row 2, Col 2
+ ComboBox {
+ id: comboBox
+ width: units.gridUnit * 10
+ currentIndex: fillModeToIndex(fillMode)
+ model:
+ [
+ {
+ text: i18n("Stretch"),
+ value: Image.Stretch
+ },
+
+ {
+ text: i18n("Preserve aspect fit"),
+ value: Image.PreserveAspectFit
+
+ },
+
+ {
+ text: i18n("Preserve aspect crop"),
+ value: Image.PreserveAspectCrop
+ },
+
+ {
+ text: i18n("Tile"),
+ value: Image.Tile
+ },
+
+ {
+ text: i18n("Tile vertically"),
+ value: Image.TileVertically
+ },
+
+ {
+ text: i18n("Tile horizontally"),
+ value: Image.TileHorizontally
+ },
+
+ {
+ text: i18n("Pad"),
+ value: Image.Pad
+ }
+
+ ] // end of ComboBox model
+
+
+
+ onCurrentIndexChanged: {
+ root.fillMode = comboBox.currentIndex
+ fillModeToIndex(root.fillMode)
+ //console.log(comboBox.currentIndex);
}
- ComboBox {
- id: comboBox
- currentIndex: fillModeToIndex(fillMode)
- model:
- [
- {
- "text": i18n("Stretch"),
- "value": Image.Stretch,
- "description": i18n("The image is scaled to fit")
- },
- {
- "text": i18n("Preserve aspect fit"),
- "value": Image.PreserveAspectFit,
- "description": i18n("The image is scaled uniformly to fit without cropping")
- },
- {
- "text": i18n("Preserve aspect crop"),
- "value": Image.PreserveAspectCrop,
- "description": i18n("The image is scaled uniformly to fill, cropping if necessary")
- },
- {
- "text": i18n("Tile"),
- "value": Image.Tile,
- "description": i18n("The image is duplicated horizontally and vertically")
- },
- {
- "text": i18n("Tile vertically"),
- "value": Image.TileVertically,
- "description": i18n("The image is stretched horizontally and tiled vertically")
- },
- {
- "text": i18n("Tile horizontally"),
- "value": Image.TileHorizontally,
- "description": i18n("The image is stretched vertically and tiled horizontally")
- },
- {
- "text": i18n("Pad"),
- "value": Image.Pad,
- "description": i18n("The image is not transformed")
- }
- ]
-
- onActivated: root.fillMode = comboBoxItems.get(index).value
-
- onCurrentIndexChanged: fillModeDescription.text = comboBoxItems.get(currentIndex).description
-
- function fillModeToIndex(fillMode) {
- if(fillMode == Image.Stretch)
- return 0
- else if(fillMode == Image.PreserveAspectFit)
- return 1
- else if(fillMode == Image.PreserveAspectCrop)
- return 2
- else if(fillMode == Image.Tile)
- return 3
- else if(fillMode == Image.TileVertically)
- return 4
- else if(fillMode == Image.TileHorizontally)
- return 5
- else if(fillMode == Image.Pad)
- return 6
+
+ function fillModeToIndex(fillMode) {
+ //console.log("function called");
+ if(fillMode == Image.Stretch) {
+ fillModeDescription.text = i18n( "The image is scaled to fit the frame");
+ return 0
}
- }
- }
+ else if(fillMode == Image.PreserveAspectFit) {
+ fillModeDescription.text = i18n("The image is scaled uniformly to fit without cropping");
+ return 1
+ }
+ else if(fillMode == Image.PreserveAspectCrop) {
+ fillModeDescription.text = i18n( "The image is scaled uniformly to fill, cropping if necessary");
+ return 2
+ }
+ else if(fillMode == Image.Tile) {
+ fillModeDescription.text = i18n("The image is duplicated horizontally and vertically");
+ return 3
+ }
+ else if(fillMode == Image.TileVertically) {
+ fillModeDescription.text = i18n("The image is stretched horizontally and tiled vertically");
+ return 4
+ }
+ else if(fillMode == Image.TileHorizontally) {
+ fillModeDescription.text = i18n("The image is stretched vertically and tiled horizontally");
+ return 5
+ }
+ else if(fillMode == Image.Pad) {
+ fillModeDescription.text = i18n("The image is not transformed");
+ return 6
+ }
+ } // end of fillModeToIndex function
+ } // end of ComboBox and related functions
+
+
+ // Row 3, Col 1 (cheater to fill empty cell)
+ Label {
+ width: 10
+ text: ""
+ }
+
+
+ //Row 3, Col 2
Label {
id: fillModeDescription
text: i18n("The image is scaled uniformly to fit without cropping")
}
- }
-
+
+ } // end of top section GridLayout
+
+ // these CheckBoxes should take over as their own ColumnLayout entries
CheckBox {
id: randomizeCheckBox
text: i18n("Randomize items")
}
CheckBox {
id: pauseOnMouseOverCheckBox
text: i18n("Pause on mouseover")
}
CheckBox {
id: useBackgroundCheckBox
text: i18n("Background frame")
}
CheckBox {
id: leftClickOpenImageCheckBox
text: i18n("Left click image opens in external viewer")
}
- /*
- CheckBox {
- id: showCountdownCheckBox
- text: i18n("Show countdown")
- }
- */
+ } // end ColumnLayout
+
+ } // end Item
+
+
+
- }
-}
diff --git a/applets/mediaframe/package/metadata.desktop b/applets/mediaframe/package/metadata.desktop
index 18f21b72a..a3756c90a 100644
--- a/applets/mediaframe/package/metadata.desktop
+++ b/applets/mediaframe/package/metadata.desktop
@@ -1,94 +1,94 @@
[Desktop Entry]
-Name=Media frame
+Name=Media Frame
Name[ca]=Marc multimèdia
Name[ca@valencia]=Marc multimèdia
Name[cs]=Rámec médií
Name[da]=Medieramme
Name[de]=Medien-Rahmen
Name[el]=Πλαίσιο μέσου
Name[en_GB]=Media frame
Name[es]=Marco multimedia
Name[et]=Meediaraam
Name[eu]=Multimedia markoa
Name[fi]=Mediakehys
Name[fr]=Cadre du lecteur de média
Name[gl]=Marco de contido
Name[he]=מסגרת מדיה
Name[hu]=Médiakeret
Name[it]=Cornice media
Name[ko]=미디어 프레임
Name[lt]=Paveikslėlių rėmelis
Name[nl]=Mediaframe
Name[nn]=Medieramme
Name[pl]=Ramka multimedialna
Name[pt]=Moldura multimédia
Name[pt_BR]=Quadro multimídia
Name[ru]=Фоторамка
Name[sk]=Snímka médií
Name[sl]=Predstavnostni okvir
Name[sr]=урамљени медијум
Name[sr@ijekavian]=урамљени медијум
Name[sr@ijekavianlatin]=uramljeni medijum
Name[sr@latin]=uramljeni medijum
Name[sv]=Media frame
Name[tr]=Ortam çerçevesi
Name[uk]=Медіарамка
Name[x-test]=xxMedia framexx
Name[zh_CN]=媒体相框
Name[zh_TW]=媒體框架
Comment=(Picture) Frame
Comment[ca]=Marc (fotografies)
Comment[ca@valencia]=Marc (fotografies)
Comment[cs]=Rámeček (obrázku)
Comment[da]=(Billed)ramme
Comment[de]=(Bilder)-Rahmen
Comment[el]=Πλαίσιο (εικόνας)
Comment[en_GB]=(Picture) Frame
Comment[es]=Marco (de retrato)
Comment[et]=(Pildi)raam
Comment[eu]=(Irudi) markoa
Comment[fi]=Kehys kuville ja muulle
Comment[fr]=Cadre de photos
Comment[gl]=Portarretratos
Comment[he]=מסגרת (תמונה)
Comment[hu]=(Kép)keret
Comment[it]=(Immagine) Cornice
Comment[ko]=(사진) 프레임
Comment[lt]=Paveikslėlių rėmelis
Comment[nl]=(Afbeelding) frame
Comment[nn]=Biletramme
Comment[pl]=(Zdjęcie) Ramka
Comment[pt]=Moldura (de Imagens)
Comment[pt_BR]=Quadro (Imagens)
Comment[ru]=Слайд-шоу из любимых изображений
Comment[sk]=Snímka obrázku
Comment[sl]=Okvir s sliko
Comment[sr]=Рам за слике
Comment[sr@ijekavian]=Рам за слике
Comment[sr@ijekavianlatin]=Ram za slike
Comment[sr@latin]=Ram za slike
Comment[sv]=Bildram
Comment[tr]=(Resim) Karesi
Comment[uk]=(Картинна) рамка
Comment[x-test]=xx(Picture) Framexx
Comment[zh_CN]=(图片) 像框
Comment[zh_TW]=(圖片)框架
Icon=image-x-generic
Type=Service
ServiceTypes=Plasma/Applet
X-KDE-PluginInfo-Author=Lars Pontoppidan
X-KDE-PluginInfo-Email=dev.larpon@gmail.com
X-KDE-PluginInfo-Name=org.kde.plasma.mediaframe
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://plasma.kde.org/
X-KDE-PluginInfo-Category=Utilities
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL-2.0+
X-KDE-PluginInfo-EnabledByDefault=true
X-Plasma-StandAloneApp=true
X-Plasma-API=declarativeappletscript
X-Plasma-MainScript=ui/main.qml
X-Plasma-Requires-FileDialog=True
X-Plasma-Requires-LaunchApp=Unused