Hello community, here is the log from the commit of package psi for openSUSE:Factory checked in at Wed Apr 1 22:44:57 CEST 2009. -------- --- psi/psi.changes 2009-02-27 15:47:09.000000000 +0100 +++ psi/psi.changes 2009-03-30 14:47:37.000000000 +0200 @@ -1,0 +2,9 @@ +Mon Mar 2 13:23:04 CET 2009 - prusnak@suse.cz + +- enable Media Player Remote Interface Specification (mpris.patch) +- enable sleep and wake up events via dbus (dbus-sleepwake.patch) +- enable whiteboarding (whiteboarding.patch) +- fix Qt 4.5 compatibility (qt45-compat.patch) +- fix references in mainwin (mainwin.patch) + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- psi-0.12.1-assert.patch psi-0.12.1-dbus-sleepwake.patch psi-0.12.1-mainwin.patch psi-0.12.1-mpris.patch psi-0.12.1-qt45-compat.patch psi-0.12.1-whiteboarding.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ psi.spec ++++++ --- /var/tmp/diff_new_pack.TU9648/_old 2009-04-01 22:40:56.000000000 +0200 +++ /var/tmp/diff_new_pack.TU9648/_new 2009-04-01 22:40:56.000000000 +0200 @@ -23,7 +23,7 @@ License: GPL v2 or later Group: Productivity/Networking/Talk/Clients Version: 0.12.1 -Release: 1 +Release: 2 Summary: PSI Jabber client using Qt Source: http://downloads.sourceforge.net/psi/%{name}-%{version}.tar.bz2 Source1: http://psi-im.org/download/lang/psi_cs.qm @@ -46,9 +46,14 @@ Source18: http://psi-im.org/download/lang/psi_zh.qm Source19: http://psi-im.org/download/lang/psi_zh_TW.qm Patch0: %{name}-%{version}-delete.patch +Patch1: %{name}-%{version}-dbus-sleepwake.patch +Patch2: %{name}-%{version}-mpris.patch +Patch3: %{name}-%{version}-whiteboarding.patch +Patch4: %{name}-%{version}-assert.patch +Patch5: %{name}-%{version}-qt45-compat.patch +Patch6: %{name}-%{version}-mainwin.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: libqt4-devel >= 4.2.3 -BuildRequires: libqca2-devel >= 2.0.0 +BuildRequires: libqca2-devel libqt4-devel BuildRequires: update-desktop-files %description @@ -72,6 +77,12 @@ %prep %setup -q %patch0 +%patch1 +%patch2 +%patch3 +%patch4 +%patch5 +%patch6 %build # do not use %configure - not real configure script @@ -127,6 +138,12 @@ # %lang(zh_TW) %{_datadir}/psi/*_zh_TW.qm %changelog +* Mon Mar 02 2009 prusnak@suse.cz +- enable Media Player Remote Interface Specification (mpris.patch) +- enable sleep and wake up events via dbus (dbus-sleepwake.patch) +- enable whiteboarding (whiteboarding.patch) +- fix Qt 4.5 compatibility (qt45-compat.patch) +- fix references in mainwin (mainwin.patch) * Fri Feb 27 2009 prusnak@suse.cz - updated to 0.12.1 * Bugfix for DOS vulnerability in the file transfer code. ++++++ psi-0.12.1-assert.patch ++++++ --- src/sxe/sxemanager.cpp +++ src/sxe/sxemanager.cpp @@ -22,6 +22,7 @@ #include "psipopup.h" #include "psioptions.h" #include "common.h" +#include <assert.h> #include <QUrl> using namespace XMPP; ++++++ psi-0.12.1-dbus-sleepwake.patch ++++++ --- src/dbus.cpp +++ src/dbus.cpp @@ -26,6 +45,8 @@ ~PsiConAdapter(); public Q_SLOTS: // void openURI(QString uri); + void sleep(); + void wakeup(); void raise(); /*Q_SIGNALS: void psi_pong(); @@ -49,6 +70,14 @@ psicon->doOpenUri(uri); }*/ +void PsiConAdapter::sleep() { + psicon->doSleep(); +} + +void PsiConAdapter::wakeup() { + psicon->doWakeup(); +} + // FIXME libguniqueapp uses activate void PsiConAdapter::raise() { ++++++ psi-0.12.1-mainwin.patch ++++++ --- src/mainwin.cpp +++ src/mainwin.cpp @@ -414,9 +415,9 @@ void MainWin::registerAction( IconAction* action ) { - char activated[] = SIGNAL( activated() ); - char toggled[] = SIGNAL( toggled(bool) ); - char setChecked[] = SLOT( setChecked(bool) ); + const char *activated = SIGNAL( activated() ); + const char *toggled = SIGNAL( toggled(bool) ); + const char *setChecked = SLOT( setChecked(bool) ); struct { const char* name; ++++++ psi-0.12.1-mpris.patch ++++++ --- src/tools/tunecontroller/plugins/mpris/mpriscontroller.cpp +++ src/tools/tunecontroller/plugins/mpris/mpriscontroller.cpp @@ -0,0 +1,99 @@ +/* + * mpristunecontroller.cpp + * Copyright (C) 2008 Matthieu Volat + * + * 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 library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include <QtDBus/QDBusMetaType> +#include <QDBusReply> +#include <QVariantMap> + +#include "mpriscontroller.h" + +/** + * \class MPRISTuneController + * \brief A common controller class for MPRIS compilant players. + */ +QDBusArgument &operator<<(QDBusArgument& arg, const PlayerStatus& ps) +{ + arg.beginStructure(); + arg << ps.i1; + arg << ps.i2; + arg << ps.i3; + arg << ps.i4; + arg.endStructure(); + return arg; +} + +const QDBusArgument &operator>>(const QDBusArgument& arg, PlayerStatus& ps) +{ + arg.beginStructure(); + arg >> ps.i1; + arg >> ps.i2; + arg >> ps.i3; + arg >> ps.i4; + arg.endStructure(); + return arg; +} + +MPRISController::MPRISController() +{ +// service_ = QString("org.mpris.") + player; + QDBusConnection bus = QDBusConnection::sessionBus(); + + qDBusRegisterMetaType<PlayerStatus>(); + bus.connect( + QString(), + "/Player", + "org.freedesktop.MediaPlayer", + "StatusChange", + "(iiii)", + this, + SLOT(playerStatusChanged(PlayerStatus))); + + bus.connect( + QString(), + "/Player", + "org.freedesktop.MediaPlayer", + "TrackChange", + "a{sv}", + this, + SLOT(playerTrackChanged(QVariantMap))); +} + +Tune MPRISController::currentTune() +{ + return currentTune_; +} + +void MPRISController::playerStatusChanged(const PlayerStatus& ps) +{ + // Many players do not send TrackChange when pausing/stopping, so + // we must use StatusChange instead of + if (ps.i1 != 0) + emit stopped(); +} + +void MPRISController::playerTrackChanged(QVariantMap map) +{ + currentTune_.setName(map.value("title").toString()); + currentTune_.setArtist(map.value("artist").toString()); + currentTune_.setAlbum(map.value("album").toString()); + currentTune_.setTrack(map.value("track").toString()); + currentTune_.setTime(map.value("time").toUInt()); + emit playing(currentTune_); +} --- src/tools/tunecontroller/plugins/mpris/mpriscontroller.h +++ src/tools/tunecontroller/plugins/mpris/mpriscontroller.h @@ -0,0 +1,57 @@ +/* + * mpristunecontroller.h + * Copyright (C) 2008 Matthieu Volat + * + * 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 library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef MPRISCONTROLLER_H +#define MPRISCONTROLLER_H + +#include <QDBusConnection> +#include <QString> + +#include "tunecontrollerinterface.h" +#include "tune.h" + +struct PlayerStatus +{ + int i1; + int i2; + int i3; + int i4; +}; + +Q_DECLARE_METATYPE(PlayerStatus) + +class MPRISController : public TuneController +{ + Q_OBJECT + +public: + MPRISController(); + + Tune currentTune(); + +protected slots: + void playerStatusChanged(const PlayerStatus& ps); + void playerTrackChanged(QVariantMap map); + +private: + Tune currentTune_; +}; + +#endif --- src/tools/tunecontroller/plugins/mpris/mprisplugin.cpp +++ src/tools/tunecontroller/plugins/mpris/mprisplugin.cpp @@ -0,0 +1,54 @@ +/* + * mprisplugin.cpp + * Copyright (C) 2008 Matthieu Volat + * + * 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 library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef QT_STATICPLUGIN +#define QT_STATICPLUGIN +#endif + +#include <QtCore> +#include <QObject> +#include <QString> + +#include "mpriscontroller.h" +#include "tunecontrollerplugin.h" + +class MPRISPlugin : public QObject, public TuneControllerPlugin +{ + Q_OBJECT + Q_INTERFACES(TuneControllerPlugin) + +public: + virtual QString name(); + virtual TuneController* createController(); +}; + +Q_EXPORT_PLUGIN2(mprisplugin, MPRISPlugin); + +QString MPRISPlugin::name() +{ + return "MPRIS"; +} + +TuneController* MPRISPlugin::createController() +{ + return new MPRISController(); +} + +#include "mprisplugin.moc" --- src/tools/tunecontroller/tunecontrollermanager.cpp +++ src/tools/tunecontroller/tunecontrollermanager.cpp @@ -119,3 +119,7 @@ #ifdef TC_PSIFILE Q_IMPORT_PLUGIN(psifileplugin); #endif + +#ifdef TC_MPRIS +Q_IMPORT_PLUGIN(mprisplugin); +#endif --- src/tools/tunecontroller/tunecontroller.pri +++ src/tools/tunecontroller/tunecontroller.pri @@ -82,3 +82,13 @@ $$PSIFILE_PLUGIN_PATH/psifilecontroller.cpp \ $$PSIFILE_PLUGIN_PATH/psifileplugin.cpp } + +# MPRIS +dbus { + DEFINES += TC_MPRIS + MPRIS_PLUGIN_PATH = $$PWD/plugins/mpris + SOURCES += $$MPRIS_PLUGIN_PATH/mprisplugin.cpp \ + $$MPRIS_PLUGIN_PATH/mpriscontroller.cpp + HEADERS += $$MPRIS_PLUGIN_PATH/mpriscontroller.h +} + ++++++ psi-0.12.1-qt45-compat.patch ++++++ --- src/main.cpp +++ src/main.cpp @@ -274,9 +274,9 @@ int main(int argc, char *argv[]) { + PsiApplication app(argc, argv); // it must be initialized first in order for ApplicationInfo::resourcesDir() to work QCA::Initializer init; - PsiApplication app(argc, argv); QApplication::addLibraryPath(ApplicationInfo::resourcesDir()); QApplication::addLibraryPath(ApplicationInfo::homeDir()); QApplication::setQuitOnLastWindowClosed(false); ++++++ psi-0.12.1-whiteboarding.patch ++++++ --- src/src.pro +++ src/src.pro @@ -9,7 +9,7 @@ #CONFIG += use_crash CONFIG += pep -#CONFIG += whiteboarding +CONFIG += whiteboarding DEFINES += QT_STATICPLUGIN # Import several very useful Makefile targets --- src/whiteboarding/wbnewpath.cpp +++ src/whiteboarding/wbnewpath.cpp @@ -21,6 +21,7 @@ #include "wbnewpath.h" +#include <limits> #include <QGraphicsScene> WbNewPath::WbNewPath(QGraphicsScene* s, QPointF startPos, int strokeWidth, const QColor &strokeColor, const QColor &fillColor) : WbNewItem(s) { ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org