I have made the following changes intended for :
  CE:UX:MTF / lipstick
  CE:UX:MTF / lipstick-colorful-home

Please review and accept or decline.
BOSS has already run some checks on this request.
See the "Messages from BOSS" section below.

https://build.pub.meego.com//request/show/6048

Thank You,
Marko Saukko

[This message was auto-generated]

---

Request # 6048:

Messages from BOSS:

State: review at 2012-08-23T13:41:21 by bossbot

Reviews:
       accepted by bossbot : Prechecks succeeded.
       new for CE-maintainers : Please replace this text with a review and 
approve/reject the review (not the SR). BOSS will take care of the rest

Changes:
  submit: Project:MTF:UX / lipstick -> CE:UX:MTF / lipstick
  
changes files:
--------------
--- lipstick.changes
+++ lipstick.changes
@@ -0,0 +1,7 @@
+* Thu Aug 23 2012 Robin Burchell <[email protected]> - 0.3.1
+- Fix build on newer compilers (from Timur)
+- Fix build on 64bit (from Timur)
+- Return an empty icon path for launcher items without an icon (from Timur)
+- Fixes NEMO#348 - System menu doesn't reliably launch when tapped (from Robin)
+- Partially fixes NEMO#350 - Status bar doesn't block presses on items 
underneath it (from Robin)
+

old:
----
  0001-fix-a-missing-export.patch
  0001-move-example-out-of-tree-for-ease-of-adaptation-by-t.patch
  lipstick-0.3.0.tar.bz2

new:
----
  lipstick-0.3.1.tar.bz2

spec files:
-----------
--- lipstick.spec
+++ lipstick.spec
@@ -9,15 +9,13 @@
 # << macros
 
 Summary:    QML toolkit for homescreen creation
-Version:    0.3.0
+Version:    0.3.1
 Release:    1
 Group:      System/Libraries
 License:    LGPLv2.1
 URL:        http://github.com/nemomobile/lipstick
 Source0:    %{name}-%{version}.tar.bz2
 Source100:  lipstick.yaml
-Patch0:     0001-fix-a-missing-export.patch
-Patch1:     0001-move-example-out-of-tree-for-ease-of-adaptation-by-t.patch
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 BuildRequires:  pkgconfig(QtCore)
@@ -44,10 +42,6 @@
 %prep
 %setup -q -n %{name}
 
-# 0001-fix-a-missing-export.patch
-%patch0 -p1
-# 0001-move-example-out-of-tree-for-ease-of-adaptation-by-t.patch
-%patch1 -p1
 # >> setup
 # << setup
 

other changes:
--------------

++++++ lipstick-0.3.0.tar.bz2 -> lipstick-0.3.1.tar.bz2
--- README
+++ README
@@ -31,13 +31,12 @@
 
 src - a shared library
 plugin - a QML plugin which exposes stuff to the QML engine
-example - an example homescreen demonstrating the capabilities of the library
 
-how to run the example
-======================
+how to run lipstick
+===================
 
 1. Build the project.
-   This involves a library, a qml plugin, and an example.
+   This involves a library, and a qml plugin.
    They should compile without errors/warnings.
 
 2. Place the library .so file under /usr/lib
@@ -47,9 +46,16 @@
 2. Place the plugin .so file and the qmldir file under 
/usr/lib/qt4/imports/org/nemomobile/lipstick
    
    NOTE: The warning about /usr/lib64 applies here too
