OSDN Git Service

WelcomeScreen: Reintroduce custom widgets.
authorDaniel Molkentin <daniel.molkentin@nokia.com>
Fri, 8 Jul 2011 13:35:26 +0000 (15:35 +0200)
committerEike Ziller <eike.ziller@nokia.com>
Fri, 8 Jul 2011 14:03:32 +0000 (16:03 +0200)
Change-Id: Ib9ec14702e4cbebf57493ac6cc0092d74a29d63c
Reviewed-on: http://codereview.qt.nokia.com/1382
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
12 files changed:
share/qtcreator/welcomescreen/welcomescreen.pro
share/qtcreator/welcomescreen/widgets/Button.qml
share/qtcreator/welcomescreen/widgets/CheckBox.qml [new file with mode: 0644]
share/qtcreator/welcomescreen/widgets/ExampleBrowser.qml
share/qtcreator/welcomescreen/widgets/Feedback.qml
share/qtcreator/welcomescreen/widgets/LineEdit.qml
share/qtcreator/welcomescreen/widgets/RatingBar.qml
src/plugins/welcome/images/checked.png [new file with mode: 0644]
src/plugins/welcome/images/draw-star.png [moved from share/qtcreator/welcomescreen/widgets/img/draw-star.png with 100% similarity]
src/plugins/welcome/images/face-star.png [moved from share/qtcreator/welcomescreen/widgets/img/face-star.png with 100% similarity]
src/plugins/welcome/images/lineedit.png [moved from share/qtcreator/welcomescreen/widgets/img/lineedit.png with 100% similarity]
src/plugins/welcome/welcome.qrc

index 17ffa68..2da616f 100644 (file)
@@ -8,6 +8,7 @@ OTHER_FILES = develop.qml \
               newssupport.qml \
               welcomescreen.qml \
               widgets/Button.qml \
+              widgets/CheckBox.qml \
               widgets/Feedback.qml \
               widgets/RatingBar.qml \
               widgets/ExampleBrowser.qml \
index e23428d..a60bc1a 100644 (file)
 **************************************************************************/
 
 import Qt 4.7
+import "../components/custom" as Custom
 
