aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/addon/managementdialog.cpp
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2011-03-05 03:27:15 +0000
committerGravatar Szymon Tomasz Stefanek2011-03-05 03:27:15 +0000
commit8988bde2c41f314acbe7c8409ce8e9c1465fdee8 (patch)
treee3f1c213e134b7e00b6c16927445fc3bb0bc7c49 /src/modules/addon/managementdialog.cpp
parentFinish up some file renaming (diff)
downloadKVIrc-8988bde2c41f314acbe7c8409ce8e9c1465fdee8.tar.gz
KVIrc-8988bde2c41f314acbe7c8409ce8e9c1465fdee8.tar.bz2
KVIrc-8988bde2c41f314acbe7c8409ce8e9c1465fdee8.zip
More file renaming
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5537 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/addon/managementdialog.cpp')
-rw-r--r--src/modules/addon/managementdialog.cpp373
1 files changed, 0 insertions, 373 deletions
diff --git a/src/modules/addon/managementdialog.cpp b/src/modules/addon/managementdialog.cpp
deleted file mode 100644
index d2a70110b..000000000
--- a/src/modules/addon/managementdialog.cpp
+++ /dev/null
@@ -1,373 +0,0 @@
-//=============================================================================
-//
-// File : managementdialog.cpp
-// Creation date : Fri 08 Apr 2005 14:54:56 by Szymon Stefanek
-//
-// This file is part of the KVIrc IRC Client distribution
-// Copyright (C) 2005-2010 Szymon 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 "managementdialog.h"
-#include "PackAddonDialog.h"
-#include "AddonFunctions.h"
-
-#include "KviApplication.h"
-#include "KviLocale.h"
-#include "KviMainWindow.h"
-#include "KviIconManager.h"
-#include "KviKvsScriptAddonManager.h"
-#include "KviWindow.h"
-#include "KviFileDialog.h"
-#include "KviFileUtils.h"
-#include "kvi_fileextensions.h"
-#include "KviKvsScript.h"
-#include "kvi_sourcesdate.h"
-#include "KviTalListWidget.h"
-#include "KviTalToolTip.h"
-
-#include <QPainter>
-#include <QPixmap>
-#include <QMessageBox>
-#include <QEvent>
-#include <QCloseEvent>
-#include <QPushButton>
-#include <QLayout>
-#include <QApplication>
-#include <QDesktopWidget>
-#include <QLineEdit>
-#include <QLabel>
-#include <QFrame>
-#include <QDir>
-#include <QAbstractTextDocumentLayout>
-
-
-AddonManagementDialog * AddonManagementDialog::m_pInstance = 0;
-extern QRect g_rectManagementDialogGeometry;
-
-AddonListViewItem::AddonListViewItem(KviTalListWidget *v,KviKvsScriptAddon * a)
-: KviTalListWidgetItem(v)
-{
- m_pAddon = new KviKvsScriptAddon(*a);
- m_pListWidget = v;
- QString t = "<nobr><b>";
- t += a->visibleName();
- t += "</b> [";
- t += a->version();
- t += "]";
- t += " <font color=\"#a0a0a0\">[";
- t += a->name();
- t += "]</font></nobr>";
- t += "<br><nobr><font size=\"-1\">";
- t += a->description();
- t += "</font></nobr>";
-
- setText(t);
- QPixmap * p = a->icon();
- if (p) setIcon(*p);
-}
-
-AddonListViewItem::~AddonListViewItem()
-{
- delete m_pAddon;
-}
-
-AddonManagementDialog::AddonManagementDialog(QWidget * p)
-: QWidget(p)
-{
- setWindowTitle(__tr2qs_ctx("Manage Script-Based Addons","addon"));
- setObjectName("Addon manager");
- setWindowIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Addons)));
-
- m_pInstance = this;
- QGridLayout * g = new QGridLayout(this);
-
- KviTalHBox *hb = new KviTalHBox(this);
- hb->setMargin(1);
- hb->setSpacing(1);
- g->addWidget(hb,0,0);
-
- QToolButton * tb;
- QFrame * sep;
-
- m_pConfigureButton = new QToolButton(hb);
- m_pConfigureButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_ADDONS)));
- m_pConfigureButton->setIconSize(QSize(32,32));
- KviTalToolTip::add(m_pConfigureButton,__tr2qs_ctx("Configure Addon...","addon"));
- connect(m_pConfigureButton,SIGNAL(clicked()),this,SLOT(configureScript()));
-
- m_pHelpButton = new QToolButton(hb);
- m_pHelpButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_HELP)));
- m_pHelpButton->setIconSize(QSize(32,32));
- KviTalToolTip::add(m_pHelpButton,__tr2qs_ctx("Show Help","addon"));
- connect(m_pHelpButton,SIGNAL(clicked()),this,SLOT(showScriptHelp()));
-
- m_pUninstallButton = new QToolButton(hb);
- m_pUninstallButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_REMOVE)));
- m_pUninstallButton->setIconSize(QSize(32,32));
- KviTalToolTip::add(m_pUninstallButton,__tr2qs_ctx("Delete Selected Addons","addon"));
- connect(m_pUninstallButton,SIGNAL(clicked()),this,SLOT(uninstallScript()));
-
- sep = new QFrame(hb);
- sep->setFrameStyle(QFrame::VLine | QFrame::Sunken);
- sep->setMinimumWidth(12);
-
- m_pPackButton = new QToolButton(hb);
- m_pPackButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_PACK)));
- m_pPackButton->setIconSize(QSize(32,32));
- KviTalToolTip::add(m_pPackButton,__tr2qs_ctx("Create an Addon as a Distributable Package","addon"));
- connect(m_pPackButton,SIGNAL(clicked()),this,SLOT(packScript()));
-
- sep = new QFrame(hb);
- sep->setFrameStyle(QFrame::VLine | QFrame::Sunken);
- sep->setMinimumWidth(12);
-
- tb = new QToolButton(hb);
- tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_OPEN)));
- tb->setIconSize(QSize(32,32));
- KviTalToolTip::add(tb,__tr2qs_ctx("Install Addon Package From Disk","addon"));
- connect(tb,SIGNAL(clicked()),this,SLOT(installScript()));
-
- tb = new QToolButton(hb);
- tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_WWW)));
- tb->setIconSize(QSize(32,32));
- KviTalToolTip::add(tb,__tr2qs_ctx("Get More Addons...","addon"));
- connect(tb,SIGNAL(clicked()),this,SLOT(getMoreScripts()));
-
- QWidget *w= new QWidget(hb);
- w->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum);
-
- m_pListWidget = new KviTalListWidget(this);
- KviTalIconAndRichTextItemDelegate *itemDelegate=new KviTalIconAndRichTextItemDelegate(m_pListWidget);
-
- m_pListWidget->setItemDelegate(itemDelegate);
- m_pListWidget->setSelectionMode(QAbstractItemView::SingleSelection);
- m_pListWidget->setSortingEnabled(true);
- m_pListWidget->setMinimumHeight(400);
- m_pListWidget->setMinimumWidth(380);
- g->addWidget(m_pListWidget,1,0);
-
- fillListView();
-
- currentChanged(0,0);
- connect(m_pListWidget,SIGNAL(currentItemChanged(QListWidgetItem *,QListWidgetItem *)),this,SLOT(currentChanged(QListWidgetItem *,QListWidgetItem *)));
- m_pListWidget->setCurrentItem(m_pListWidget->item(0));
-
- QPushButton * pCloseBtn = new QPushButton(__tr2qs_ctx("Close","addon"),this);
- pCloseBtn->setMaximumSize(pCloseBtn->sizeHint().width(),pCloseBtn->sizeHint().height());
- connect(pCloseBtn,SIGNAL(clicked()),this,SLOT(closeClicked()));
- g->addWidget(pCloseBtn,2,0);
-
- g->setMargin(5);
- g->setSpacing(5);
- g->setAlignment(pCloseBtn,Qt::AlignRight);
-
- if(g_rectManagementDialogGeometry.y() < 5)
- {
- g_rectManagementDialogGeometry.setY(5);
- }
- resize(g_rectManagementDialogGeometry.width(),
- g_rectManagementDialogGeometry.height());
-
- QRect rect = g_pApp->desktop()->screenGeometry(g_pMainWindow);
- move(rect.x() + ((rect.width() - g_rectManagementDialogGeometry.width())/2),rect.y() + ((rect.height() - g_rectManagementDialogGeometry.height())/2));
-}
-
-AddonManagementDialog::~AddonManagementDialog()
-{
- g_rectManagementDialogGeometry = QRect(pos().x(),pos().y(),size().width(),size().height());
- m_pInstance = 0;
-}
-
-void AddonManagementDialog::fillListView()
-{
- m_pListWidget->clear();
- KviPointerHashTable<QString,KviKvsScriptAddon> * d = KviKvsScriptAddonManager::instance()->addonDict();
- if(!d)return;
- KviPointerHashTableIterator<QString,KviKvsScriptAddon> it(*d);
-
- while(KviKvsScriptAddon * a = it.current())
- {
- new AddonListViewItem(m_pListWidget,a);
- ++it;
- }
-}
-
-void AddonManagementDialog::currentChanged(QListWidgetItem *item,QListWidgetItem *)
-{
- AddonListViewItem * it = (AddonListViewItem *)item;
- if(!it)
- {
- m_pConfigureButton->setEnabled(false);
- m_pUninstallButton->setEnabled(false);
- m_pHelpButton->setEnabled(false);
- } else {
- m_pConfigureButton->setEnabled(!(it->addon()->configureCallbackCode().isEmpty()));
- m_pHelpButton->setEnabled(!(it->addon()->helpCallbackCode().isEmpty()));
- m_pUninstallButton->setEnabled(true);
- }
-}
-
-void AddonManagementDialog::showScriptHelp()
-{
- AddonListViewItem * it = (AddonListViewItem *)m_pListWidget->currentItem();
- if(!it)return;
- if(it->addon()->helpCallbackCode().isEmpty())return;
- it->addon()->executeHelpCallback(g_pActiveWindow);
-}
-
-void AddonManagementDialog::configureScript()
-{
- AddonListViewItem * it = (AddonListViewItem *)m_pListWidget->currentItem();
- if(!it)return;
- if(it->addon()->configureCallbackCode().isEmpty())return;
- it->addon()->executeConfigureCallback(g_pActiveWindow);
-}
-
-void AddonManagementDialog::packScript()
-{
- PackAddonDialog * pDialog = new PackAddonDialog(this);
- pDialog->exec();
- delete pDialog;
-}
-
-void AddonManagementDialog::uninstallScript()
-{
- AddonListViewItem * it = (AddonListViewItem *)m_pListWidget->currentItem();
- if(!it)return;
-
- QString txt = "<p>";
- txt += __tr2qs_ctx("Do you really want to uninstall the addon \"%1\" ?","addon").arg(it->addon()->visibleName());
- txt += "</p>";
-
- if(QMessageBox::question(
- this,
- __tr2qs_ctx("Confirm addon uninstallation","addon"),
- txt, __tr2qs_ctx("Yes","addon"), __tr2qs_ctx("No","addon"),0,1
- ) != 0) return;
-
- KviKvsScriptAddonManager::instance()->unregisterAddon(it->addon()->name(),g_pActiveWindow);
-
- fillListView();
- currentChanged(0,0);
-}
-
-void AddonManagementDialog::getMoreScripts()
-{
- // If change this introducing not-fixed text, remember to escape this using KviQString::escapeKvs()!
- KviKvsScript::run("openurl http://www.kvirc.net/?id=addons&version=" KVI_VERSION "." KVI_SOURCES_DATE,g_pActiveWindow);
-}
-
-void AddonManagementDialog::installScript()
-{
- QString szFileName, szError;
-
- if(!KviFileDialog::askForOpenFileName(
- szFileName,
- __tr2qs_ctx("Please select the addon installation file","addon"),
- QString(),KVI_FILTER_ADDON,false,true
- )) return;
-
- szFileName.replace("\\","\\\\");
-
- // Sanity check
- if(szFileName.endsWith(".kva"))
- {
- if(!AddonFunctions::installAddonPackage(szFileName,szError,this))
- {
- QMessageBox::critical(
- this,
- __tr2qs_ctx("Install Addon - KVIrc","addon"),
- szError,
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton
- );
- return;
- }
- } else {
- // Just for sanity check. We should NEVER enter here
- qDebug("Entered sanity check");
- AddonFunctions::notAValidAddonPackage(szError);
- QMessageBox::critical(
- this,
- __tr2qs_ctx("Install Addon - KVIrc","addon"),
- szError,
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton
- );
- }
-
- fillListView();
- currentChanged(0,0);
-
- //m_pListWidget->publicUpdateContents();
- //m_pListWidget->triggerUpdate();
-}
-
-void AddonManagementDialog::closeClicked()
-{
- delete this;
-}
-
-void AddonManagementDialog::cleanup()
-{
- if(!m_pInstance)return;
- delete m_pInstance;
- m_pInstance = 0;
-}
-
-void AddonManagementDialog::display(bool bTopLevel)
-{
- if(m_pInstance)
- {
- if(bTopLevel)
- {
- if(m_pInstance->parent())
- {
- m_pInstance->setParent(0);
- }
- } else {
- if(m_pInstance->parent() != g_pMainWindow->splitter())
- {
- m_pInstance->setParent(g_pMainWindow->splitter());
- }
- }
- } else {
- if(bTopLevel)
- {
- m_pInstance = new AddonManagementDialog(0);
- } else {
- m_pInstance = new AddonManagementDialog(g_pMainWindow->splitter());
- }
- }
- m_pInstance->show();
- m_pInstance->raise();
- m_pInstance->setFocus();
-}
-
-void AddonManagementDialog::closeEvent(QCloseEvent * e)
-{
- e->ignore();
- delete this;
-}
-
-void AddonManagementDialog::reject()
-{
- cleanup();
-}