From 32b599f70c06b1f15423b95af458704ef0513b66 Mon Sep 17 00:00:00 2001 From: David Sansome Date: Sat, 15 Jan 2011 00:55:45 +0000 Subject: [PATCH] Add python bindings for the NetworkManager, SongLoader and IconLoader. Add a workaround for a SIP assertion bug (assign_helper != ((void *)0)) that was fixed in 4.10.3: http://www.riverbankcomputing.com/hg/sip/rev/3e647ed0f2a2 --- src/scripting/python/clementine.sip | 4 ++++ src/scripting/python/iconloader.sip | 12 ++++++++++++ src/scripting/python/libraryquery.sip | 3 ++- src/scripting/python/network.sip | 9 +++++++++ src/scripting/python/playlistitem.sip | 3 ++- src/scripting/python/songloader.sip | 28 +++++++++++++++++++++++++++ 6 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 src/scripting/python/iconloader.sip create mode 100644 src/scripting/python/network.sip create mode 100644 src/scripting/python/songloader.sip diff --git a/src/scripting/python/clementine.sip b/src/scripting/python/clementine.sip index a9d36f3a9..3e3e67131 100644 --- a/src/scripting/python/clementine.sip +++ b/src/scripting/python/clementine.sip @@ -2,12 +2,15 @@ %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip +%Import QtNetwork/QtNetworkmod.sip %Include directory.sip %Include engine_fwd.sip +%Include iconloader.sip %Include librarybackend.sip %Include libraryquery.sip %Include mergedproxymodel.sip +%Include network.sip %Include player.sip %Include playlist.sip %Include playlistitem.sip @@ -20,5 +23,6 @@ %Include scriptinterface.sip %Include settingsdialog.sip %Include song.sip +%Include songloader.sip %Include taskmanager.sip %Include uiinterface.sip diff --git a/src/scripting/python/iconloader.sip b/src/scripting/python/iconloader.sip new file mode 100644 index 000000000..45e2c7cb7 --- /dev/null +++ b/src/scripting/python/iconloader.sip @@ -0,0 +1,12 @@ +class IconLoader { + +%TypeHeaderCode +#include "ui/iconloader.h" +%End + +public: + static QIcon Load(const QString& name); + +private: + IconLoader(); +}; diff --git a/src/scripting/python/libraryquery.sip b/src/scripting/python/libraryquery.sip index fd45c3fb6..c4a2548df 100644 --- a/src/scripting/python/libraryquery.sip +++ b/src/scripting/python/libraryquery.sip @@ -20,7 +20,8 @@ class LibraryQuery { %End public: - LibraryQuery(const QueryOptions& options = QueryOptions()); + LibraryQuery(); // Workaround SIP Mercurial 3e647ed0f2a2 + LibraryQuery(const QueryOptions& options); void SetColumnSpec(const QString& spec); void SetOrderBy(const QString& order_by); diff --git a/src/scripting/python/network.sip b/src/scripting/python/network.sip new file mode 100644 index 000000000..8c8010069 --- /dev/null +++ b/src/scripting/python/network.sip @@ -0,0 +1,9 @@ +class NetworkAccessManager : QNetworkAccessManager { + +%TypeHeaderCode +#include "core/network.h" +%End + +public: + NetworkAccessManager(QObject* parent /TransferThis/ = 0); +}; diff --git a/src/scripting/python/playlistitem.sip b/src/scripting/python/playlistitem.sip index 397aeb8a8..93bc7635b 100644 --- a/src/scripting/python/playlistitem.sip +++ b/src/scripting/python/playlistitem.sip @@ -33,7 +33,8 @@ public: TrackAvailable, }; - SpecialLoadResult(Type type = NoMoreTracks, + SpecialLoadResult(); // Workaround SIP Mercurial 3e647ed0f2a2 + SpecialLoadResult(Type type, const QUrl& original_url = QUrl(), const QUrl& media_url = QUrl()); diff --git a/src/scripting/python/songloader.sip b/src/scripting/python/songloader.sip new file mode 100644 index 000000000..da74de835 --- /dev/null +++ b/src/scripting/python/songloader.sip @@ -0,0 +1,28 @@ +class SongLoader : QObject { + +%TypeHeaderCode + #include "core/songloader.h" +%End + +public: + SongLoader(LibraryBackend* library, QObject* parent /TransferThis/ = 0); + + enum Result { + Success, + Error, + WillLoadAsync, + }; + + static const int kDefaultTimeout; + + const QUrl& url() const; + const SongList& songs() const; + + int timeout() const; + void set_timeout(int msec); + + Result Load(const QUrl& url); + +signals: + void LoadFinished(bool success); +};