aboutsummaryrefslogtreecommitdiff
path: root/src/Qt4
diff options
context:
space:
mode:
Diffstat (limited to 'src/Qt4')
-rw-r--r--src/Qt4/CMakeLists.txt16
-rw-r--r--src/Qt4/README3
-rw-r--r--src/Qt4/TODO2
-rw-r--r--src/Qt4/qlistconverter.cpp40
-rw-r--r--src/Qt4/qlistconverter.h32
-rw-r--r--src/Qt4/qpackageproperties.cpp52
-rw-r--r--src/Qt4/qpackageproperties.h35
-rw-r--r--src/Qt4/qportage.cpp180
-rw-r--r--src/Qt4/qportage.h67
-rw-r--r--src/Qt4/qportagesettings.cpp98
-rw-r--r--src/Qt4/qportagesettings.h41
-rw-r--r--src/Qt4/tests/CMakeLists.txt6
-rw-r--r--src/Qt4/tests/qlistconverter_test.cpp16
-rw-r--r--src/Qt4/tests/qpackageproperties_test.cpp27
-rw-r--r--src/Qt4/tests/qportagesettings_test.cpp34
-rw-r--r--src/Qt4/tests/test.cpp10
16 files changed, 659 insertions, 0 deletions
diff --git a/src/Qt4/CMakeLists.txt b/src/Qt4/CMakeLists.txt
new file mode 100644
index 0000000..ab672ba
--- /dev/null
+++ b/src/Qt4/CMakeLists.txt
@@ -0,0 +1,16 @@
+find_package(Qt4 REQUIRED)
+include_directories(${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR} ..)
+remove_definitions(-std=c99)
+
+set(cpp-portage_SRCS qportage.cpp qportagesettings.cpp qpackageproperties.cpp qlistconverter.cpp)
+set(cpp-portage_HDRS qportage.h qportagesettings.h qpackageproperties.h qlistconverter.h)
+
+QT4_WRAP_CPP(cpp-portage_MOC_SRCS ${cpp-portage_HDRS})
+
+add_library(cpp-portage SHARED ${cpp-portage_SRCS} ${cpp-portage_MOC_SRCS})
+target_link_libraries(cpp-portage c-portage ${QT_QTCORE_LIBRARY})
+
+install(TARGETS cpp-portage DESTINATION lib)
+install(FILES ${cpp-portage_HDRS} DESTINATION include/cpp-portage)
+
+add_subdirectory(tests)
diff --git a/src/Qt4/README b/src/Qt4/README
new file mode 100644
index 0000000..3059917
--- /dev/null
+++ b/src/Qt4/README
@@ -0,0 +1,3 @@
+Don't use this branch.It is only an interegation branch.
+The code is very unstable.I created this branch in order to
+avoid breaking the cmake_port branch.
diff --git a/src/Qt4/TODO b/src/Qt4/TODO
new file mode 100644
index 0000000..d11d08e
--- /dev/null
+++ b/src/Qt4/TODO
@@ -0,0 +1,2 @@
+I need some help with the CMakeLists.txt which is located at
+c-portage/src/Qt/tests,in order to create some test files
diff --git a/src/Qt4/qlistconverter.cpp b/src/Qt4/qlistconverter.cpp
new file mode 100644
index 0000000..4ce0845
--- /dev/null
+++ b/src/Qt4/qlistconverter.cpp
@@ -0,0 +1,40 @@
+#include "qlistconverter.h"
+
+#include <QStringList>
+#include <QString>
+
+struct StringList
+{
+ char **list;
+ unsigned int count;
+};
+
+namespace CppPortage{
+
+QListConverter::QListConverter(QObject *parent)
+ :QObject(parent)
+{}
+
+StringList* QListConverter::QStringListToStringList(QStringList qstringList)
+{
+ StringList *stringList = stringListCreate(qstringList.size());//create a new StringList
+
+ for (int i = 0; i <= qstringList.size(); i++) {
+ char c = *(qstringList.at(i).toUtf8().data());
+ stringListInsertAt(stringList, i, &c);
+ }
+
+ return stringList;
+}
+
+QStringList QListConverter::StringListToQStringList(StringList *stringList)
+{
+ QStringList qstringList;
+
+ for (int i = 0; i <= stringList->count; i++) {
+ qstringList.insert(i, stringListGetAt(stringList, i));
+ }
+
+ return qstringList;
+}
+}//end namespace \ No newline at end of file
diff --git a/src/Qt4/qlistconverter.h b/src/Qt4/qlistconverter.h
new file mode 100644
index 0000000..ffd52ba
--- /dev/null
+++ b/src/Qt4/qlistconverter.h
@@ -0,0 +1,32 @@
+#ifndef QLISTCONVERTER_H
+#define QLISTCONVERTER_H
+
+extern "C" {
+#include "../stringlist.h"
+}
+
+#include <QObject>
+
+class QString;
+class QStringList;
+
+namespace CppPortage {
+
+class QListConverter : public QObject
+{
+ Q_OBJECT
+public:
+ QListConverter(QObject *parent = 0);
+
+ /**
+ * Converts a StringList to a QStringList
+ **/
+ static QStringList StringListToQStringList(StringList *stringList);
+
+ /**
+ * Converts a QStringList to a StringList
+ **/
+ static StringList* QStringListToStringList(QStringList qstringList);
+};
+}
+#endif \ No newline at end of file
diff --git a/src/Qt4/qpackageproperties.cpp b/src/Qt4/qpackageproperties.cpp
new file mode 100644
index 0000000..8302122
--- /dev/null
+++ b/src/Qt4/qpackageproperties.cpp
@@ -0,0 +1,52 @@
+#include "qpackageproperties.h"
+#include "qlistconverter.h"
+
+#include <QStringList>
+#include <QString>
+
+namespace CppPortage{
+
+QPackageProperties::QPackageProperties(QString slot, QStringList keywords,
+ QStringList flags, QStringList homepages, QObject *parent)
+ :QObject(parent)
+{
+ StringList *FLAGS = QListConverter::QStringListToStringList(flags);
+
+ StringList *HOMEPAGES = QListConverter::QStringListToStringList(homepages);
+
+ StringList *KEYWORDS = QListConverter::QStringListToStringList(keywords);
+
+ packagePropertiesCreate(slot.toUtf8().data(), KEYWORDS, FLAGS, HOMEPAGES);
+}
+
+
+QPackageProperties::~QPackageProperties()
+{
+ PackageProperties *p;
+ void Free(PackageProperties *p);
+}
+
+const QString QPackageProperties::Slot()
+{
+ PackageProperties *p;
+ return packagePropertiesGetSlot(p);
+}
+
+const QStringList QPackageProperties::Flags()
+{
+ PackageProperties *p;
+ return QListConverter::StringListToQStringList(packagePropertiesGetFlags(p));
+}
+
+const QStringList QPackageProperties::Keywords()
+{
+ PackageProperties *p;
+ return QListConverter::StringListToQStringList(packagePropertiesGetKeywords(p));
+}
+
+const QStringList QPackageProperties::Homepages()
+{
+ PackageProperties *p;
+ return QListConverter::StringListToQStringList(packagePropertiesGetHomepages(p));
+}
+}
diff --git a/src/Qt4/qpackageproperties.h b/src/Qt4/qpackageproperties.h
new file mode 100644
index 0000000..bf20cfb
--- /dev/null
+++ b/src/Qt4/qpackageproperties.h
@@ -0,0 +1,35 @@
+#ifndef QPACKAGEPROPERTIES_H
+#define QPACKAGEPROPERTIES_H
+
+#include <QObject>
+
+extern "C" {
+#include "../packageproperties.h"
+}
+
+
+class QString;
+class QStringList;
+
+struct PackageProperties;
+struct StringList;
+
+namespace CppPortage {
+
+class QListConverter;
+
+class QPackageProperties : public QObject
+{
+ Q_OBJECT
+public:
+ QPackageProperties(QString slot, const QStringList keywords, const QStringList flags,
+ QStringList homepages,QObject *parent = 0);
+ virtual ~QPackageProperties();
+
+ const QString Slot();
+ const QStringList Keywords();
+ const QStringList Flags();
+ const QStringList Homepages();
+};
+}
+#endif \ No newline at end of file
diff --git a/src/Qt4/qportage.cpp b/src/Qt4/qportage.cpp
new file mode 100644
index 0000000..cd9743c
--- /dev/null
+++ b/src/Qt4/qportage.cpp
@@ -0,0 +1,180 @@
+/*
+ <one line to give the library's name and an idea of what it does.>
+ Copyright (C) 2011 Θεόφιλος Ιντζόγλου <int.teo@gmail.com>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library 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.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+
+#include "qportage.h"
+#include "qlistconverter.h"
+
+extern "C" {
+#include <dataconnect.h>
+}
+
+namespace CppPortage {
+
+portage::portage(QObject* parent): QObject(parent)
+{
+
+}
+
+portage::~portage()
+{
+
+}
+
+QString portage::bestVersion(QStringList )
+{
+
+}
+
+QStringList portage::allNodes()
+{
+ StringList *clist;
+ QStringList strlist;
+
+ clist = portageGetAllNodes();
+ strlist = QListConverter::StringListToQStringList(clist);
+ stringListFree(clist);
+
+ return strlist;
+}
+
+QString portage::bestEbuild(const QString& )
+{
+
+}
+
+QString portage::depEbuild(const QString& )
+{
+
+}
+
+int portage::hardMasked(const QString& , QStringList& , QStringList& )
+{
+
+}
+
+QStringList portage::installedFiles(const QString &package)
+{
+ StringList *clist;
+ QStringList strlist;
+
+ clist = portageGetInstalledFiles(package.toUtf8().data());
+ strlist = QListConverter::StringListToQStringList(clist);
+ stringListFree(clist);
+
+ return strlist;
+}
+
+QStringList portage::installedList()
+{
+ StringList *clist;
+ QStringList strlist;
+
+ clist = portageGetInstalledList();
+ strlist = QListConverter::StringListToQStringList(clist);
+ stringListFree(clist);
+
+ return strlist;
+}
+
+QString portage::maskingReason(const QString& )
+{
+
+}
+
+QStringList portage::maskingStatus(const QString& )
+{
+
+}
+
+QString portage::overlay(const QString& )
+{
+
+}
+
+QString portage::overlayNameFromPath(const QString& )
+{
+
+}
+
+QString portage::overlayNameFromPkg(const QString& )
+{
+
+}
+
+long int portage::packageSizeInt(const QString& )
+{
+
+}
+
+QString portage::packageSizeString(const QString& )
+{
+
+}
+
+QString portage::path(const QString &package, int )
+{
+
+}
+
+PackageProperties* portage::properties(const QString &package)
+{
+ return portageGetProperties(package.toUtf8().data());
+}
+
+QStringList portage::resolvedPkgs()
+{
+ StringList *clist;
+ QStringList strlist;
+
+ clist = portageGetResolvedPkgs();
+ strlist = QListConverter::StringListToQStringList(clist);
+ stringListFree(clist);
+
+ return strlist;
+}
+
+QStringList portage::unresolvedPkgs()
+{
+ StringList *clist;
+ QStringList strlist;
+
+ clist = portageGetUnresolvedPkgs();
+ strlist = QListConverter::StringListToQStringList(clist);
+ stringListFree(clist);
+
+ return strlist;
+}
+
+QStringList portage::versions(const QString &package, bool include_masked)
+{
+ StringList *clist = portageGetVersions(package.toUtf8().data(), include_masked);
+ QStringList strlist = QListConverter::StringListToQStringList(clist);
+ stringListFree(clist);
+
+ return strlist;
+}
+
+bool portage::isOverlay(const QString &package)
+{
+ return portageIsOverlay(package.toUtf8().data());
+}
+
+
+} // End of namespace \ No newline at end of file
diff --git a/src/Qt4/qportage.h b/src/Qt4/qportage.h
new file mode 100644
index 0000000..d67558b
--- /dev/null
+++ b/src/Qt4/qportage.h
@@ -0,0 +1,67 @@
+/*
+ <one line to give the library's name and an idea of what it does.>
+ Copyright (C) 2011 Θεόφιλος Ιντζόγλου <int.teo@gmail.com>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library 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.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+
+#ifndef QPORTAGE_H
+#define QPORTAGE_H
+
+#include <QObject>
+#include <QStringList>
+
+class PackageProperties;
+
+namespace CppPortage {
+
+class portage : public QObject
+{
+ Q_OBJECT
+
+ explicit portage(QObject* parent = 0);
+ virtual ~portage();
+
+ QStringList versions(const QString&, bool);
+ int hardMasked(const QString&, QStringList&, QStringList&);
+ QStringList installedFiles(const QString&);
+
+ QString bestVersion(QStringList);
+ QString bestEbuild(const QString&);
+ QString depEbuild(const QString&);
+
+ QStringList maskingStatus(const QString&);
+ QString maskingReason(const QString&);
+
+ long int packageSizeInt(const QString&);
+ QString packageSizeString(const QString&);
+ PackageProperties* properties(const QString&);
+ bool isOverlay(const QString&);
+ QString overlay(const QString&);
+ QString overlayNameFromPath(const QString&);
+ QString overlayNameFromPkg(const QString&);
+ QString path(const QString&, int);
+
+ QStringList resolvedPkgs();
+ QStringList unresolvedPkgs();
+ QStringList allNodes();
+ QStringList installedList();
+
+}; // End of class
+
+} // End of namespace
+
+#endif // QPORTAGE_H
diff --git a/src/Qt4/qportagesettings.cpp b/src/Qt4/qportagesettings.cpp
new file mode 100644
index 0000000..21dc7b2
--- /dev/null
+++ b/src/Qt4/qportagesettings.cpp
@@ -0,0 +1,98 @@
+#include "qportagesettings.h"
+
+#include <QStringList>
+#include <QString>
+
+namespace CppPortage{
+
+QPortageSettings::QPortageSettings(QObject *parent)
+ :QObject(parent)
+{
+}
+
+QPortageSettings::~QPortageSettings()
+{
+ PortageSettings *ps;
+ portageSettingsFree(ps);
+}
+
+const int QPortageSettings::resetUseFlags()
+{
+ PortageSettings *ps;
+ return portageSettingsResetUseFlags(ps);
+}
+
+const int QPortageSettings::reset()
+{
+ PortageSettings *ps;
+ return portageSettingsResetUseFlags(ps);
+}
+
+const int QPortageSettings::reloadConfig()
+{
+ PortageSettings *ps;
+ return portageSettingsReloadConfig(ps);
+}
+
+const int QPortageSettings::reloadWorld()
+{
+ PortageSettings *ps;
+ return portageSettingsReloadWorld(ps);
+}
+
+const QStringList QPortageSettings::world()
+{
+ PortageSettings *ps;
+ return QListConverter::StringListToQStringList(portageSettingsGetWorld(ps));
+}
+
+const QStringList QPortageSettings::archList()
+{
+ PortageSettings *ps;
+ return QListConverter::StringListToQStringList(portageSettingsGetArchList(ps));
+
+}
+
+const QStringList QPortageSettings::virtuals()
+{
+ PortageSettings *ps;
+ return QListConverter::StringListToQStringList(portageSettingsGetVirtuals(ps));
+}
+
+const QString QPortageSettings::acceptKeywords()
+{
+ PortageSettings *ps;
+ return portageSettingsAcceptKeywords(ps);
+}
+
+const QStringList QPortageSettings::systemUseFlags()
+{
+ PortageSettings *ps;
+ return QListConverter::StringListToQStringList(portageSettingsSystemUseFlags(ps));
+}
+
+const QString QPortageSettings::arch()
+{
+ PortageSettings *ps;
+ return portageSettingsArch(ps);
+}
+
+const QString QPortageSettings::portdir()
+{
+ PortageSettings *ps;
+ return portageSettingsPortdir(ps);
+}
+
+const QString QPortageSettings::portdirOverlay()
+{
+ PortageSettings *ps;
+ return portageSettingsPortdirOverlay(ps);
+}
+
+const QString QPortageSettings::userConfigDir()
+{
+ PortageSettings *ps;
+ return portageSettingsUserConfigDir(ps);
+}
+
+}//end namespace
diff --git a/src/Qt4/qportagesettings.h b/src/Qt4/qportagesettings.h
new file mode 100644
index 0000000..f10c565
--- /dev/null
+++ b/src/Qt4/qportagesettings.h
@@ -0,0 +1,41 @@
+#ifndef QPORTAGESETTINGS_H
+#define QPORTAGESETTINGS_H
+
+
+#include <QObject>
+#include "qlistconverter.h"
+
+extern "C" {
+#include "../portagesettings.h"
+}
+
+class QString;
+class QStringList;
+
+struct PortageSettings;
+
+namespace CppPortage {
+
+class QPortageSettings : public QObject
+{
+ Q_OBJECT
+public:
+ QPortageSettings(QObject *parent = 0);
+ virtual ~QPortageSettings();
+
+ const int resetUseFlags();
+ const int reset();
+ const int reloadConfig();
+ const int reloadWorld();
+ const QStringList world();
+ const QStringList archList();
+ const QStringList virtuals();
+ const QString acceptKeywords();
+ const QStringList systemUseFlags();
+ const QString arch();
+ const QString portdir();
+ const QString portdirOverlay();
+ const QString userConfigDir();
+};
+}
+#endif \ No newline at end of file
diff --git a/src/Qt4/tests/CMakeLists.txt b/src/Qt4/tests/CMakeLists.txt
new file mode 100644
index 0000000..a2b1e28
--- /dev/null
+++ b/src/Qt4/tests/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_executable(QtWrapperTest test.cpp)
+target_link_libraries(QtWrapperTest cpp-portage)
+add_executable(QPackagepropertiesTest qpackageproperties_test.cpp)
+target_link_libraries(QPackagepropertiesTest cpp-portage)
+add_executable(QPortagesettingsTest qportagesettings_test.cpp)
+target_link_libraries(QPortagesettingsTest cpp-portage)
diff --git a/src/Qt4/tests/qlistconverter_test.cpp b/src/Qt4/tests/qlistconverter_test.cpp
new file mode 100644
index 0000000..622b84b
--- /dev/null
+++ b/src/Qt4/tests/qlistconverter_test.cpp
@@ -0,0 +1,16 @@
+#include <QApplication>
+#include <QDebug>
+
+#include "../qportagesettings.h"
+
+void test() {
+ qDebug() <<
+}
+
+int main(int argc, char *argv[])
+{
+ QApplication app;
+
+
+ return app.exec();
+}
diff --git a/src/Qt4/tests/qpackageproperties_test.cpp b/src/Qt4/tests/qpackageproperties_test.cpp
new file mode 100644
index 0000000..b7e99ac
--- /dev/null
+++ b/src/Qt4/tests/qpackageproperties_test.cpp
@@ -0,0 +1,27 @@
+#include <QCoreApplication>
+#include <QDebug>
+#include <QStringList>
+
+#include "../qpackageproperties.h"
+#include "../qlistconverter.h"
+
+using namespace CppPortage;
+
+void test();
+
+void test() {
+
+ QPackageProperties packPro(QString("slot"),QStringList("keyw"),QStringList("home"),QStringList("flags"));
+
+ qDebug() << "QString Slot()" << packPro.Slot();
+ qDebug() << "QStringList Homepages()" << packPro.Homepages();
+ qDebug() << "QStringList Flags()" << packPro.Flags();
+ qDebug() << "QStringList Keywords" << packPro.Keywords();
+}
+
+int main(int argc, char *argv[])
+{
+ test();
+ QCoreApplication app(argc, argv);
+ return app.exec();
+} \ No newline at end of file
diff --git a/src/Qt4/tests/qportagesettings_test.cpp b/src/Qt4/tests/qportagesettings_test.cpp
new file mode 100644
index 0000000..da02903
--- /dev/null
+++ b/src/Qt4/tests/qportagesettings_test.cpp
@@ -0,0 +1,34 @@
+#include <QCoreApplication>
+#include <QDebug>
+#include <QStringList>
+
+#include "../qportagesettings.h"
+#include "../qlistconverter.h"
+
+using namespace CppPortage;
+
+void test() {
+ QPortageSettings portSett;
+
+ qDebug() << "int resetUseFlags()" << portSett.resetUseFlags();
+ qDebug() << "int reset()" << portSett.reset();
+ qDebug() << "int reloadConfig()" << portSett.reloadConfig();
+ qDebug() << "int reloadWorld()" << portSett.reloadWorld();
+ qDebug() << "QStringList world()" << portSett.world();
+ qDebug() << "QStringList archList()" << portSett.archList();
+ qDebug() << "QStringList virtuals()" << portSett.virtuals();
+ qDebug() << "QString acceptKeywords()" << portSett.acceptKeywords();
+ qDebug() << "QStringList systemUseFlags()" << portSett.systemUseFlags();
+ qDebug() << "QString arch()" << portSett.arch();
+ qDebug() << "QString portdir()" << portSett.portdir();
+ qDebug() << "QString portdirOverlay()" << portSett.portdirOverlay();
+ qDebug() << "QString userConfigDir()" << portSett.userConfigDir();
+}
+
+int main(int argc, char *argv[])
+{
+ test();
+ QCoreApplication app(argc, argv);
+
+ return app.exec();
+}
diff --git a/src/Qt4/tests/test.cpp b/src/Qt4/tests/test.cpp
new file mode 100644
index 0000000..a418551
--- /dev/null
+++ b/src/Qt4/tests/test.cpp
@@ -0,0 +1,10 @@
+#include <QCoreApplication>
+#include <QDebug>
+
+int main(int argc, char *argv[])
+{
+ QCoreApplication app(argc,argv);
+
+
+ return app.exec();
+}