aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorGravatar Noldor2008-05-05 17:34:30 +0000
committerGravatar Noldor2008-05-05 17:34:30 +0000
commit178c8afc542cf72512921f70c08938d157d1e5cd (patch)
treed3ab533df08d4ca19c991d8b9e1f6d5cdc15f732 /src/modules
parentporting kvi_process (wip) (diff)
downloadKVIrc-178c8afc542cf72512921f70c08938d157d1e5cd.tar.gz
KVIrc-178c8afc542cf72512921f70c08938d157d1e5cd.tar.bz2
KVIrc-178c8afc542cf72512921f70c08938d157d1e5cd.zip
added kvi_tal_listwidget and kvi_tal_itemdelegates + some fixes
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1678 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/about/ENTRIES2
-rw-r--r--src/modules/about/abouttext.inc2
-rw-r--r--src/modules/addon/managementdialog.cpp110
-rw-r--r--src/modules/addon/managementdialog.h21
-rw-r--r--src/modules/aliaseditor/aliaseditor.cpp7
-rw-r--r--src/modules/math/libkvimath.cpp2
-rw-r--r--src/modules/mediaplayer/libkvimediaplayer.cpp2
-rw-r--r--src/modules/my/libkvimy.cpp2
-rw-r--r--src/modules/objects/class_widget.cpp3
-rw-r--r--src/modules/objects/libkviobjects.cpp2
-rw-r--r--src/modules/str/libkvistr.cpp2
-rw-r--r--src/modules/system/libkvisystem.cpp2
-rw-r--r--src/modules/theme/managementdialog.cpp105
-rw-r--r--src/modules/theme/managementdialog.h11
14 files changed, 89 insertions, 184 deletions
diff --git a/src/modules/about/ENTRIES b/src/modules/about/ENTRIES
index 1ec2c5125..3e2e9d027 100644
--- a/src/modules/about/ENTRIES
+++ b/src/modules/about/ENTRIES
@@ -12,7 +12,7 @@ TEXT: KVIrc: the client that can't make coffee
NAME: Alessandro Carbone
NICK: Noldor
-MAIL: noldor at barmes dot org
+MAIL: elfonol at gmail dot com
ROLE: Betatesting, bugfixing, exotic scripting, documentation,
ROLE: code improvements, win32 packages... To be continued :-)
TEXT: <Grifisx>...damned brackets  ...there are always too many...
diff --git a/src/modules/about/abouttext.inc b/src/modules/about/abouttext.inc
index 3db19c48e..febd8c3d5 100644
--- a/src/modules/about/abouttext.inc
+++ b/src/modules/about/abouttext.inc
@@ -50,7 +50,7 @@ static const char * g_szAboutText = "" \
")</font></td></tr>" \
"<tr><td align=\"center\"><font color=\"#0000FF\" size=\"+1\">" \
"[" \
-"noldor at barmes dot org" \
+"elfonol at gmail dot com" \
"]" \
"</font></td></tr>" \
"<tr><td align=\"center\"><font color=\"#303030\">" \
diff --git a/src/modules/addon/managementdialog.cpp b/src/modules/addon/managementdialog.cpp
index 5559ae4ee..935c16096 100644
--- a/src/modules/addon/managementdialog.cpp
+++ b/src/modules/addon/managementdialog.cpp
@@ -35,6 +35,9 @@
#include "kvi_kvs_script.h"
#include "kvi_sourcesdate.h"
#include "kvi_draganddrop.h"
+#include "kvi_tal_listwidget.h"
+
+
#include <QPainter>
#include <QPixmap>
@@ -56,58 +59,11 @@
KviScriptManagementDialog * KviScriptManagementDialog::m_pInstance = 0;
extern QRect g_rectManagementDialogGeometry;
-
-#define LVI_ICON_SIZE 32
-#define LVI_BORDER 4
-#define LVI_SPACING 8
-#define LVI_MINIMUM_TEXT_WIDTH 300
-#define LVI_MINIMUM_CELL_WIDTH (LVI_MINIMUM_TEXT_WIDTH + LVI_BORDER + LVI_ICON_SIZE + LVI_SPACING + LVI_BORDER)
-
-
-void KviScriptAddonDelegate::paint( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
-{
- painter->save();
- if (option.state & QStyle::State_Selected)
- {
- QPalette pal=option.palette;
- QBrush brush=pal.highlight();
- QColor col=brush.color();
- col.setAlpha(127);
- brush.setColor(col);
- painter->fillRect(option.rect,brush);
- }
- QString text=index.data(Qt::DisplayRole).toString();
- QPixmap pixmap;
- QRect decorationRect;
- QVariant value = index.data(Qt::DecorationRole);
- QStyle::State state=option.state;
- QRect rect=option.rect;
- int afterIcon = LVI_BORDER + LVI_ICON_SIZE + LVI_SPACING;
- QIcon ico=QIcon(value.value<QIcon>());
- painter->drawPixmap(option.rect.x()+LVI_BORDER,option.rect.y()+LVI_BORDER,ico.pixmap(LVI_ICON_SIZE,LVI_ICON_SIZE));
- QTextDocument doc;
- doc.setHtml( text );
- painter->translate(option.rect.x()+afterIcon,option.rect.y()+LVI_BORDER);
- doc.setTextWidth(option.rect.width()-10);
- QRect cliprect=QRect(QPoint(0,0),QSize(option.rect.width()-afterIcon,option.rect.height()-(LVI_BORDER*2)-4));
- doc.drawContents(painter, cliprect);
- painter->restore();
-}
-
-QSize KviScriptAddonDelegate::sizeHint( const QStyleOptionViewItem & option, const QModelIndex & index ) const
-{
- QString text=index.data(Qt::DisplayRole).toString();
- QTextDocument doc;
- doc.setHtml( text );
- return QSize(((QListWidget*)parent())->viewport()->size().width(),doc.documentLayout()->documentSize().height() + (2 * LVI_BORDER));
-
-}
-
-KviScriptAddonListViewItem::KviScriptAddonListViewItem(QListWidget * v,KviKvsScriptAddon * a)
-: QListWidgetItem(v)
+KviScriptAddonListViewItem::KviScriptAddonListViewItem(KviTalListWidget *v,KviKvsScriptAddon * a)
+: KviTalListWidgetItem(v)
{
m_pAddon = new KviKvsScriptAddon(*a);
- m_pListView = v;
+ m_pListWidget = v;
QString t = "<nobr><b>";
t += a->visibleName();
t += "</b> [";
@@ -123,7 +79,6 @@ KviScriptAddonListViewItem::KviScriptAddonListViewItem(QListWidget * v,KviKvsScr
setText(t);
QPixmap * p = a->icon();
if (p) setIcon(*p);
- else setIcon(QPixmap(LVI_ICON_SIZE,LVI_ICON_SIZE));
}
KviScriptAddonListViewItem::~KviScriptAddonListViewItem()
@@ -132,28 +87,7 @@ KviScriptAddonListViewItem::~KviScriptAddonListViewItem()
delete m_pAddon;
}
-/*
-QString KviScriptAddonListViewItem::key(int,bool) const
-{
- return m_szKey;
-}
-*/
-
-
-KviScriptAddonListView::KviScriptAddonListView(QWidget * pParent)
-: QListWidget (pParent)
-{
-/* QPixmap * p = g_pIconManager->getImage("kvi_dialog_addons.png");
- if(p)setBackgroundOverlayPixmap(p,Qt::AlignRight | Qt::AlignBottom);
-*/
- setSelectionMode(QAbstractItemView::SingleSelection);
- setSortingEnabled(true);
-}
-
-KviScriptAddonListView::~KviScriptAddonListView()
-{
-}
@@ -168,8 +102,14 @@ KviScriptManagementDialog::KviScriptManagementDialog(QWidget * p)
QGridLayout * g = new QGridLayout(this);
// QPixmap * pix = g_pIconManager->getImage("kvi_dialog_addons.png");
- m_pListView = new KviScriptAddonListView(this);
- m_pListView->setItemDelegate(new KviScriptAddonDelegate(m_pListView));
+ 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(400);
QString szPic;
g_pApp->getGlobalKvircDirectory(szPic,KviApp::Pics);
@@ -178,8 +118,8 @@ KviScriptManagementDialog::KviScriptManagementDialog(QWidget * p)
QString style("QListWidget {background-image: url(" + szPic + ");}");
debug("pic: %s",szPic.toUtf8().data());
debug("style: %s",style.toUtf8().data());
- m_pListView->setStyleSheet(style);
- g->addMultiCellWidget(m_pListView,0,10,1,1);
+ m_pListWidget->setStyleSheet(style);
+ g->addMultiCellWidget(m_pListWidget,0,10,1,1);
m_pConfigureButton = new QPushButton(__tr2qs("Configure"),this);
connect(m_pConfigureButton,SIGNAL(clicked()),this,SLOT(configureScript()));
@@ -221,8 +161,8 @@ KviScriptManagementDialog::KviScriptManagementDialog(QWidget * p)
fillListView();
currentChanged(0,0);
- connect(m_pListView,SIGNAL(currentItemChanged(QListWidgetItem *,QListWidgetItem *)),this,SLOT(currentChanged(QListWidgetItem *,QListWidgetItem *)));
- m_pListView->setCurrentItem(m_pListView->item(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);
@@ -241,14 +181,14 @@ KviScriptManagementDialog::~KviScriptManagementDialog()
void KviScriptManagementDialog::fillListView()
{
- m_pListView->clear();
+ m_pListWidget->clear();
KviPointerHashTable<QString,KviKvsScriptAddon> * d = KviKvsScriptAddonManager::instance()->addonDict();
if(!d)return;
KviPointerHashTableIterator<QString,KviKvsScriptAddon> it(*d);
KviScriptAddonListViewItem * item;
while(KviKvsScriptAddon * a = it.current())
{
- item = new KviScriptAddonListViewItem(m_pListView,a);
+ item = new KviScriptAddonListViewItem(m_pListWidget,a);
++it;
}
}
@@ -270,7 +210,7 @@ void KviScriptManagementDialog::currentChanged(QListWidgetItem *item,QListWidget
void KviScriptManagementDialog::showScriptHelp()
{
- KviScriptAddonListViewItem * it = (KviScriptAddonListViewItem *)m_pListView->currentItem();
+ KviScriptAddonListViewItem * it = (KviScriptAddonListViewItem *)m_pListWidget->currentItem();
if(!it)return;
if(it->addon()->helpCallbackCode().isEmpty())return;
it->addon()->executeHelpCallback(g_pActiveWindow);
@@ -278,7 +218,7 @@ void KviScriptManagementDialog::showScriptHelp()
void KviScriptManagementDialog::configureScript()
{
- KviScriptAddonListViewItem * it = (KviScriptAddonListViewItem *)m_pListView->currentItem();
+ KviScriptAddonListViewItem * it = (KviScriptAddonListViewItem *)m_pListWidget->currentItem();
if(!it)return;
if(it->addon()->configureCallbackCode().isEmpty())return;
it->addon()->executeConfigureCallback(g_pActiveWindow);
@@ -286,7 +226,7 @@ void KviScriptManagementDialog::configureScript()
void KviScriptManagementDialog::uninstallScript()
{
- KviScriptAddonListViewItem * it = (KviScriptAddonListViewItem *)m_pListView->currentItem();
+ KviScriptAddonListViewItem * it = (KviScriptAddonListViewItem *)m_pListWidget->currentItem();
if(!it)return;
QString txt = "<p>";
@@ -324,8 +264,8 @@ void KviScriptManagementDialog::installScript()
fillListView();
currentChanged(0,0);
- //m_pListView->publicUpdateContents();
- //m_pListView->triggerUpdate();
+ //m_pListWidget->publicUpdateContents();
+ //m_pListWidget->triggerUpdate();
}
void KviScriptManagementDialog::showEvent(QShowEvent * e)
diff --git a/src/modules/addon/managementdialog.h b/src/modules/addon/managementdialog.h
index 04e81df52..07c1dd25c 100644
--- a/src/modules/addon/managementdialog.h
+++ b/src/modules/addon/managementdialog.h
@@ -26,7 +26,7 @@
#include "kvi_listview.h"
#include "kvi_settings.h"
-#include "kvi_tal_listview.h"
+#include "kvi_tal_listwidget.h"
#include <QWidget>
#include <QLabel>
@@ -41,16 +41,17 @@ class QPixmap;
class KviKvsScriptAddon;
-class KviScriptAddonListViewItem : public QListWidgetItem
+
+class KviScriptAddonListViewItem : public KviTalListWidgetItem
{
public:
- KviScriptAddonListViewItem(QListWidget * v,KviKvsScriptAddon * a);
+ KviScriptAddonListViewItem(KviTalListWidget * v,KviKvsScriptAddon * a);
~KviScriptAddonListViewItem();
protected:
KviKvsScriptAddon * m_pAddon;
QTextDocument * m_pText;
QPixmap * m_pIcon;
- QListWidget * m_pListView;
+ QListWidget * m_pListWidget;
QString m_szKey;
public:
KviKvsScriptAddon * addon(){ return m_pAddon; };
@@ -73,7 +74,7 @@ protected:
public:
~KviScriptManagementDialog();
protected:
- KviScriptAddonListView * m_pListView;
+ KviTalListWidget * m_pListWidget;
static KviScriptManagementDialog * m_pInstance;
QPushButton * m_pUninstallButton;
QPushButton * m_pConfigureButton;
@@ -98,14 +99,4 @@ protected slots:
void installScript();
};
-class KviScriptAddonDelegate : public QItemDelegate
-{
-public:
- KviScriptAddonDelegate(QListWidget * pWidget)
- : QItemDelegate(pWidget){};
- ~KviScriptAddonDelegate(){};
- QSize sizeHint(const QStyleOptionViewItem &option,const QModelIndex &index) const;
- void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
-};
-
#endif //!_MANAGEMENTDIALOG_H_
diff --git a/src/modules/aliaseditor/aliaseditor.cpp b/src/modules/aliaseditor/aliaseditor.cpp
index 9ffa1515c..c13904ff9 100644
--- a/src/modules/aliaseditor/aliaseditor.cpp
+++ b/src/modules/aliaseditor/aliaseditor.cpp
@@ -236,13 +236,18 @@ KviAliasEditor::KviAliasEditor(QWidget * par)
m_pSplitter = new QSplitter(Qt::Horizontal,this);
m_pSplitter->setOpaqueResize(false);
l->addWidget(m_pSplitter,0,0);
-
+
KviTalVBox * box = new KviTalVBox(m_pSplitter);
+ box->setSpacing(0);
+ box->setMargin(0);
+
m_pListView = new KviAliasEditorListView(box);
box = new KviTalVBox(m_pSplitter);
KviTalHBox * hbox = new KviTalHBox(box);
+ hbox->setSpacing(0);
+ hbox->setMargin(0);
m_pNameLabel = new QLabel(__tr2qs("No item selected"),hbox);
m_pRenameButton = new QPushButton(__tr2qs("Rename"),hbox);
m_pRenameButton->setEnabled(false);
diff --git a/src/modules/math/libkvimath.cpp b/src/modules/math/libkvimath.cpp
index 8a60d18e4..a7c848c12 100644
--- a/src/modules/math/libkvimath.cpp
+++ b/src/modules/math/libkvimath.cpp
@@ -461,7 +461,7 @@ KVIRC_MODULE(
"4.0.0", // module version
"Copyright (C) 2006 Szymon Stefanek (pragma at kvirc dot net),"\
"Tonino Imbesi (grifisx at barmes dot org)," \
- "Alessandro Carbone (noldor at barmes dot org)",
+ "Alessandro Carbone (elfonol at gmail dot com)",
"Mathematical function module",
math_module_init,
0,
diff --git a/src/modules/mediaplayer/libkvimediaplayer.cpp b/src/modules/mediaplayer/libkvimediaplayer.cpp
index 867b1c945..15cc30eda 100644
--- a/src/modules/mediaplayer/libkvimediaplayer.cpp
+++ b/src/modules/mediaplayer/libkvimediaplayer.cpp
@@ -1741,7 +1741,7 @@ KVIRC_MODULE(
"Copyright (C) 2001-2008 Szymon Stefanek (pragma at kvirc dot net)," \
"Christoph Thielecke (crissi99 at gmx dot de)," \
"Tonino Imbesi (grifisx at barmes dot org)," \
- "Alessandro Carbone (noldor at barmes dot org)," \
+ "Alessandro Carbone (elfonol at gmail dot com)," \
"Alexey Uzhva (wizard at opendoor dot ru)," \
"Serge Baranov (sbaranov at gmail dot com)",
"Interface to various media players",
diff --git a/src/modules/my/libkvimy.cpp b/src/modules/my/libkvimy.cpp
index 88b0cb972..bc5d4af2e 100644
--- a/src/modules/my/libkvimy.cpp
+++ b/src/modules/my/libkvimy.cpp
@@ -419,7 +419,7 @@ KVIRC_MODULE(
"4.0.0", // module version
"Copyright (C) 2002 Szymon Stefanek (pragma at kvirc dot net)" \
" (C) 2005 Tonino Imbesi (grifisx at barmes dot net)" \
- " (C) 2005 Alessandro Carbone (noldor at barmes dot net)", // author & (C)
+ " (C) 2005 Alessandro Carbone (elfonol at gmail dot com)", // author & (C)
"Scripting irc-context related functions",
my_module_init,
my_module_can_unload,
diff --git a/src/modules/objects/class_widget.cpp b/src/modules/objects/class_widget.cpp
index 07048ce78..967ac1510 100644
--- a/src/modules/objects/class_widget.cpp
+++ b/src/modules/objects/class_widget.cpp
@@ -1906,7 +1906,8 @@ bool KviKvsObject_widget::function_setStyleSheet(KviKvsObjectFunctionCall *c)
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("style_sheet",KVS_PT_STRING,0,szStyleSheet)
KVSO_PARAMETERS_END(c)
- if(widget())widget()->setStyleSheet(szStyleSheet);
+ QString styleSheet = QLatin1String(szStyleSheet);
+ if(widget())widget()->setStyleSheet(styleSheet);
return true;
}
bool KviKvsObject_widget::function_setKeyShortcut(KviKvsObjectFunctionCall *c)
diff --git a/src/modules/objects/libkviobjects.cpp b/src/modules/objects/libkviobjects.cpp
index 7936063cd..60801d6cd 100644
--- a/src/modules/objects/libkviobjects.cpp
+++ b/src/modules/objects/libkviobjects.cpp
@@ -969,7 +969,7 @@ KVIRC_MODULE(
" Szymon Stefanek (pragma at kvirc dot net)\n" \
" Krzysztof Godlewski (kristoff at poczta dot wprost dot pl)\n" \
" Tonino Imbesi (grifisx at barmes dot org)\n" \
- " Alessandro Carbone (noldor at barmes dot org)",
+ " Alessandro Carbone (elfonol at gmail dot com)",
"Object classes for KVIrc scripting language\n",
objects_module_init,
objects_module_can_unload,
diff --git a/src/modules/str/libkvistr.cpp b/src/modules/str/libkvistr.cpp
index 2e64848f0..8e244eb02 100644
--- a/src/modules/str/libkvistr.cpp
+++ b/src/modules/str/libkvistr.cpp
@@ -2320,7 +2320,7 @@ KVIRC_MODULE(
"Copyright (C) 2002 Szymon Stefanek (pragma at kvirc dot net)"\
" (C) 2002 Juanjo Alvarez (juanjux@yahoo.es)" \
" (C) 2005 Tonino Imbesi (grifisx at barmes dot org)" \
- " (C) 2005 Alessandro Carbone (noldor at barmes dot org)", // author & (C)
+ " (C) 2005 Alessandro Carbone (elfonol at gmail dot com)", // author & (C)
"Interface to the str system",
str_module_init,
0,
diff --git a/src/modules/system/libkvisystem.cpp b/src/modules/system/libkvisystem.cpp
index 63efd9a16..6b328059b 100644
--- a/src/modules/system/libkvisystem.cpp
+++ b/src/modules/system/libkvisystem.cpp
@@ -726,7 +726,7 @@ KVIRC_MODULE(
"4.0.0", // module version
"Copyright (C) 2001 Szymon Stefanek (pragma at kvirc dot net)" \
" (C) 2005 Tonino Imbesi (grifisx at barmes dot org)"\
- " (C) 2005 Alessandro Carbone (noldor at barmes dot org)",// author & (C)
+ " (C) 2005 Alessandro Carbone (elfonol at gmail dot com)",// author & (C)
"System informations module",
system_module_init,
system_module_can_unload,
diff --git a/src/modules/theme/managementdialog.cpp b/src/modules/theme/managementdialog.cpp
index f22f63f9b..8289d6aee 100644
--- a/src/modules/theme/managementdialog.cpp
+++ b/src/modules/theme/managementdialog.cpp
@@ -21,13 +21,13 @@
// Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
//=============================================================================
-
+/*
#define LVI_ICON_SIZE 32
#define LVI_BORDER 4
#define LVI_SPACING 8
#define LVI_MINIMUM_TEXT_WIDTH 300
#define LVI_MINIMUM_CELL_WIDTH (LVI_MINIMUM_TEXT_WIDTH + LVI_BORDER + LVI_ICON_SIZE + LVI_SPACING + LVI_BORDER)
-
+*/
#include "managementdialog.h"
#include "packthemedialog.h"
#include "savethemedialog.h"
@@ -51,6 +51,7 @@
#include "kvi_msgbox.h"
#include "kvi_tal_listbox.h"
#include "kvi_tal_popupmenu.h"
+#include "kvi_tal_listwidget.h"
#include <QLayout>
@@ -74,50 +75,8 @@
extern QRect g_rectManagementDialogGeometry;
-void KviThemeDelegate::paint( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
-{
- painter->save();
- if (option.state & QStyle::State_Selected)
- {
- QPalette pal=option.palette;
- QBrush brush=pal.highlight();
- QColor col=brush.color();
- col.setAlpha(127);
- brush.setColor(col);
- painter->fillRect(option.rect,brush);
- }
- QString text=index.data(Qt::DisplayRole).toString();
- QPixmap pixmap;
- QRect decorationRect;
- //QVariant value = index.data(Qt::DecorationRole);
- QStyle::State state=option.state;
- QRect rect=option.rect;
- int afterIcon = LVI_BORDER + LVI_ICON_SIZE + LVI_SPACING;
-// p->drawPixmap(LVI_BORDER,LVI_BORDER, *(g_pIconManager->getBigIcon(QString(KVI_BIGICON_THEME))) );
-
-// QIcon ico=QIcon(value.value<QIcon>());
- painter->drawPixmap(option.rect.x()+LVI_BORDER,option.rect.y()+LVI_BORDER,*(g_pIconManager->getBigIcon(QString(KVI_BIGICON_THEME))));
- QTextDocument doc;
- doc.setHtml( text );
- painter->translate(option.rect.x()+afterIcon,option.rect.y()+LVI_BORDER);
- doc.setTextWidth(option.rect.width()-10);
- QRect cliprect=QRect(QPoint(0,0),QSize(option.rect.width()-afterIcon,option.rect.height()-(LVI_BORDER*2)-4));
- doc.drawContents(painter, cliprect);
- painter->restore();
-}
-
-QSize KviThemeDelegate::sizeHint( const QStyleOptionViewItem & option, const QModelIndex & index ) const
-{
- QString text=index.data(Qt::DisplayRole).toString();
- QTextDocument doc;
- doc.setHtml( text );
- return QSize(((QListWidget*)parent())->viewport()->size().width(),doc.documentLayout()->documentSize().height() + (2 * LVI_BORDER));
-}
-
-
-
-KviThemeListBoxItem::KviThemeListBoxItem(QListWidget * box,KviThemeInfo * inf)
-: QListWidgetItem(box)
+KviThemeListBoxItem::KviThemeListBoxItem(KviTalListWidget * box,KviThemeInfo * inf)
+: KviTalListWidgetItem(box)
{
m_pThemeInfo = inf;
QString t;
@@ -149,6 +108,7 @@ KviThemeListBoxItem::KviThemeListBoxItem(QListWidget * box,KviThemeInfo * inf)
KviThemeListBoxItem::~KviThemeListBoxItem()
{
delete m_pThemeInfo;
+
}
KviThemeManagementDialog * KviThemeManagementDialog::m_pInstance = 0;
@@ -157,6 +117,7 @@ KviThemeManagementDialog * KviThemeManagementDialog::m_pInstance = 0;
KviThemeManagementDialog::KviThemeManagementDialog(QWidget * parent)
: QDialog(parent)
{
+ m_pItemDelegate=0;
setObjectName("theme_options_widget");
setWindowTitle(__tr2qs_ctx("Manage Themes - KVIrc","theme"));
setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_THEME)));
@@ -187,6 +148,7 @@ KviThemeManagementDialog::KviThemeManagementDialog(QWidget * parent)
m_pPackThemeButton = new QToolButton(hb);
m_pPackThemeButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_PACK)));
+
m_pPackThemeButton->setIconSize(QSize(32,32));
QToolTip::add(m_pPackThemeButton,__tr2qs_ctx("Export Selected Themes to a Distributable Package","theme"));
connect(m_pPackThemeButton,SIGNAL(clicked()),this,SLOT(packTheme()));
@@ -216,21 +178,23 @@ KviThemeManagementDialog::KviThemeManagementDialog(QWidget * parent)
QWidget *w= new QWidget(hb);
w->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum);
- m_pListBox = new QListWidget(this);
- m_pListBox->setContextMenuPolicy(Qt::CustomContextMenu);
- m_pListBox->setItemDelegate(new KviThemeDelegate(m_pListBox));
- m_pListBox->setMinimumHeight(400);
- m_pListBox->setMinimumWidth(400);
+ m_pListWidget = new KviTalListWidget(this);
+ m_pListWidget->setContextMenuPolicy(Qt::CustomContextMenu);
+ KviTalIconAndRichTextItemDelegate *itemDelegate=new KviTalIconAndRichTextItemDelegate(m_pListWidget);
+ itemDelegate->setDefaultIcon(g_pIconManager->getBigIcon(QString(KVI_BIGICON_THEME)));
+ m_pListWidget->setItemDelegate(itemDelegate);
+ m_pListWidget->setMinimumHeight(400);
+ m_pListWidget->setMinimumWidth(400);
- m_pListBox->setSelectionMode(QAbstractItemView::ExtendedSelection);
- m_pListBox->setSortingEnabled(true);
- connect(m_pListBox,SIGNAL(itemActivated(QListWidgetItem *)),this,SLOT(applyTheme(QListWidgetItem *)));
- connect(m_pListBox,SIGNAL(customContextMenuRequested(const QPoint &)),
+ m_pListWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
+ m_pListWidget->setSortingEnabled(true);
+ connect(m_pListWidget,SIGNAL(itemActivated(QListWidgetItem *)),this,SLOT(applyTheme(QListWidgetItem *)));
+ connect(m_pListWidget,SIGNAL(customContextMenuRequested(const QPoint &)),
this,SLOT(contextMenuRequested(const QPoint &)));
- connect(m_pListBox,SIGNAL(itemSelectionChanged()),this,SLOT(enableDisableButtons()));
- g->addWidget(m_pListBox,1,0);
+ connect(m_pListWidget,SIGNAL(itemSelectionChanged()),this,SLOT(enableDisableButtons()));
+ g->addWidget(m_pListWidget,1,0);
- KviDynamicToolTip * tip = new KviDynamicToolTip(m_pListBox);
+ KviDynamicToolTip * tip = new KviDynamicToolTip(m_pListWidget);
connect(tip,SIGNAL(tipRequest(KviDynamicToolTip *,const QPoint &)),this,SLOT(tipRequest(KviDynamicToolTip *,const QPoint &)));
QPushButton * b = new QPushButton(__tr2qs("Close"),this);
@@ -256,6 +220,7 @@ KviThemeManagementDialog::KviThemeManagementDialog(QWidget * parent)
KviThemeManagementDialog::~KviThemeManagementDialog()
{
+// if (m_pItemDelegate) delete m_pItemDelegate;
g_rectManagementDialogGeometry = QRect(pos().x(),pos().y(),size().width(),size().height());
m_pInstance = 0;
}
@@ -284,7 +249,7 @@ void KviThemeManagementDialog::packTheme()
{
KviPointerList<KviThemeInfo> dl;
dl.setAutoDelete(false);
- QList<QListWidgetItem*> itemsSelected = m_pListBox->selectedItems ();
+ 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;
@@ -297,25 +262,25 @@ void KviThemeManagementDialog::packTheme()
void KviThemeManagementDialog::contextMenuRequested(const QPoint & pos)
{
- if(m_pListBox->itemAt(pos)!=0)
+ if(m_pListWidget->itemAt(pos)!=0)
{
- m_pListBox->setCurrentItem(m_pListBox->itemAt(pos));
+ m_pListWidget->setCurrentItem(m_pListWidget->itemAt(pos));
m_pContextPopup->clear();
m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_MINUS)),__tr2qs_ctx("&Remove Theme","theme"),this,SLOT(deleteTheme()));
m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ACCEPT)),__tr2qs_ctx("&Apply Theme","theme"),this,SLOT(applyCurrentTheme()));
- m_pContextPopup->popup(m_pListBox->viewport()->mapToGlobal(pos));
+ m_pContextPopup->popup(m_pListWidget->viewport()->mapToGlobal(pos));
}
}
void KviThemeManagementDialog::applyTheme ( QListWidgetItem * it)
{
- if(it)m_pListBox->setCurrentItem(it);
+ if(it)m_pListWidget->setCurrentItem(it);
applyCurrentTheme();
}
void KviThemeManagementDialog::applyCurrentTheme()
{
- KviThemeListBoxItem * it = (KviThemeListBoxItem *)m_pListBox->currentItem();
+ KviThemeListBoxItem * it = (KviThemeListBoxItem *)m_pListWidget->currentItem();
if(!it)return;
if(KviMessageBox::yesNo(__tr2qs_ctx("Apply theme - KVIrc","theme"),
@@ -340,7 +305,7 @@ void KviThemeManagementDialog::applyCurrentTheme()
void KviThemeManagementDialog::deleteTheme()
{
- QList<QListWidgetItem*> itemsSelected = m_pListBox->selectedItems ();
+ QList<QListWidgetItem*> itemsSelected = m_pListWidget->selectedItems ();
for(int i=0;i<itemsSelected.count();i++)
{
if(!KviMessageBox::yesNo(__tr2qs_ctx("Delete Theme - KVIrc","theme"),
@@ -402,7 +367,7 @@ void KviThemeManagementDialog::fillThemeBox(const QString &szDir)
{
inf->setSubdirectory(*it);
KviThemeListBoxItem * item = 0;
- item = new KviThemeListBoxItem(m_pListBox,inf);
+ item = new KviThemeListBoxItem(m_pListWidget,inf);
} else {
delete inf;
}
@@ -411,7 +376,7 @@ void KviThemeManagementDialog::fillThemeBox(const QString &szDir)
void KviThemeManagementDialog::fillThemeBox()
{
- m_pListBox->clear();
+ m_pListWidget->clear();
QString szDir;
g_pApp->getGlobalKvircDirectory(szDir,KviApp::Themes);
@@ -424,7 +389,7 @@ void KviThemeManagementDialog::fillThemeBox()
bool KviThemeManagementDialog::hasSelectedItems()
{
- QList<QListWidgetItem*> itemsSelected = m_pListBox->selectedItems ();
+ QList<QListWidgetItem*> itemsSelected = m_pListWidget->selectedItems ();
return itemsSelected.count()?true:false;
}
@@ -444,7 +409,7 @@ void KviThemeManagementDialog::closeEvent(QCloseEvent * e)
void KviThemeManagementDialog::tipRequest(KviDynamicToolTip *pTip,const QPoint &pnt)
{
- KviThemeListBoxItem * it = (KviThemeListBoxItem *)(m_pListBox->itemAt(pnt));
+ KviThemeListBoxItem * it = (KviThemeListBoxItem *)(m_pListWidget->itemAt(pnt));
if(!it)return;
@@ -466,5 +431,5 @@ void KviThemeManagementDialog::tipRequest(KviDynamicToolTip *pTip,const QPoint &
0
);
- pTip->tip(m_pListBox->visualItemRect(it),szThemeDescription);
+ pTip->tip(m_pListWidget->visualItemRect(it),szThemeDescription);
}
diff --git a/src/modules/theme/managementdialog.h b/src/modules/theme/managementdialog.h
index 4bed19726..a1170c7d4 100644
--- a/src/modules/theme/managementdialog.h
+++ b/src/modules/theme/managementdialog.h
@@ -30,6 +30,7 @@
#include "kvi_tal_listbox.h"
#include "kvi_tal_popupmenu.h"
#include "kvi_tal_wizard.h"
+#include "kvi_tal_listwidget.h"
#include <QDialog>
#include <QComboBox>
@@ -47,10 +48,10 @@ class KviDynamicToolTip;
class KviStyledToolButton;
-class KviThemeListBoxItem : public QListWidgetItem
+class KviThemeListBoxItem : public KviTalListWidgetItem
{
public:
- KviThemeListBoxItem(QListWidget * box,KviThemeInfo * inf);
+ KviThemeListBoxItem(KviTalListWidget * box,KviThemeInfo * inf);
virtual ~KviThemeListBoxItem();
public:
KviThemeInfo * m_pThemeInfo;
@@ -67,7 +68,8 @@ public:
virtual ~KviThemeManagementDialog();
protected:
static KviThemeManagementDialog * m_pInstance;
- QListWidget * m_pListBox;
+ KviTalIconAndRichTextItemDelegate * m_pItemDelegate;
+ KviTalListWidget * m_pListWidget;
KviTalPopupMenu * m_pContextPopup;
QToolButton * m_pDeleteThemeButton;
QToolButton * m_pPackThemeButton;
@@ -93,6 +95,7 @@ protected slots:
void contextMenuRequested(const QPoint & pos);
void tipRequest(KviDynamicToolTip *pTip,const QPoint &pnt);
};
+/*
class KviThemeDelegate : public QItemDelegate
{
public:
@@ -102,5 +105,5 @@ public:
QSize sizeHint(const QStyleOptionViewItem &option,const QModelIndex &index) const;
void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
};
-
+*/
#endif //!_MANAGEMENTDIALOG_H_