diff options
| author | 2008-05-18 12:08:40 +0000 | |
|---|---|---|
| committer | 2008-05-18 12:08:40 +0000 | |
| commit | 13cc59072532f7c2d35e6297d7e5985be9918365 (patch) | |
| tree | 28f7cd271df99e0e6867f7a0c78ace7d392a0a43 /src | |
| parent | translation targets: cleaned up the bash scripting stuff (now it should be qu... (diff) | |
| download | KVIrc-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.cpp | 19 | ||||
| -rw-r--r-- | src/kvilib/tal/kvi_tal_listwidget.h | 14 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_htmldialog.cpp | 10 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_htmldialog.h | 46 | ||||
| -rw-r--r-- | src/modules/theme/managementdialog.cpp | 27 | ||||
| -rw-r--r-- | src/modules/theme/managementdialog.h | 3 | ||||
| -rw-r--r-- | src/modules/theme/packthemedialog.cpp | 6 | ||||
| -rw-r--r-- | src/modules/theme/themefunctions.cpp | 23 | ||||
| -rw-r--r-- | src/modules/theme/themefunctions.h | 5 |
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); }; |
