aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/addon
diff options
context:
space:
mode:
authorGravatar Fabio Bas2010-10-18 10:26:31 +0000
committerGravatar Fabio Bas2010-10-18 10:26:31 +0000
commit580281126e8770dc35104bd8c3130b7cc0698988 (patch)
treea11824ace4d761f3eded4249c0385822e29589a7 /src/modules/addon
parentadded shortcut ctrl+0 for "restore default font and size in the ircview" , tr... (diff)
downloadKVIrc-580281126e8770dc35104bd8c3130b7cc0698988.tar.gz
KVIrc-580281126e8770dc35104bd8c3130b7cc0698988.tar.bz2
KVIrc-580281126e8770dc35104bd8c3130b7cc0698988.zip
fix for #976
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5090 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/addon')
-rw-r--r--src/modules/addon/libkviaddon.cpp11
-rw-r--r--src/modules/addon/managementdialog.cpp32
-rw-r--r--src/modules/addon/managementdialog.h5
3 files changed, 36 insertions, 12 deletions
diff --git a/src/modules/addon/libkviaddon.cpp b/src/modules/addon/libkviaddon.cpp
index 6bfe7bedf..e3a50677d 100644
--- a/src/modules/addon/libkviaddon.cpp
+++ b/src/modules/addon/libkviaddon.cpp
@@ -765,14 +765,17 @@ static bool addon_kvs_cmd_installfiles(KviKvsModuleCommandCall * c)
@short:
Shows the addon addon management editor
@syntax:
- addon.dialog
+ addon.dialog [-t]
@description:
- Shows the addon addon management editor
+ Shows the addon addon management editor.[br]
+ If the [-t] switch is used, the dialog is opened as toplevel window,
+ otherwise it is opened as part of the current frame window.[br]
*/
-static bool addon_kvs_cmd_dialog(KviKvsModuleCommandCall *)
+static bool addon_kvs_cmd_dialog(KviKvsModuleCommandCall *c)
{
- KviScriptManagementDialog::display();
+
+ KviScriptManagementDialog::display(c->hasSwitch('t',"toplevel"));
return true;
}
diff --git a/src/modules/addon/managementdialog.cpp b/src/modules/addon/managementdialog.cpp
index 9b6b4db5f..87726bcac 100644
--- a/src/modules/addon/managementdialog.cpp
+++ b/src/modules/addon/managementdialog.cpp
@@ -87,7 +87,7 @@ KviScriptAddonListViewItem::~KviScriptAddonListViewItem()
}
KviScriptManagementDialog::KviScriptManagementDialog(QWidget * p)
-: QDialog(p)
+: QWidget(p)
{
setWindowTitle(__tr2qs_ctx("Manage Script-Based Addons","addon"));
setObjectName("Addon manager");
@@ -324,7 +324,7 @@ void KviScriptManagementDialog::showEvent(QShowEvent * e)
QRect rect = g_pApp->desktop()->screenGeometry(g_pApp->desktop()->primaryScreen());
move((rect.width() - width())/2,(rect.height() - height())/2);
- QDialog::showEvent(e);
+ QWidget::showEvent(e);
}
void KviScriptManagementDialog::closeClicked()
@@ -339,11 +339,33 @@ void KviScriptManagementDialog::cleanup()
m_pInstance = 0;
}
-void KviScriptManagementDialog::display()
+void KviScriptManagementDialog::display(bool bTopLevel)
{
- if(m_pInstance)return;
- m_pInstance = new KviScriptManagementDialog(g_pFrame);
+ if(m_pInstance)
+ {
+ if(bTopLevel)
+ {
+ if(m_pInstance->parent())
+ {
+ m_pInstance->setParent(0);
+ }
+ } else {
+ if(m_pInstance->parent() != g_pFrame->splitter())
+ {
+ m_pInstance->setParent(g_pFrame->splitter());
+ }
+ }
+ } else {
+ if(bTopLevel)
+ {
+ m_pInstance = new KviScriptManagementDialog(0);
+ } else {
+ m_pInstance = new KviScriptManagementDialog(g_pFrame->splitter());
+ }
+ }
m_pInstance->show();
+ m_pInstance->raise();
+ m_pInstance->setFocus();
}
void KviScriptManagementDialog::closeEvent(QCloseEvent * e)
diff --git a/src/modules/addon/managementdialog.h b/src/modules/addon/managementdialog.h
index cfcfe8f31..0ffe31987 100644
--- a/src/modules/addon/managementdialog.h
+++ b/src/modules/addon/managementdialog.h
@@ -29,7 +29,6 @@
#include <QWidget>
#include <QLabel>
-#include <QDialog>
#include <QColor>
#include <QTextDocument>
#include <QListWidget>
@@ -55,7 +54,7 @@ public:
};
-class KviScriptManagementDialog : public QDialog
+class KviScriptManagementDialog : public QWidget
{
Q_OBJECT
protected:
@@ -71,7 +70,7 @@ protected:
QToolButton * m_pUninstallButton;
public:
static KviScriptManagementDialog * instance(){ return m_pInstance; };
- static void display();
+ static void display(bool bTopLevel);
static void cleanup();
protected:
void fillListView();