-BorderImage {
-    property string text
-    property string image
-    property int iconSize : innerImg.sourceSize.height
-    signal clicked;
-    id: root
-    source: "qrc:/welcome/images/btn_26.png"
-    height: innerImg.height + 16
+Custom.Button {
+    id: button
 
-    border.left: 5; border.top: 5
-    border.right: 5; border.bottom: 5
+    width: Math.max(100, labelItem.contentsWidth+20)
+    height: 32
 
-    Image{
-        id: innerImg
-        height: root.iconSize
-        width: root.iconSize
-        anchors.verticalCenter: label.verticalCenter
-        anchors.right: label.left
-        anchors.rightMargin: 4
-        visible: root.image != ""
-        source: root.image
-    }
+    background: BorderImage {
+        source: {
+            if (pressed)
+                return "qrc:/welcome/images/btn_26_pressed.png"
+            else
+                if (containsMouse)
+                    return "qrc:/welcome/images/btn_26_hover.png"
+                else
+                    return "qrc:/welcome/images/btn_26.png"
+        }
 
-    Text {
-        id: label;
-        anchors.left: innerImg.right
-        anchors.right: parent.right
-        text: root.text
+        border { left: 5; right: 5; top: 5; bottom: 5 }
     }
 
-    MouseArea { id: mouseArea; anchors.fill: parent; hoverEnabled: true; onClicked: root.clicked() }
-
-    states: [
-        State {
-            id: pressedState; when: mouseArea.pressed;
-            PropertyChanges { target: root; source: "qrc:/welcome/images/btn_26_pressed.png" }
-        },
-        State {
-            id: hoverState; when: mouseArea.containsMouse
-            PropertyChanges { target: root; source: "qrc:/welcome/images/btn_26_hover.png" }
+    label: Item {
+        property int contentsWidth : row.width
+        Row {
+            id: row
+            spacing: 4
+            anchors.centerIn: parent
+            property int contentsWidth : row.width
+            Image {
+                id: image
+                source: iconSource
+                anchors.verticalCenter: parent.verticalCenter
+                fillMode: Image.Stretch //mm Image should shrink if button is too small, depends on QTBUG-14957
+            }
+            Text {
+                id:text
+                color: textColor
+                anchors.verticalCenter: parent.verticalCenter
+                text: button.text
+                horizontalAlignment: Text.Center
+            }
         }
-    ]
+    }
+
+    Keys.onSpacePressed:clicked()
 }
diff --git a/share/qtcreator/welcomescreen/widgets/CheckBox.qml b/share/qtcreator/welcomescreen/widgets/CheckBox.qml
new file mode 100644 (file)
index 0000000..e61299b
--- /dev/null
@@ -0,0 +1,39 @@
+import QtQuick 1.0
+import "../components/custom" as Custom
+
+Custom.CheckBox{
+    id:checkbox
+    property string text
+    property string hint
+    height:20
+    width: Math.max(110, backgroundItem.rowWidth)
+
+    background: Item {
+        property int rowWidth: row.width
+        Row {
+            id: row
+            anchors.verticalCenter: parent.verticalCenter
+            spacing: 4
+            BorderImage {
+                source: "qrc:welcome/images/lineedit.png";
+                width: 16;
+                height: 16;
+                border.left: 4;
+                border.right: 4;
+                border.top: 4;
+                border.bottom: 4
+                Image {
+                    source: "qrc:welcome/images/checked.png";
+                    width: 10; height: 10
+                    anchors.centerIn: parent
+                    visible: checkbox.checked
+                }
+            }
+            Text {
+                text: checkbox.text
+            }
+        }
+        Keys.onSpacePressed:checked = !checked
+
+    }
+}
index 104fb52..4b0c157 100644 (file)
@@ -40,7 +40,7 @@ Item {
         width: parent.width
         height: lineEdit.height
 
-        Components.TextField {
+        LineEdit {
             Behavior on width { NumberAnimation{} }
             placeholderText: !checkBox.checked ? qsTr("Search in Tutorials") : qsTr("Search in Tutorials, Examples and Demos")
             focus: true
@@ -49,7 +49,7 @@ Item {
             onTextChanged: examplesModel.filterRegExp = RegExp('.*'+text, "im")
         }
 
-        Components.CheckBox {
+        CheckBox {
             id: checkBox
             text: qsTr("Show Examples and Demos")
             checked: false
@@ -60,7 +60,7 @@ Item {
             onCheckedChanged: examplesModel.showTutorialsOnly = !checked;
         }
 
-        Components.Button {
+        Button {
             id: tagFilterButton
             property string tag
             Behavior on width { NumberAnimation{} }
index 0b62347..1bca1ee 100644 (file)
@@ -47,7 +47,7 @@ BorderImage {
     // whitelist
     property bool _hasDesktopTheme: welcomeMode.platform() === "linux"
 
-    Components.Button {
+    Button {
         id: openProjectButton
         text: qsTr("Open Project...")
         iconSource: _hasDesktopTheme ? "image://desktoptheme/document-open" : ""
@@ -58,7 +58,7 @@ BorderImage {
         anchors.verticalCenter: parent.verticalCenter
     }
 
-    Components.Button {
+    Button {
         id: createProjectButton
         text: qsTr("Create Project...")
         iconSource: _hasDesktopTheme ? "image://desktoptheme/document-new" : ""
@@ -70,7 +70,7 @@ BorderImage {
     }
 
 
-    Components.Button {
+    Button {
         id: feedbackButton
         text: qsTr("Feedback")
         iconSource: "qrc:welcome/images/feedback_arrow.png"
index aedd1d3..b6e30e9 100644 (file)
 **************************************************************************/
 
 import QtQuick 1.0
+import "../components/custom" as Custom
 
-FocusScope {
+
+Custom.TextField {
     id: root
-    signal textChanged
-    property alias text : input.text
-    height:input.font.pixelSize*1.8
-    BorderImage {
+    leftMargin: 6
+    rightMargin: 6
+    topMargin: 6
+    bottomMargin: 6
+
+    background: BorderImage {
         anchors.fill: parent
-        source: "img/lineedit.png"
+        source: "qrc:welcome/images/lineedit.png"
         border.left: 5; border.top: 5
         border.right: 5; border.bottom: 5
-        TextInput {
-            id: input
-            property string defaultText
-            anchors.verticalCenter: parent.verticalCenter
-            anchors.left: parent.left
-            anchors.right: parent.right
-            anchors.leftMargin: 4
-            anchors.rightMargin: 4
-            color: "grey"
-            text:  defaultText
-            font.pointSize: 12
-            clip: true
-            onActiveFocusChanged: activeFocus ? state = 'active' : state = ''
-            onTextChanged: if (text != defaultText) root.textChanged();
-            states: [ State { name: "active"; PropertyChanges { target: input; color: "black"; text: "" } } ]
-        }
+
     }
 }
index ff371df..18d5483 100644 (file)
@@ -36,6 +36,6 @@ Row {
     property int rating : 2
     property int totalRating: 3
 
-    Repeater { id: rep1; model: rating; Image { source: "img/face-star.png"; width: 22 } }
-    Repeater { id: rep2; model: totalRating-rating; Image { source: "img/draw-star.png"; width: 22 } }
+    Repeater { id: rep1; model: rating; Image { source: "qrc:welcome/images/face-star.png"; width: 22 } }
+    Repeater { id: rep2; model: totalRating-rating; Image { source: "qrc:welcome/images/draw-star.png"; width: 22 } }
 }
diff --git a/src/plugins/welcome/images/checked.png b/src/plugins/welcome/images/checked.png
new file mode 100644 (file)
index 0000000..68617b2
Binary files /dev/null and b/src/plugins/welcome/images/checked.png differ
index 5215da8..10e4509 100644 (file)
@@ -26,5 +26,9 @@
         <file>images/background_center_frame_v2.png</file>
         <file>images/tab_hover.png</file>
         <file>images/rc_combined_transparent.png</file>
+        <file>images/checked.png</file>
+        <file>images/lineedit.png</file>
+        <file>images/draw-star.png</file>
+        <file>images/face-star.png</file>
     </qresource>
 </RCC>