aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/modules/addon/managementdialog.cpp137
-rw-r--r--src/modules/addon/managementdialog.h14
-rw-r--r--src/modules/theme/managementdialog.cpp1
3 files changed, 112 insertions, 40 deletions
diff --git a/src/modules/addon/managementdialog.cpp b/src/modules/addon/managementdialog.cpp
index 7591a2224..df1e1041d 100644
--- a/src/modules/addon/managementdialog.cpp
+++ b/src/modules/addon/managementdialog.cpp
@@ -37,14 +37,13 @@
#include "kvi_draganddrop.h"
#include "kvi_tal_listwidget.h"
-
-
#include <QPainter>
#include <QPixmap>
#include <QMessageBox>
#include <QEvent>
#include <QCloseEvent>
#include <QPushButton>
+#include <QToolButton>
#include <QLayout>
#include <QApplication>
#include <QToolTip>
@@ -83,17 +82,14 @@ KviScriptAddonListViewItem::KviScriptAddonListViewItem(KviTalListWidget *v,KviKv
KviScriptAddonListViewItem::~KviScriptAddonListViewItem()
{
-
delete m_pAddon;
}
-
-
-
KviScriptManagementDialog::KviScriptManagementDialog(QWidget * p)
: QDialog(p/*,WType_TopLevel | WStyle_Customize | WStyle_Title | WStyle_StaysOnTop | WStyle_DialogBorder*/)
{
+ /* old manager
setWindowTitle(__tr2qs("Manage Script-Based Addons"));
setObjectName("Addon manager");
setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ADDONS)));
@@ -103,12 +99,12 @@ KviScriptManagementDialog::KviScriptManagementDialog(QWidget * p)
// QPixmap * pix = g_pIconManager->getImage("kvi_dialog_addons.png");
m_pListWidget = new KviTalListWidget(this);
- KviTalIconAndRichTextItemDelegate *itemDelegate=new KviTalIconAndRichTextItemDelegate(m_pListWidget);
+ 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->setMinimumHeight(400);
m_pListWidget->setMinimumWidth(400);
QString szPic;
@@ -121,42 +117,102 @@ KviScriptManagementDialog::KviScriptManagementDialog(QWidget * p)
m_pListWidget->setStyleSheet(style);
g->addMultiCellWidget(m_pListWidget,0,10,1,1);
- m_pConfigureButton = new QPushButton(__tr2qs("Configure"),this);
+
+
+ fillListView();
+
+ currentChanged(0,0);
+ connect(m_pListWidget,SIGNAL(currentItemChanged(QListWidgetItem *,QListWidgetItem *)),this,SLOT(currentChanged(QListWidgetItem *,QListWidgetItem *)));
+ m_pListWidget->setCurrentItem(m_pListWidget->item(0));
+ if(g_rectManagementDialogGeometry.y() < 5)
+ {
+ g_rectManagementDialogGeometry.setY(5);
+ }
+ resize(g_rectManagementDialogGeometry.width(),
+ g_rectManagementDialogGeometry.height());
+ move(g_rectManagementDialogGeometry.x(),
+ g_rectManagementDialogGeometry.y());
+ */
+
+ /* new manager */
+ setWindowTitle(__tr2qs("Manage Script-Based Addons"));
+ setObjectName("Addon manager");
+ setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ADDONS)));
+ setModal(true);
+ 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));
+ QToolTip::add(m_pConfigureButton,__tr2qs_ctx("Configure Addon...","addon"));
connect(m_pConfigureButton,SIGNAL(clicked()),this,SLOT(configureScript()));
- g->addWidget(m_pConfigureButton,0,2);
- m_pHelpButton = new QPushButton(__tr2qs("Show Help"),this);
+ m_pHelpButton = new QToolButton(hb);
+ m_pHelpButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_HELP)));
+ m_pHelpButton->setIconSize(QSize(32,32));
+ QToolTip::add(m_pHelpButton,__tr2qs_ctx("Show Help","addon"));
connect(m_pHelpButton,SIGNAL(clicked()),this,SLOT(showScriptHelp()));
- g->addWidget(m_pHelpButton,1,2);
- g->addRowSpacing(2,40);
+ 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));
+ QToolTip::add(m_pPackButton,__tr2qs_ctx("Export Selected Themes to a Distributable Package","theme"));
+ connect(m_pPackButton,SIGNAL(clicked()),this,SLOT(packScript()));
- m_pUninstallButton = new QPushButton(__tr2qs("Uninstall"),this);
+ m_pUninstallButton = new QToolButton(hb);
+ m_pUninstallButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_REMOVE)));
+ m_pUninstallButton->setIconSize(QSize(32,32));
+ QToolTip::add(m_pUninstallButton,__tr2qs_ctx("Delete Selected Themes","theme"));
connect(m_pUninstallButton,SIGNAL(clicked()),this,SLOT(uninstallScript()));
- g->addWidget(m_pUninstallButton,3,2);
- g->addRowSpacing(4,15);
+ sep = new QFrame(hb);
+ sep->setFrameStyle(QFrame::VLine | QFrame::Sunken);
+ sep->setMinimumWidth(12);
- QFrame *f = new QFrame(this);
- f->setFrameStyle(QFrame::HLine | QFrame::Sunken);
- g->addWidget(f,5,2);
-
- g->addRowSpacing(6,15);
+ tb = new QToolButton(hb);
+ tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_OPEN)));
+ tb->setIconSize(QSize(32,32));
+ QToolTip::add(tb,__tr2qs_ctx("Install Theme Package From Disk","theme"));
+ connect(tb,SIGNAL(clicked()),this,SLOT(installScript()));
+
+ tb = new QToolButton(hb);
+ tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_WWW)));
+ tb->setIconSize(QSize(32,32));
+ QToolTip::add(tb,__tr2qs_ctx("Get More Themes...","theme"));
+ connect(tb,SIGNAL(clicked()),this,SLOT(getMoreScripts()));
- m_pInstallButton = new QPushButton(__tr2qs("Install Addon..."),this);
- connect(m_pInstallButton,SIGNAL(clicked()),this,SLOT(installScript()));
- g->addWidget(m_pInstallButton,7,2);
+ QWidget *w= new QWidget(hb);
+ w->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum);
- m_pGetScriptsButton = new QPushButton(__tr2qs("More Addons..."),this);
- connect(m_pGetScriptsButton,SIGNAL(clicked()),this,SLOT(getMoreScripts()));
- g->addWidget(m_pGetScriptsButton,8,2);
+ // QPixmap * pix = g_pIconManager->getImage("kvi_dialog_addons.png");
+ m_pListWidget = new KviTalListWidget(this);
+ KviTalIconAndRichTextItemDelegate *itemDelegate=new KviTalIconAndRichTextItemDelegate(m_pListWidget);
- QPushButton * b = new QPushButton(__tr2qs("Close"),this);
- connect(b,SIGNAL(clicked()),this,SLOT(closeClicked()));
- g->addWidget(b,10,2);
+ m_pListWidget->setItemDelegate(itemDelegate);
+ m_pListWidget->setSelectionMode(QAbstractItemView::SingleSelection);
+ m_pListWidget->setSortingEnabled(true);
+ m_pListWidget->setMinimumHeight(400);
+ m_pListWidget->setMinimumWidth(400);
- g->setRowStretch(9,1);
- g->setColumnStretch(1,1);
+ QString szPic;
+ g_pApp->getGlobalKvircDirectory(szPic,KviApp::Pics);
+ szPic += "/kvi_dialog_addons.png";
+ QString style("QListWidget {background-image: url(" + szPic + ");}");
+ m_pListWidget->setStyleSheet(style);
+ g->addWidget(m_pListWidget,1,0);
fillListView();
@@ -201,6 +257,7 @@ void KviScriptManagementDialog::currentChanged(QListWidgetItem *item,QListWidget
m_pConfigureButton->setEnabled(false);
m_pUninstallButton->setEnabled(false);
m_pHelpButton->setEnabled(false);
+ m_pPackButton->setEnabled(false);
} else {
m_pConfigureButton->setEnabled(!(it->addon()->configureCallbackCode().isEmpty()));
m_pHelpButton->setEnabled(!(it->addon()->helpCallbackCode().isEmpty()));
@@ -224,6 +281,22 @@ void KviScriptManagementDialog::configureScript()
it->addon()->executeConfigureCallback(g_pActiveWindow);
}
+void KviScriptManagementDialog::packScript()
+{
+ /*
+ KviPointerList<KviThemeInfo> dl;
+ dl.setAutoDelete(false);
+ QList<QListWidgetItem*> itemsSelected = m_pListWidget->selectedItems ();
+ for(int i=0;i<itemsSelected.count();i++)
+ dl.append(((KviThemeListBoxItem *)itemsSelected.at(i))->themeInfo());
+ if(dl.isEmpty())return;
+
+ KviPackAddonDialog * pDialog = new KviPackAddonDialog(this,&dl);
+ pDialog->exec();
+ delete pDialog;
+ */
+}
+
void KviScriptManagementDialog::uninstallScript()
{
KviScriptAddonListViewItem * it = (KviScriptAddonListViewItem *)m_pListWidget->currentItem();
diff --git a/src/modules/addon/managementdialog.h b/src/modules/addon/managementdialog.h
index 4ee8fdfb8..0070e3fc5 100644
--- a/src/modules/addon/managementdialog.h
+++ b/src/modules/addon/managementdialog.h
@@ -36,7 +36,7 @@
#include <QListWidget>
#include <QItemDelegate>
-class QPushButton;
+class QToolButton;
class QPixmap;
class KviKvsScriptAddon;
@@ -69,11 +69,10 @@ public:
protected:
KviTalListWidget * m_pListWidget;
static KviScriptManagementDialog * m_pInstance;
- QPushButton * m_pUninstallButton;
- QPushButton * m_pConfigureButton;
- QPushButton * m_pHelpButton;
- QPushButton * m_pInstallButton;
- QPushButton * m_pGetScriptsButton;
+ QToolButton * m_pConfigureButton;
+ QToolButton * m_pHelpButton;
+ QToolButton * m_pPackButton;
+ QToolButton * m_pUninstallButton;
public:
static KviScriptManagementDialog * instance(){ return m_pInstance; };
static void display();
@@ -85,8 +84,9 @@ protected:
protected slots:
void currentChanged(QListWidgetItem *i,QListWidgetItem *);
void closeClicked();
- void showScriptHelp();
void configureScript();
+ void showScriptHelp();
+ void packScript();
void uninstallScript();
void getMoreScripts();
void installScript();
diff --git a/src/modules/theme/managementdialog.cpp b/src/modules/theme/managementdialog.cpp
index e561fb1f5..b2f85a4da 100644
--- a/src/modules/theme/managementdialog.cpp
+++ b/src/modules/theme/managementdialog.cpp
@@ -257,7 +257,6 @@ void KviThemeManagementDialog::packTheme()
KviPackThemeDialog * pDialog = new KviPackThemeDialog(this,&dl);
pDialog->exec();
delete pDialog;
-
}
void KviThemeManagementDialog::contextMenuRequested(const QPoint & pos)