+
+3. Get yourself a desktop
+   If you haven't got anything better to use, grab the example
+   (http://github.com/nemomobile/lipstick-example-home/).
+
+   Build according to instructions, and run it.
+
+   Desktops use both the plugin and shared library generally, so 
+   both of them should be intact before you can run the example
    
-3. The example app uses both the plugin an the shared library (this is 
actually intended),
-   So both of them should be intact before you can run the example
-   
-   NOTE: if you use a properly packaged version of the library, you won't need 
to go through this trouble
+   NOTE: if you use a properly packaged version of the library,
+   you won't need to go through this trouble
 
--- example
+++ example
-(directory)
--- example/example.pro
+++ example/example.pro
@@ -1,32 +0,0 @@
-TEMPLATE = app
-TARGET = lipstick
-VERSION = 0.1
-
-target.path += /usr/bin
-INSTALLS = target
-
-QT += network \
-    svg \
-    dbus \
-    xml \
-    declarative \
-    opengl
-
-HEADERS +=
-
-SOURCES += \
-    main.cpp
-
-RESOURCES += \
-    res.qrc
-
-OTHER_FILES += \
-    images/clarity_03_by_pr09studio.jpg \
-    qml/main.qml \
-    qml/Launcher.qml \
-    qml/Switcher.qml \
-    qml/SwitcherItem.qml
-
-DEPENDPATH += "../src"
-INCLUDEPATH += "../src"
-LIBS += -L"../src" -llipstick
--- example/images
+++ example/images
-(directory)
Binary files example/images/clarity_03_by_pr09studio.jpg deleted
--- example/main.cpp
+++ example/main.cpp
@@ -1,30 +0,0 @@
-
-// This file is part of lipstick, a QML desktop library
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License version 2.1 as published by the Free Software Foundation
-// and appearing in the file LICENSE.LGPL included in the packaging
-// of this file.
-//
-// This code 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 Lesser General Public License for more details.
-//
-// Copyright (c) 2011, Robin Burchell
-// Copyright (c) 2012, Timur Kristóf <[email protected]>
-
-#include <QDebug>
-#include <homeapplication.h>
-
-int main(int argc, char *argv[])
-{
-    // We don't need the meego graphics system here
-    QApplication::setGraphicsSystem("native");
-    HomeApplication app(argc, argv, "qrc:/qml/main.qml");
-
-    qDebug() << "Good morning! This is the lipstick example app! :)";
-
-    return app.exec();
-}
--- example/qml
+++ example/qml
-(directory)
--- example/qml/Launcher.qml
+++ example/qml/Launcher.qml
@@ -1,85 +0,0 @@
-
-/*
- * Launcher.qml
- *
- * Copyright (c) 2011 - Tom Swindell <[email protected]>
- * Copyright (c) 2012 - Timur Kristóf <[email protected]>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to 
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
THE
- * SOFTWARE.
- */
-
-import QtQuick 1.1
-import org.nemomobile.lipstick 0.1
-
-Item {
-    id: launcherRoot
-    clip: true
-
-    property alias cellWidth: gridview.cellWidth
-
-    GridView {
-        id: gridview
-        width: Math.floor(parent.width / cellWidth) * cellWidth
-        cellWidth: 80 + 60
-        cellHeight: cellWidth
-        anchors {
-            top: parent.top;
-            bottom: parent.bottom;
-            horizontalCenter: parent.horizontalCenter;
-            topMargin: 20
-            bottomMargin: 20
-        }
-
-        model: LauncherModel { }
-
-        delegate: Item {
-            width: gridview.cellWidth
-            height: gridview.cellHeight
-
-            Image {
-                id:icon
-                anchors {
-                    top: parent.top
-                    horizontalCenter: parent.horizontalCenter
-                    margins: 8
-                }
-                width: 80
-                height: width
-                source: model.object.iconFilePath
-            }
-            Text {
-                width: parent.width - 10
-                anchors {
-                    bottom: parent.bottom
-                    horizontalCenter: parent.horizontalCenter
-                    margins: 30
-                }
-                horizontalAlignment: Text.AlignHCenter
-                elide: Text.ElideRight
-                font.pixelSize: 18
-                color: 'white'
-                text: object.title
-            }
-            MouseArea {
-                anchors.fill: parent
-                onClicked: object.launchApplication();
-            }
-        }
-    }
-}
--- example/qml/Switcher.qml
+++ example/qml/Switcher.qml
@@ -1,72 +0,0 @@
-
-/*
- * Switcher.qml
- *
- * Copyright (c) 2011 - Tom Swindell <[email protected]>
- * Copyright (c) 2012 - Timur Kristóf <[email protected]>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to 
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
THE
- * SOFTWARE.
- */
-
-import QtQuick 1.1
-import org.nemomobile.lipstick 0.1
-
-Item {
-    property int columnNumber: 3
-
-    id: switcherRoot
-    clip: true
-
-    GridView {
-        id: gridview
-        width: cellWidth * columnNumber
-        cellWidth: (parent.width - 60) / columnNumber
-        cellHeight: cellWidth * (desktop.height / desktop.width) + 20
-        anchors {
-            top: parent.top
-            bottom: parent.bottom
-            horizontalCenter: parent.horizontalCenter
-            topMargin: 35
-            bottomMargin: 35
-        }
-
-        model: SwitcherModel {
-            id:switcherModel
-        }
-
-        delegate: Item {
-            width: gridview.cellWidth
-            height: gridview.cellHeight
-
-            SwitcherItem {
-                width: parent.width - 10
-                height: parent.height - 10
-                anchors.centerIn: parent
-            }
-        }
-    }
-    Text {
-        // Empty switcher indicator
-        anchors.centerIn: parent
-        visible: switcherModel.itemCount === 0
-        text: "No apps open"
-        color: "white"
-        font.pixelSize: 30
-    }
-}
--- example/qml/SwitcherItem.qml
+++ example/qml/SwitcherItem.qml
@@ -1,87 +0,0 @@
-
-/*
- * SwitcherItem.qml
- *
- * Copyright (c) 2011 - Tom Swindell <[email protected]>
- * Copyright (c) 2012 - Timur Kristóf <[email protected]>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to 
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
THE
- * SOFTWARE.
- */
-
-import QtQuick 1.1
-import org.nemomobile.lipstick 0.1
-
-Item {
-    id: switcherItemRoot
-
-    SwitcherPixmapItem {
-        id: windowPixmap
-        width: desktop.isPortrait ? parent.height : parent.width
-        height: desktop.isPortrait ? parent.width : parent.height
-        windowId: model.object.window
-        transform: Rotation {
-            angle: desktop.isPortrait ? 90 : 0
-            origin.x: windowPixmap.height / 2
-            origin.y: windowPixmap.height / 2
-        }
-    }
-
-    MouseArea {
-        anchors.fill: parent
-        onClicked: windowManager.windowToFront(model.object.window)
-    }
-
-    Item {
-        id: closeButton
-        width: 30
-        height: width
-        anchors {
-            top: parent.top
-            right: parent.right
-        }
-
-        Rectangle {
-            anchors.centerIn: parent
-            color: 'red'
-            width: 40
-            height: 8
-            transform: Rotation {
-                angle: 45
-                origin.x: 20
-                origin.y: 4
-            }
-        }
-        Rectangle {
-            anchors.centerIn: parent
-            color: 'red'
-            width: 40
-            height: 8
-            transform: Rotation {
-                angle: -45
-                origin.x: 20
-                origin.y: 4
-            }
-        }
-
-        MouseArea {
-            anchors.fill: parent
-            onClicked: windowManager.closeWindow(model.object.window)
-        }
-    }
-}
--- example/qml/main.qml
+++ example/qml/main.qml
@@ -1,133 +0,0 @@
-
-/*
- * main.qml
- *
- * Copyright (c) 2011 - Tom Swindell <[email protected]>
- * Copyright (c) 2012 - Timur Kristóf <[email protected]>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to 
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
THE
- * SOFTWARE.
- */
-
-import QtQuick 1.1
-import QtMobility.sensors 1.2
-import org.nemomobile.lipstick 0.1
-
-Item {
-    property bool isPortrait: false;
-
-    id: main
-    width: initialSize.width
-    height: initialSize.height
-
-    OrientationSensor {
-        id: orientation
-        active: true
-
-        onReadingChanged: {
-            var orientationChanged = false;
-            var previousIndex = Math.round(dashboard.contentX / 
dashboard.width);
-
-            if (reading.orientation === OrientationReading.TopUp && 
!isPortrait) {
-                // The top of the device is upwards - meaning: portrait
-                isPortrait = true;
-                desktopRotation.angle = -90;
-                desktopRotation.origin.x = main.height / 2;
-                desktopRotation.origin.y = main.height / 2;
-                desktop.width = main.height;
-                desktop.height = main.width;
-                systemStatusBar.isPortrait = true;
-                orientationChanged = true;
-            }
-            if (reading.orientation === OrientationReading.RightUp && 
isPortrait) {
-                // The right side of the device is upwards - meaning: landscape
-                isPortrait = false;
-                desktopRotation.angle = 0;
-                desktopRotation.origin.x = 0;
-                desktopRotation.origin.y = 0;
-                desktop.width = main.width;
-                desktop.height = main.height;
-                systemStatusBar.isPortrait = false;
-                orientationChanged = true;
-            }
-
-            if (orientationChanged)
-                dashboard.contentX = previousIndex * dashboard.width;
-        }
-    }
-
-    Item {
-        property bool isPortrait : height > width
-
-        id: desktop
-        anchors.top: parent.top
-        anchors.left: parent.left
-        width: parent.width
-        height: parent.height
-        transform: Rotation {
-            id: desktopRotation;
-            origin.x: 0;
-            origin.y: 0;
-            angle: 0
-        }
-
-        Image {
-            id: background
-            anchors.fill: parent
-            source: ':/images/background.jpg'
-        }
-        Rectangle {
-            id:overlay
-            anchors.fill:parent
-            opacity:0.6
-            color:'black'
-        }
-        StatusBar {
-            id: systemStatusBar
-            anchors.top: parent.top
-            anchors.left: parent.left
-            anchors.right: parent.right
-            z: 100
-        }
-        ListView {
-            id:dashboard
-
-            anchors.top: systemStatusBar.bottom
-            anchors.left: parent.left
-            anchors.right: parent.right
-            anchors.bottom: parent.bottom
-
-            snapMode:ListView.SnapOneItem
-            orientation:ListView.Horizontal
-            boundsBehavior:Flickable.DragOverBounds
-
-            model:VisualItemModel {
-                Launcher {
-                    id: launcher
-                    width: desktop.width
-                    height: desktop.height
-                }
-                Switcher {
-                    id: switcher
-                    width: desktop.width
-                    height: desktop.height
-                }
-            }
-        }
-    }
-}
--- example/res.qrc
+++ example/res.qrc
@@ -1,12 +0,0 @@
-<RCC>
-    <qresource prefix="/">
-        <file>qml/main.qml</file>
-        <file>qml/Switcher.qml</file>
-        <file>qml/SwitcherItem.qml</file>
-        <file>qml/Launcher.qml</file>
-    </qresource>
-    <qresource prefix="/js"/>
-    <qresource prefix="/images">
-        <file alias="background.jpg">images/clarity_03_by_pr09studio.jpg</file>
-    </qresource>
-</RCC>
--- getlibdir.pri
+++ getlibdir.pri
@@ -0,0 +1,19 @@
+
+LIBDIR = /usr/lib
+
+unix {
+    exists("/usr/bin/rpm") {
+        LIBDIR = $$system(/usr/bin/rpm --eval %{_libdir})
+        message("We have rpm on this system, using libdir from there for 
INSTALLS")
+    }
+    else {
+        linux-g++ {
+            HARDWARE_PLATFORM = $$system(uname -i)
+            contains(HARDWARE_PLATFORM, x86_64) {
+                # Use /usr/lib64 on 64-bit Linux
+                LIBDIR = /usr/lib64
+                message("This is a 64-bit Linux build! Using /usr/lib64 for 
INSTALLS")
+            }
+        }
+    }
+}
--- lipstick.pro
+++ lipstick.pro
@@ -1,6 +1,6 @@
 TEMPLATE = subdirs
 CONFIG += ordered
-SUBDIRS += src plugin example
+SUBDIRS += src plugin
 
 QMAKE_CLEAN += \
     Makefile \
--- plugin/plugin.pro
+++ plugin/plugin.pro
@@ -1,3 +1,6 @@
+
+include (../getlibdir.pri)
+
 TEMPLATE = lib
 TARGET = lipstickplugin
 VERSION = 0.1
@@ -7,13 +10,8 @@
 
 INSTALLS = target qmldirfile
 qmldirfile.files = qmldir
-qmldirfile.path = /usr/lib/qt4/imports/org/nemomobile/lipstick
-target.path = /usr/lib/qt4/imports/org/nemomobile/lipstick
-
-linux-g++-64 {
-    qmldirfile.path = /usr/lib64/qt4/imports/org/nemomobile/lipstick
-    target.path = /usr/lib64/qt4/imports/org/nemomobile/lipstick
-}
+qmldirfile.path = $$LIBDIR/qt4/imports/org/nemomobile/lipstick
+target.path = $$LIBDIR/qt4/imports/org/nemomobile/lipstick
 
 DEPENDPATH += "../src"
 INCLUDEPATH += "../src"
--- src/components/launcheritem.cpp
+++ src/components/launcheritem.cpp
@@ -161,6 +161,11 @@
 
 QString LauncherItem::iconFilePath() const
 {
+    LAUNCHER_DEBUG("icon path is:" << _desktopEntry->icon());
+
+    if (_desktopEntry->icon().length() == 0)
+        return QString();
+
     return "file://" + getIconPath(_desktopEntry->icon());
 }
 
--- src/components/statusbar.cpp
+++ src/components/statusbar.cpp
@@ -118,7 +118,7 @@
     QDeclarativeItem(parent)
 {
     setFlag(QGraphicsItem::ItemHasNoContents, false);
-    setAcceptTouchEvents(true);
+    setAcceptedMouseButtons(Qt::LeftButton);
     setImplicitHeight(36);
     QTimer::singleShot(3000, this, SLOT(initializeStatusBar()));
 }
@@ -159,7 +159,7 @@
 {
     // Statusbar rect
     QPointF p = mapToScene(0, 0);
-    unsigned long data[4] = { (int)p.x(), (int)p.y(), (int)width(), 
(int)height() };
+    unsigned long data[4] = { (unsigned long)p.x(), (unsigned long)p.y(), 
(unsigned long)width(), (unsigned long)height() };
     STATUSBAR_DEBUG("statusbar geo:" << (int)p.x() << (int)p.y() << 
(int)width() << (int)height());
 
     // Orientation angle
@@ -193,25 +193,41 @@
     emit isPortraitChanged();
 }
 
-bool StatusBar::sceneEvent(QEvent *event)
+void StatusBar::mousePressEvent(QGraphicsSceneMouseEvent * /*event */)
 {
-    if (event->type() == QEvent::TouchBegin)
-    {
-        return true;
-    }
-    if (event->type() == QEvent::TouchEnd)
-    {
-        STATUSBAR_DEBUG("opening status menu");
+}
 
-        QDBusInterface interface("com.meego.core.MStatusIndicatorMenu",
-                                 "/statusindicatormenu",
-                                 "com.meego.core.MStatusIndicatorMenu",
-                                 QDBusConnection::sessionBus());
+void StatusBar::mouseReleaseEvent(QGraphicsSceneMouseEvent * /* event */)
+{
+    QDBusInterface interface("com.meego.core.MStatusIndicatorMenu",
+                             "/statusindicatormenu",
+                             "com.meego.core.MStatusIndicatorMenu",
+                             QDBusConnection::sessionBus());
 
-        interface.call(QDBus::NoBlock, "open");
+    interface.call(QDBus::NoBlock, "open");
+}
 
-        return true;
-    }
+void StatusBar::mouseDoubleClickEvent(QGraphicsSceneMouseEvent * /* event */)
+{
+}
 
-    return false;
+void StatusBar::mouseMoveEvent(QGraphicsSceneMouseEvent * /* event */)
+{
 }
+
+void StatusBar::hoverEnterEvent(QGraphicsSceneHoverEvent * /* event */)
+{
+}
+
+void StatusBar::hoverMoveEvent(QGraphicsSceneHoverEvent * /* event */)
+{
+}
+
+void StatusBar::hoverLeaveEvent(QGraphicsSceneHoverEvent * /* event */)
+{
+}
+
+void StatusBar::contextMenuEvent(QGraphicsSceneContextMenuEvent * /* event */)
+{
+}
+
--- src/components/statusbar.h
+++ src/components/statusbar.h
@@ -38,7 +38,18 @@
     void updateSharedPixmap();
     bool isPortrait() const;
     void setIsPortrait(bool value);
-    virtual bool sceneEvent(QEvent *);
+
+    // we reimplement pretty much all virtuals, to prevent anything
+    // propegating to items (like MouseArea) underneath us.
+    void mousePressEvent(QGraphicsSceneMouseEvent *event);
+    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+    void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
+    void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
+    void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
+    void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
+    void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
+    void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
+
 
 private slots:
     void initializeStatusBar();
--- src/src.pro
+++ src/src.pro
@@ -1,3 +1,6 @@
+
+include (../getlibdir.pri)
+
 TEMPLATE = lib
 TARGET = lipstick
 VERSION = 0.1
@@ -6,11 +9,7 @@
 
 CONFIG += qt
 INSTALLS = target
-target.path = /usr/lib
-
-linux-g++-64 {
-    target.path = /usr/lib64
-}
+target.path = $$LIBDIR
 
 QMAKE_STRIP = echo
 OBJECTS_DIR = .obj
@@ -18,6 +17,7 @@
 
 PUBLICHEADERS += \
     homeapplication.h \
+    lipstickglobal.h \
     components/windowinfo.h \
     components/launcheritem.h \
     components/launchermodel.h \
@@ -38,7 +38,6 @@
     xtools/xeventlistener.h \
     xtools/xatomcache.h \
     xtools/xwindowmanager.h \
-    lipstickglobal.h
 
 SOURCES += \
     homeapplication.cpp \
@@ -90,3 +89,14 @@
 QMAKE_CLEAN += \
     *.gcov \
     ./.obj/*.gcno
+
+CONFIG += create_pc create_prl
+QMAKE_PKGCONFIG_NAME = lib$$TARGET
+QMAKE_PKGCONFIG_DESCRIPTION = Library for creating QML desktops
+QMAKE_PKGCONFIG_LIBDIR = $$target.path
+QMAKE_PKGCONFIG_INCDIR = $$publicheaderfiles.path
+QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+
+pkgconfig.files = $$TARGET.pc
+pkgconfig.path = $$target.path/pkgconfig
+INSTALLS += pkgconfig
--- src/utilities/qobjectlistmodel.h
+++ src/utilities/qobjectlistmodel.h
@@ -19,7 +19,9 @@
 
 #include <QAbstractListModel>
 
-class QObjectListModel : public QAbstractListModel
+#include "lipstickglobal.h"
+
+class LIPSTICK_EXPORT QObjectListModel : public QAbstractListModel
 {
     Q_OBJECT
     Q_PROPERTY(int itemCount READ itemCount NOTIFY itemCountChanged)

++++++ lipstick.yaml
--- lipstick.yaml
+++ lipstick.yaml
@@ -1,15 +1,12 @@
 Name: lipstick
 Summary: QML toolkit for homescreen creation
-Version: 0.3.0
+Version: 0.3.1
 Release: 1
 Group: System/Libraries
 License: LGPLv2.1
 URL: http://github.com/nemomobile/lipstick
 Sources:
     - "%{name}-%{version}.tar.bz2"
-Patches:
-    - 0001-fix-a-missing-export.patch
-    - 0001-move-example-out-of-tree-for-ease-of-adaptation-by-t.patch
 Description: A QML toolkit for homescreen creation
 Builder: qmake
 PkgConfigBR:

++++++ deleted files:
--- 0001-fix-a-missing-export.patch
--- 0001-move-example-out-of-tree-for-ease-of-adaptation-by-t.patch

  submit: Project:MTF:UX / lipstick-colorful-home -> CE:UX:MTF / 
lipstick-colorful-home
  
changes files:
--------------

++++++ new changes file:
--- lipstick-colorful-home.changes
+++ lipstick-colorful-home.changes
@@ -0,0 +1,4 @@
+* Thu Aug 23 2012 Robin Burchell <[email protected]> - 0.0.3
+- Initial release for Nemo, thanks to Timur Kristof
+- Fixes NEMO#350: Status bar doesn't block presses on items underneath it
+- Partially fixes NEMO#338: LauncherItem icon lookups are really really slow, 
especially when the icon is not found

new:
----
  lipstick-colorful-home-0.0.3.tar.bz2
  lipstick-colorful-home.changes
  lipstick-colorful-home.spec
  lipstick-colorful-home.yaml
  lipstick.desktop

spec files:
-----------

++++++ new spec file:
--- lipstick-colorful-home.spec
+++ lipstick-colorful-home.spec
@@ -0,0 +1,65 @@
+# 
+# Do NOT Edit the Auto-generated Part!
+# Generated by: spectacle version 0.24.1
+# 
+
+Name:       lipstick-colorful-home
+
+# >> macros
+# << macros
+
+Summary:    A nice homescreen
+Version:    0.0.3
+Release:    1
+Group:      System/GUI/Other
+License:    BSD
+URL:        https://github.com/nemomobile/lipstick-colorful-home
+Source0:    %{name}-%{version}.tar.bz2
+Source1:    lipstick.desktop
+Source100:  lipstick-colorful-home.yaml
+BuildRequires:  pkgconfig(QtCore)
+BuildRequires:  pkgconfig(QtDeclarative)
+BuildRequires:  pkgconfig(QtOpenGL)
+BuildRequires:  pkgconfig(lipstick)
+Provides:   meegotouch-home > 1.3.2
+Conflicts:   lipstick-example-home
+Obsoletes:   meegotouch-home <= 1.3.2
+
+%description
+A homescreen for Nemo Mobile
+
+
+%prep
+%setup -q -n %{name}
+
+# >> setup
+# << setup
+
+%build
+# >> build pre
+# << build pre
+
+%qmake 
+
+make %{?jobs:-j%jobs}
+
+# >> build post
+# << build post
+
+%install
+rm -rf %{buildroot}
+# >> install pre
+# << install pre
+%qmake_install
+
+# >> install post
+install -D -m 644 %{SOURCE1} %{buildroot}/etc/xdg/autostart/lipstick.desktop
+# << install post
+
+
+%files
+%defattr(-,root,root,-)
+%{_bindir}/colorful-home
+# >> files
+%config /etc/xdg/autostart/*.desktop
+# << files

other changes:
--------------

++++++ lipstick-colorful-home-0.0.3.tar.bz2 (new)

++++++ lipstick-colorful-home.yaml (new)
--- lipstick-colorful-home.yaml
+++ lipstick-colorful-home.yaml
@@ -0,0 +1,25 @@
+Name: lipstick-colorful-home
+Summary: A nice homescreen
+Version: 0.0.3
+Release: 1
+Group: System/GUI/Other
+License: BSD
+URL: https://github.com/nemomobile/lipstick-colorful-home
+Sources:
+    - "%{name}-%{version}.tar.bz2"
+    - lipstick.desktop
+Provides:
+    - meegotouch-home > 1.3.2
+Obsoletes:
+    - meegotouch-home <= 1.3.2
+Description: A homescreen for Nemo Mobile
+Builder: qmake
+PkgConfigBR:
+    - QtCore
+    - QtDeclarative
+    - QtOpenGL # TODO: remove
+    - lipstick
+Conflicts:
+  - lipstick-example-home
+Files:
+    - "%{_bindir}/colorful-home"

++++++ lipstick.desktop (new)
--- lipstick.desktop
+++ lipstick.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Exec=/usr/bin/colorful-home
+X-Moblin-Priority=High
+OnlyShowIn=X-MEEGO-HS;
+X-Meego-Watchdog=Restart



Reply via email to