aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2011-03-25 00:19:36 +0000
committerGravatar Szymon Tomasz Stefanek2011-03-25 00:19:36 +0000
commitcf60301544e6523fadf0b1f9c23239a83c3309ea (patch)
treefe4a7e361aa2334e4c13d6ba9b7a965620b44c7e /src/modules
parentAdd a web interface for the addons (diff)
downloadKVIrc-cf60301544e6523fadf0b1f9c23239a83c3309ea.tar.gz
KVIrc-cf60301544e6523fadf0b1f9c23239a83c3309ea.tar.bz2
KVIrc-cf60301544e6523fadf0b1f9c23239a83c3309ea.zip
Add a web interface for the addons
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5693 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/addon/WebAddonInterfaceDialog.cpp77
-rw-r--r--src/modules/addon/WebAddonInterfaceDialog.h66
2 files changed, 143 insertions, 0 deletions
diff --git a/src/modules/addon/WebAddonInterfaceDialog.cpp b/src/modules/addon/WebAddonInterfaceDialog.cpp
new file mode 100644
index 000000000..f1889206b
--- /dev/null
+++ b/src/modules/addon/WebAddonInterfaceDialog.cpp
@@ -0,0 +1,77 @@
+//=============================================================================
+//
+// File : WebAddonInterfaceDialog.cpp
+// Creation date : Fri 25 Mar 2011 01:01:12 by Szymon Tomasz Stefanek
+//
+// This file is part of the KVIrc irc client distribution
+// Copyright (C) 2011 Szymon Tomasz Stefanek <pragma at kvirc dot net>
+//
+// 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 opinion) 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 program. If not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+//=============================================================================
+
+#include "kvi_settings.h"
+
+
+#ifdef COMPILE_WEBKIT_SUPPORT
+
+#include "WebAddonInterfaceDialog.h"
+#include "AddonFunctions.h"
+
+#include "KviApplication.h"
+#include "KviFileUtils.h"
+#include "KviIconManager.h"
+#include "KviLocale.h"
+#include "KviKvsScriptAddonManager.h"
+#include "KviMiscUtils.h"
+
+WebAddonInterfaceDialog::WebAddonInterfaceDialog(QWidget * par)
+: KviWebPackageManagementDialog(par)
+{
+ setWindowTitle(__tr2qs_ctx("KVIrc : Download Addons","theme"));
+
+ setPackagePageUrl(
+ QString::fromAscii("http://www.kvirc.de/app/addons.php?version=" KVI_VERSION "&lang=%1")
+ .arg(QString::fromUtf8(KviLocale::localeName().ptr()))
+ );
+}
+WebAddonInterfaceDialog::~WebAddonInterfaceDialog()
+{
+}
+
+bool WebAddonInterfaceDialog::installPackage(const QString &szPath,QString &szError)
+{
+ return AddonFunctions::installAddonPackage(szPath,szError,this);
+}
+
+bool WebAddonInterfaceDialog::packageIsInstalled(const QString &szId,const QString &szVersion)
+{
+ KviKvsScriptAddon * pAddon = KviKvsScriptAddonManager::instance()->findAddon(szId);
+ if(!pAddon)
+ return false;
+
+ if(szVersion.isEmpty())
+ return true; // hum.... shouldn't happen ?
+
+ // FIXME: If the version of the installed addon is lower then allow upgrading!
+ return KviMiscUtils::compareVersions(pAddon->version(),szVersion) < 0;
+}
+
+#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
+ #include "WebAddonInterfaceDialog.moc"
+#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES
+
+#endif //COMPILE_WEBKIT_SUPPORT
+
diff --git a/src/modules/addon/WebAddonInterfaceDialog.h b/src/modules/addon/WebAddonInterfaceDialog.h
new file mode 100644
index 000000000..60d0f2b73
--- /dev/null
+++ b/src/modules/addon/WebAddonInterfaceDialog.h
@@ -0,0 +1,66 @@
+#ifndef _WebAddonInterfaceDialog_h_
+#define _WebAddonInterfaceDialog_h_
+//=============================================================================
+//
+// File : WebAddonInterfaceDialog.h
+// Creation date : Fri 25 Mar 2011 01:01:12 by Szymon Tomasz Stefanek
+//
+// This file is part of the KVIrc irc client distribution
+// Copyright (C) 2011 Szymon Tomasz Stefanek <pragma at kvirc dot net>
+//
+// 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 opinion) 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 program. If not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+//=============================================================================
+
+#include "kvi_settings.h"
+
+#ifdef COMPILE_WEBKIT_SUPPORT
+
+
+#include "KviWebPackageManagementDialog.h"
+
+///
+/// \class WebAddonInterfaceDialog
+/// \brief The WebAddonInterfaceDialog class
+///
+/// This class...
+///
+class WebAddonInterfaceDialog : public KviWebPackageManagementDialog
+{
+ Q_OBJECT
+
+public:
+
+ ///
+ /// Creates an instance of WebAddonInterfaceDialog
+ ///
+ WebAddonInterfaceDialog(QWidget * pParent = NULL);
+
+ ///
+ /// Destroys the instance of WebAddonInterfaceDialog
+ /// and frees all the relevant resources
+ ///
+ virtual ~WebAddonInterfaceDialog();
+
+protected:
+ virtual bool packageIsInstalled(const QString &szId,const QString &szVersion);
+ virtual bool installPackage(const QString &szPath,QString &szError);
+
+}; // class WebAddonInterfaceDialog
+
+
+#endif //COMPILE_WEBKIT_SUPPORT
+
+#endif //!_WebAddonInterfaceDialog_h_