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
