[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/attica/ocs/lib
From: Eckhart Wörner <ewoerner () kde ! org>
Date: 2009-10-26 16:38:28
Message-ID: 1256575108.556271.9783.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1040666 by ewoerner:
Try to load the KDE plugin, if that fails, use the Qt plugin
M +11 -2 CMakeLists.txt
M +3 -0 internals.h
M +6 -0 kdeinternals.cpp
M +4 -1 kdeinternals.h
M +19 -2 providermanager.cpp
M +1 -0 providermanager.h
M +8 -1 qtinternals.cpp
M +1 -0 qtinternals.h
--- branches/work/attica/ocs/lib/CMakeLists.txt #1040665:1040666
@@ -1,6 +1,5 @@
set(ocsclient_SRCS
internals.cpp
- kdeinternals.cpp
qtinternals.cpp
parser.cpp
getjob.cpp
@@ -39,7 +38,8 @@
kde4_add_library(ocsclient SHARED ${ocsclient_SRCS})
set_target_properties(ocsclient PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION \
${GENERIC_LIB_SOVERSION})
-target_link_libraries(ocsclient ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} \
${KDE4_KABC_LIBS}) +# FIXME: Remove KDE4 Libraries
+target_link_libraries(ocsclient ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} \
${QT_QTGUI_LIBRARY} ${KDE4_KIO_LIBRARY})
install(TARGETS ocsclient ${INSTALL_TARGETS_DEFAULT_ARGS})
@@ -59,3 +59,12 @@
DESTINATION ${INCLUDE_INSTALL_DIR}/attica COMPONENT Devel
)
+
+
+set(attica_kde_SRCS kdeinternals.cpp internals.cpp)
+kde4_add_plugin(attica_kde ${attica_kde_SRCS})
+
+target_link_libraries(attica_kde ${KDE4_KIO_LIBS} ${QT_QTMAIN_LIBRARY} \
${QT_QTCORE_LIBRARY}) +
+# FIXME: Use a more sane destination
+install(TARGETS attica_kde DESTINATION "~")
--- branches/work/attica/ocs/lib/internals.h #1040665:1040666
@@ -23,6 +23,7 @@
#define ATTICA_INTERNALS_H
#include <QtCore/QList>
+#include <QtCore/QtPlugin>
class QByteArray;
@@ -50,5 +51,7 @@
}
+Q_DECLARE_INTERFACE(Attica::Internals, "org.kde.Attica.Internals/1.0")
+
#endif
--- branches/work/attica/ocs/lib/kdeinternals.cpp #1040665:1040666
@@ -99,3 +99,9 @@
QNetworkAccessManager* Attica::KDEInternals::nam() {
return &m_qnam;
}
+
+
+Q_EXPORT_PLUGIN2(attica_kde, Attica::KDEInternals)
+
+
+#include "kdeinternals.moc"
--- branches/work/attica/ocs/lib/kdeinternals.h #1040665:1040666
@@ -33,8 +33,11 @@
namespace Attica {
-class KDEInternals : public Attica::Internals
+class KDEInternals : public QObject, public Attica::Internals
{
+ Q_OBJECT
+ Q_INTERFACES(Attica::Internals)
+
public:
KDEInternals();
virtual QList<QUrl> getDefaultProviderFiles() const;
--- branches/work/attica/ocs/lib/providermanager.cpp #1040665:1040666
@@ -22,6 +22,7 @@
#include "providermanager.h"
#include <QtCore/QDebug>
+#include <QtCore/QPluginLoader>
#include <QtCore/QSet>
#include <QtCore/QSharedPointer>
#include <QtCore/QTimer>
@@ -30,7 +31,7 @@
#include <QtXml/QXmlStreamReader>
#include "internals.h"
-#include "kdeinternals.h"
+#include "qtinternals.h"
using namespace Attica;
@@ -46,7 +47,7 @@
QHash<QUrl, QList<QString> > m_providerFiles;
Private()
- : m_internals(new KDEInternals)
+ : m_internals(0)
{
}
~Private()
@@ -55,9 +56,25 @@
};
+Internals* ProviderManager::loadInternals() {
+ QPluginLoader loader("attica_kde.so");
+ QObject* plugin = loader.instance();
+ if (plugin) {
+ Internals* kdeInternals = qobject_cast<Internals*>(plugin);
+ if (kdeInternals) {
+ qDebug() << "Using Attica with KDE support";
+ return kdeInternals;
+ }
+ }
+ qDebug() << "Using Attica without KDE support";
+ return new QtInternals;
+}
+
+
ProviderManager::ProviderManager()
: d(new Private)
{
+ d->m_internals = QSharedPointer<Internals>(loadInternals());
connect(d->m_internals->nam(), \
SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), \
SLOT(authenticate(QNetworkReply*,QAuthenticator*))); }
--- branches/work/attica/ocs/lib/providermanager.h #1040665:1040666
@@ -65,6 +65,7 @@
ProviderManager& operator=(const ProviderManager& other);
void initNetworkAccesssManager();
+ Internals* loadInternals();
void parseProviderFile(const QString& xmlString);
--- branches/work/attica/ocs/lib/qtinternals.cpp #1040665:1040666
@@ -56,6 +56,13 @@
}
-QList<QUrl> Attica::QtInternals::getDefaultProviderFiles() const {
+QList<QUrl> Attica::QtInternals::getDefaultProviderFiles() const
+{
return QList<QUrl>();
}
+
+
+QNetworkAccessManager* Attica::QtInternals::nam()
+{
+ return &m_qnam;
+}
--- branches/work/attica/ocs/lib/qtinternals.h #1040665:1040666
@@ -38,6 +38,7 @@
virtual QNetworkReply* get(const QNetworkRequest& request);
virtual bool saveCredentials(const QUrl& baseUrl, const QString& user, const \
QString& password);
virtual bool loadCredentials(const QUrl& baseUrl, QString& user, QString& \
password); + virtual QNetworkAccessManager* nam();
private:
QNetworkAccessManager m_qnam;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic