aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Noldor2008-05-18 12:08:40 +0000
committerGravatar Noldor2008-05-18 12:08:40 +0000
commit13cc59072532f7c2d35e6297d7e5985be9918365 (patch)
tree28f7cd271df99e0e6867f7a0c78ace7d392a0a43 /src
parenttranslation targets: cleaned up the bash scripting stuff (now it should be qu... (diff)
downloadKVIrc-13cc59072532f7c2d35e6297d7e5985be9918365.tar.gz
KVIrc-13cc59072532f7c2d35e6297d7e5985be9918365.tar.bz2
KVIrc-13cc59072532f7c2d35e6297d7e5985be9918365.zip
QT4 resource port (wip)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1812 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvilib/tal/kvi_tal_listwidget.cpp19
-rw-r--r--src/kvilib/tal/kvi_tal_listwidget.h14
-rw-r--r--src/kvirc/ui/kvi_htmldialog.cpp10
-rw-r--r--src/kvirc/ui/kvi_htmldialog.h46
-rw-r--r--src/modules/theme/managementdialog.cpp27
-rw-r--r--src/modules/theme/managementdialog.h3
-rw-r--r--src/modules/theme/packthemedialog.cpp6
-rw-r--r--src/modules/theme/themefunctions.cpp23
-rw-r--r--src/modules/theme/themefunctions.h5
9 files changed, 120 insertions, 33 deletions
diff --git a/src/kvilib/tal/kvi_tal_listwidget.cpp b/src/kvilib/tal/kvi_tal_listwidget.cpp
index 5b64c96f9..9cab44d1c 100644
--- a/src/kvilib/tal/kvi_tal_listwidget.cpp
+++ b/src/kvilib/tal/kvi_tal_listwidget.cpp
@@ -27,13 +27,30 @@
#include "kvi_tal_itemdelegates.h"
#include <QListWidget>
+#include <QEvent>
+#include <QHelpEvent>
+
KviTalListWidget::KviTalListWidget(QWidget * pParent,QString name,Qt::WFlags f)
: QListWidget(pParent)
{
setObjectName(name);
setWindowFlags(f);
}
-
+bool KviTalListWidget::event(QEvent * e)
+{
+
+ if (e->type() == QEvent::ToolTip)
+ {
+ QHelpEvent *helpEvent = static_cast<QHelpEvent *>(e);
+ const QPoint &p=helpEvent->pos();
+ QListWidgetItem *item=itemAt(p);
+ if (item){
+ debug ("Emit tip request in listwidget");
+ emit tipRequest(item,p);
+ }
+ }
+ return QListWidget::event(e);
+}
diff --git a/src/kvilib/tal/kvi_tal_listwidget.h b/src/kvilib/tal/kvi_tal_listwidget.h
index cd25a15c4..6e3c86b01 100644
--- a/src/kvilib/tal/kvi_tal_listwidget.h
+++ b/src/kvilib/tal/kvi_tal_listwidget.h
@@ -40,15 +40,13 @@ class KVILIB_API KviTalListWidget : public QListWidget
public:
KviTalListWidget(QWidget * pParent,QString name,Qt::WFlags f = 0);
KviTalListWidget(QWidget * pParent)
- : QListWidget (pParent)/*, m_pDelegate(0)*/{};
- virtual ~KviTalListWidget() { /*if (m_pDelegate) delete m_pDelegate;*/ };
- /*void setDelegate(QItemDelegate *itemdelegate)
- { m_pDelegate=itemdelegate;
- setItemDelegate(itemdelegate);
- }
- */
+ : QListWidget (pParent){};
+ virtual ~KviTalListWidget() {};
+
protected:
- //QItemDelegate *m_pDelegate;
+ virtual bool event(QEvent * e);
+signals:
+ void tipRequest(QListWidgetItem *,const QPoint &);
};
diff --git a/src/kvirc/ui/kvi_htmldialog.cpp b/src/kvirc/ui/kvi_htmldialog.cpp
index a6af295a6..40fed238b 100644
--- a/src/kvirc/ui/kvi_htmldialog.cpp
+++ b/src/kvirc/ui/kvi_htmldialog.cpp
@@ -48,7 +48,7 @@ KviHtmlDialog::KviHtmlDialog(QWidget * pParent,KviHtmlDialogData * pData)
QGridLayout * g = new QGridLayout(this);
QLabel * l;
- QTextBrowser * te;
+ KviTextBrowser * te;
QPushButton * pb;
int iUp = 0;
@@ -70,8 +70,12 @@ KviHtmlDialog::KviHtmlDialog(QWidget * pParent,KviHtmlDialogData * pData)
iDown = 1;
}
- te = new QTextBrowser(this);
- te->setText(pData->szHtmlText);
+ te = new KviTextBrowser(this,pData);
+ debug("Create dialog html");
+ pData->m_pDoc->setHtml(pData->szHtmlText);
+ te->setDocument(pData->m_pDoc);
+
+// te->setText(pData->szHtmlText);
//te->setReadOnly(true);
if(pData->iFlags & KviHtmlDialogData::ForceMinimumSize)
diff --git a/src/kvirc/ui/kvi_htmldialog.h b/src/kvirc/ui/kvi_htmldialog.h
index 63eb2bb8d..a7905e14f 100644
--- a/src/kvirc/ui/kvi_htmldialog.h
+++ b/src/kvirc/ui/kvi_htmldialog.h
@@ -26,13 +26,33 @@
#include "kvi_qstring.h"
#include "kvi_settings.h"
+#include "kvi_resources.h"
#include <QPixmap>
#include <QDialog>
+#include <QUrl>
+#include <QTextBrowser>
+#include <QHash>
+#include <QPixmap>
+
+
+
class KviHtmlDialogData
{
public:
+ void addImageResource(const QString &key,const QPixmap &pix)
+ {
+ if (!m_pDoc) m_pDoc=new QTextDocument();
+ QUrl url;
+ url.setFileName(key);
+ m_pDoc->addResource(2,url,pix);
+ }
+ void addHtmlResource(const QString key,const QString value)
+ {
+ htmlResource.insert(key,value);
+ }
+
// input
// mandatory fields
@@ -49,7 +69,8 @@ public:
QString szButton1Text; // OK is used if this is empty
QString szButton2Text; // no button is shown if this is empty
QString szButton3Text; // no button is shown if this is empty
-
+ QTextDocument *m_pDoc;
+ QHash<QString,QString> htmlResource;
int iMinimumWidth;
int iMinimumHeight;
@@ -57,8 +78,31 @@ public:
// output
int iSelectedButton; // returns 1,2 or 3
+ KviHtmlDialogData::KviHtmlDialogData()
+ : m_pDoc(0){};
+
+ ~KviHtmlDialogData(){if (m_pDoc) delete m_pDoc;};
};
+class KviTextBrowser: public QTextBrowser
+{
+public:
+ KviTextBrowser::KviTextBrowser(QWidget *par,KviHtmlDialogData *ht)
+ : QTextBrowser(par), m_pHt(ht){};
+ ~KviTextBrowser(){};
+ virtual QVariant loadResource ( int type, const QUrl & name )
+ {
+ QString p=m_pHt->htmlResource.value(name.fileName());
+ if (!p.isEmpty()) return QVariant(p);
+ else return QVariant();
+
+ debug("resource %s type %d",name.fileName().toUtf8().data(),type);
+ //return QTextBrowser::loadResource(type,name);
+ }
+protected:
+ KviHtmlDialogData *m_pHt;
+
+};
class KVIRC_API KviHtmlDialog : public QDialog
{
Q_OBJECT
diff --git a/src/modules/theme/managementdialog.cpp b/src/modules/theme/managementdialog.cpp
index 1a677122a..74c048514 100644
--- a/src/modules/theme/managementdialog.cpp
+++ b/src/modules/theme/managementdialog.cpp
@@ -183,13 +183,16 @@ KviThemeManagementDialog::KviThemeManagementDialog(QWidget * parent)
m_pListWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
m_pListWidget->setSortingEnabled(true);
connect(m_pListWidget,SIGNAL(itemActivated(QListWidgetItem *)),this,SLOT(applyTheme(QListWidgetItem *)));
+
+ //FIXME tooltip
+ //connect(m_pListWidget,SIGNAL(tipRequest(QListWidgetItem *,const QPoint &)),this,SLOT(tipRequest(QListWidgetItem *,const QPoint &)));
connect(m_pListWidget,SIGNAL(customContextMenuRequested(const QPoint &)),
this,SLOT(contextMenuRequested(const QPoint &)));
connect(m_pListWidget,SIGNAL(itemSelectionChanged()),this,SLOT(enableDisableButtons()));
g->addWidget(m_pListWidget,1,0);
- KviDynamicToolTip * tip = new KviDynamicToolTip(m_pListWidget);
- connect(tip,SIGNAL(tipRequest(KviDynamicToolTip *,const QPoint &)),this,SLOT(tipRequest(KviDynamicToolTip *,const QPoint &)));
+// 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);
b->setMaximumSize(b->sizeHint().width(),b->sizeHint().height());
@@ -400,13 +403,15 @@ void KviThemeManagementDialog::closeEvent(QCloseEvent * e)
delete this;
}
-void KviThemeManagementDialog::tipRequest(KviDynamicToolTip *pTip,const QPoint &pnt)
+void KviThemeManagementDialog::tipRequest(QListWidgetItem *it,const QPoint &pnt)
{
- KviThemeListWidgetItem * it = (KviThemeListWidgetItem *)(m_pListWidget->itemAt(pnt));
+ // FIXME
+ /*
+ //KviThemeListWidgetItem * it = (KviThemeListWidgetItem *)(m_pListWidget->itemAt(pnt));
- if(!it)return;
+ //if(!it)return;
- KviThemeInfo * pThemeInfo = it->themeInfo();
+ KviThemeInfo * pThemeInfo = ((KviThemeListWidgetItem *)it)->themeInfo();
QString szThemeDescription;
@@ -423,6 +428,12 @@ void KviThemeManagementDialog::tipRequest(KviDynamicToolTip *pTip,const QPoint &
pThemeInfo->mediumScreenshot(),
0
);
-
- pTip->tip(m_pListWidget->visualItemRect(it),szThemeDescription);
+ QLabel *wid=new QLabel(0);
+ wid->setWindowFlags(Qt::Popup);
+ wid->setText("Prova del tooltip");
+ wid->move(pnt);
+ wid->show();
+// pTip->tip(m_pListWidget->visualItemRect(it),szThemeDescription);
+*/
}
+
diff --git a/src/modules/theme/managementdialog.h b/src/modules/theme/managementdialog.h
index a08d4e5ca..044c147fe 100644
--- a/src/modules/theme/managementdialog.h
+++ b/src/modules/theme/managementdialog.h
@@ -93,7 +93,8 @@ protected slots:
void applyCurrentTheme();
void enableDisableButtons();
void contextMenuRequested(const QPoint & pos);
- void tipRequest(KviDynamicToolTip *pTip,const QPoint &pnt);
+ //void tipRequest(KviDynamicToolTip *pTip,const QPoint &pnt);
+ void tipRequest(QListWidgetItem *item,const QPoint &pnt);
};
/*
class KviThemeDelegate : public QItemDelegate
diff --git a/src/modules/theme/packthemedialog.cpp b/src/modules/theme/packthemedialog.cpp
index a67f06328..d7ee2f1bb 100644
--- a/src/modules/theme/packthemedialog.cpp
+++ b/src/modules/theme/packthemedialog.cpp
@@ -190,7 +190,11 @@ KviPackThemeDialog::KviPackThemeDialog(QWidget * pParent,KviPointerList<KviTheme
KviTalTextEdit * pTextEdit = new KviTalTextEdit(pPage);
pTextEdit->setBackgroundRole(QPalette::Window);
pTextEdit->setReadOnly(true);
- pTextEdit->setText(szThemesDescription);
+ QTextDocument *doc=new QTextDocument(pTextEdit);
+ debug("Create dialog html");
+ doc->setHtml(szThemesDescription);
+ pTextEdit->setDocument(doc);
+ //pTextEdit->setText(szThemesDescription);
pLayout->addWidget(pTextEdit,1,0);
pLayout->setRowStretch(1,1);
diff --git a/src/modules/theme/themefunctions.cpp b/src/modules/theme/themefunctions.cpp
index 3e3c8b102..144876fd3 100644
--- a/src/modules/theme/themefunctions.cpp
+++ b/src/modules/theme/themefunctions.cpp
@@ -35,9 +35,11 @@
#include "kvi_theme.h"
#include "kvi_frame.h"
+
//#include <qmime.h>
-#include <q3mimefactory.h>
-#define KviTalMimeSourceFactory Q3MimeSourceFactory
+//#include <q3mimefactory.h>
+
+//#define KviTalMimeSourceFactory Q3MimeSourceFactory
namespace KviThemeFunctions
{
@@ -183,7 +185,7 @@ namespace KviThemeFunctions
szThemeDate,
szThemeEngineVersion,
pixScreenshot,
- iIdx
+ iIdx,&hd
);
if(iIdx > 0)
@@ -256,12 +258,11 @@ namespace KviThemeFunctions
&szWarnings,
&szShowDetails
);
-
+ hd.addImageResource("theme_dialog_pack_image",pix);
+ hd.addHtmlResource("theme_dialog_details",szDetails);
+ hd.addHtmlResource("theme_dialog_main",hd.szHtmlText);
- KviTalMimeSourceFactory::defaultFactory()->setPixmap("theme_dialog_pack_image",pix);
- KviTalMimeSourceFactory::defaultFactory()->setText("theme_dialog_details",szDetails);
- KviTalMimeSourceFactory::defaultFactory()->setText("theme_dialog_main",hd.szHtmlText);
QString beginCenter = "<center>";
QString endCenter = "</center>";
@@ -307,7 +308,8 @@ namespace KviThemeFunctions
const QString &szThemeDate,
const QString &szThemeThemeEngineVersion,
const QPixmap &pixScreenshot,
- int iUniqueIndexInDocument
+ int iUniqueIndexInDocument,
+ KviHtmlDialogData *hd
)
{
QString szAuthor = __tr2qs_ctx("Author","theme");
@@ -322,7 +324,10 @@ namespace KviThemeFunctions
KviQString::sprintf(szScreenshot,"<p><center><img src=\"theme_shot%d\"></center></p>",iUniqueIndexInDocument);
QString szTmp;
KviQString::sprintf(szTmp,"theme_shot%d",iUniqueIndexInDocument);
- KviTalMimeSourceFactory::defaultFactory()->setPixmap(szTmp,pixScreenshot);
+ //FIXME in tooltip
+ if (hd)
+ hd->addImageResource(szTmp,pixScreenshot);
+ else szScreenshot = "";
} else {
szScreenshot = "";
}
diff --git a/src/modules/theme/themefunctions.h b/src/modules/theme/themefunctions.h
index e35e0c82d..d09e12be7 100644
--- a/src/modules/theme/themefunctions.h
+++ b/src/modules/theme/themefunctions.h
@@ -26,6 +26,7 @@
#include "kvi_settings.h"
#include "kvi_qstring.h"
+#include "kvi_htmldialog.h"
#include <QWidget>
#include <QPixmap>
@@ -44,7 +45,9 @@ namespace KviThemeFunctions
const QString &szThemeDate,
const QString &szThemeThemeEngineVersion,
const QPixmap &pixScreenshot,
- int iUniqueIndexInDocument = 0
+ int iUniqueIndexInDocument = 0,
+ KviHtmlDialogData *hd=0
+
);
bool makeKVIrcScreenshot(const QString &szSavePngFilePath,bool bMaximizeFrame = false);
};