aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Noldor2008-04-17 16:10:50 +0000
committerGravatar Noldor2008-04-17 16:10:50 +0000
commit8b3166bb3efbedb5f38102bf55fffcb1e74f9be9 (patch)
treede5870b2bfca65ccae00d503e5d9f1862782b341 /src
parentported KVS progressbar (completed), popupmenu (wip) (diff)
downloadKVIrc-8b3166bb3efbedb5f38102bf55fffcb1e74f9be9.tar.gz
KVIrc-8b3166bb3efbedb5f38102bf55fffcb1e74f9be9.tar.bz2
KVIrc-8b3166bb3efbedb5f38102bf55fffcb1e74f9be9.zip
Q3PopupMenu port (wip)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1492 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvilib/kvilib_QT4_vc05.vcproj2
-rw-r--r--src/kvilib/tal/kvi_tal_popupmenu.cpp146
-rw-r--r--src/kvilib/tal/kvi_tal_popupmenu.h82
-rw-r--r--src/modules/editor/scripteditor.cpp6
4 files changed, 183 insertions, 53 deletions
diff --git a/src/kvilib/kvilib_QT4_vc05.vcproj b/src/kvilib/kvilib_QT4_vc05.vcproj
index 980f355cb..4da0375da 100644
--- a/src/kvilib/kvilib_QT4_vc05.vcproj
+++ b/src/kvilib/kvilib_QT4_vc05.vcproj
@@ -2008,6 +2008,8 @@
<Tool
Name="VCCustomBuildTool"
Description="Performing Custom Build Step For $(InputName)"
+ CommandLine="$(QTDIR)\bin\moc -o &quot;$(InputDir)\$(InputName).moc&quot; &quot;$(InputDir)\$(InputFileName)&quot;"
+ Outputs="$(InputDir)\$(InputName).moc"
/>
</FileConfiguration>
<FileConfiguration
diff --git a/src/kvilib/tal/kvi_tal_popupmenu.cpp b/src/kvilib/tal/kvi_tal_popupmenu.cpp
index 3327ead4b..e8b54764a 100644
--- a/src/kvilib/tal/kvi_tal_popupmenu.cpp
+++ b/src/kvilib/tal/kvi_tal_popupmenu.cpp
@@ -25,6 +25,152 @@
#define __KVILIB__
#include "kvi_tal_popupmenu.h"
+#include <qwidgetaction.h>
+#include <QMenu>
+#include <QHash>
+
+
+KviTalPopupMenu::KviTalPopupMenu(QWidget * pParent,const QString &szName)
+: QMenu(pParent)
+{
+ connect(this,SIGNAL(triggered(QAction *)),this,SLOT(slottriggered(QAction *)));
+ setName(szName);
+ identifier=0;
+}
+KviTalPopupMenu::~KviTalPopupMenu()
+{
+}
+
+
+int KviTalPopupMenu::insertItem(const QString &szText)
+{
+ QAction *a=addAction(szText);
+ actionsDict[identifier++]=a;
+ return identifier-1;
+}
+int KviTalPopupMenu::insertItem(const QPixmap &pix,const QString &szText)
+{
+ //return QMenu::insertItem(QIcon(pix),szText,-1,-1);
+ QAction *a=addAction(QIcon(pix),szText);
+ actionsDict[identifier++]=a;
+ return identifier-1;
+}
+int KviTalPopupMenu::insertItem(const QString &szText,int id)
+{
+ //return QMenu::insertItem(szText,id);
+
+ QAction *a=addAction(szText);
+ addAction(a);
+ actionsDict[id]=a;
+ return id;
+}
+
+int KviTalPopupMenu::insertItem(const QPixmap &pix,const QString &szText,int id)
+{
+ //return QMenu::insertItem(QIcon(pix),szText,id,-1);
+ QAction *a=addAction(QIcon(pix),szText);
+ actionsDict[id]=a;
+ return id;
+}
+
+
+int KviTalPopupMenu::insertItem(const QString &szText,const QObject * pReceiver,const char * szSlot)
+{
+ //return QMenu::insertItem(szText,pReceiver,szSlot);
+ QAction *a=addAction(szText,pReceiver,szSlot);
+ actionsDict[identifier++]=a;
+ return identifier-1;
+}
+int KviTalPopupMenu::insertItem(const QPixmap &pix,const QString &szText,const QObject * pReceiver,const char * szSlot)
+{
+ //return QMenu::insertItem(QIcon(pix),szText,pReceiver,szSlot);
+ QAction *a=addAction(QIcon(pix),szText,pReceiver,szSlot);
+ actionsDict[identifier++]=a;
+ return identifier-1;
+}
+
+int KviTalPopupMenu::insertItem(const QPixmap &pix,const QString &szText,QMenu *pMenu)
+{
+ //return QMenu::insertItem(QIcon(pix),szText,pMenu,-1,-1);
+ QAction *a=addMenu(pMenu);
+ a->setText(szText);
+ a->setIcon(QIcon(pix));
+ actionsDict[identifier++]=a;
+ return identifier-1;
+}
+
+int KviTalPopupMenu::insertItem(const QString &szText,QMenu *pMenu)
+{
+ //return QMenu::insertItem(szText,pMenu,-1,-1);
+ QAction *a=addMenu(pMenu);
+ a->setText(szText);
+ actionsDict[identifier++]=a;
+ return identifier-1;
+}
+
+
+int KviTalPopupMenu::insertItem(QWidget * pWidget)
+{
+ // needs Qt 4.2
+ QWidgetAction * pAct = new QWidgetAction(this);
+ pAct->setDefaultWidget(pWidget);
+ addAction(pAct);
+ return 0;
+}
+void KviTalPopupMenu::setItemChecked(int id,bool check)
+{
+ QAction * action=actionsDict.value(id);
+ action->setCheckable(true);
+ action->setChecked(check);
+}
+void KviTalPopupMenu::setItemParameter(int id, int param)
+{
+ QAction * action=actionsDict.value(id);
+ QVariant par(param);
+ action->setData(par);
+}
+int KviTalPopupMenu::itemParameter(int id)
+{
+ QAction * action=actionsDict.value(id);
+ return action->data().asInt();
+}
+void KviTalPopupMenu::clear()
+{
+ QMenu::clear();
+ identifier=0;
+ actionsDict.clear();
+}
+QString KviTalPopupMenu::text(int id)
+{
+ QAction * action=actionsDict.value(id);
+ return action->text();
+}
+void KviTalPopupMenu::setItemEnabled(int id,bool bFlag)
+{
+ QAction * action=actionsDict.value(id);
+ action->setEnabled(bFlag);
+}
+
+int KviTalPopupMenu::insertSeparator()
+{
+ QAction *a=addSeparator();
+ actionsDict[identifier++]=a;
+ return identifier-1;
+}
+void KviTalPopupMenu::slottriggered(QAction *a)
+{
+ QHashIterator<int, QAction *> i(actionsDict);
+ int count=0;
+ bool found=false;
+ while (i.hasNext())
+ {
+ i.next();
+ if (i.value()!= a) count++;
+ else break;
+ }
+ emit activated(count);
+}
+
#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
#include "kvi_tal_popupmenu.moc"
#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES
diff --git a/src/kvilib/tal/kvi_tal_popupmenu.h b/src/kvilib/tal/kvi_tal_popupmenu.h
index 478acd345..36d719971 100644
--- a/src/kvilib/tal/kvi_tal_popupmenu.h
+++ b/src/kvilib/tal/kvi_tal_popupmenu.h
@@ -24,64 +24,42 @@
// Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
//=============================================================================
-
#include "kvi_settings.h"
#include "kvi_qstring.h"
-#include <q3popupmenu.h>
-#include <qwidgetaction.h>
+#include <QMenu>
+#include <QHash>
+
-class KVILIB_API KviTalPopupMenu : public Q3PopupMenu
+class KVILIB_API KviTalPopupMenu : public QMenu
{
Q_OBJECT
+protected:
+ QHash<int,QAction *> actionsDict;
+ int identifier;
public:
- KviTalPopupMenu(QWidget * pParent=0,const QString &szName = KviQString::empty)
- : Q3PopupMenu(pParent)
- {
- setName(szName);
- };
- virtual ~KviTalPopupMenu() {};
-
- int insertItem(const QString &szText)
- {
- return Q3PopupMenu::insertItem(szText);
- }
- int insertItem(const QPixmap &pix,const QString &szText)
- {
- return Q3PopupMenu::insertItem(QIcon(pix),szText,-1,-1);
- }
- int insertItem(const QString &szText,int id)
- {
- return Q3PopupMenu::insertItem(szText,id);
- }
- int insertItem(const QPixmap &pix,const QString &szText,int id)
- {
- return Q3PopupMenu::insertItem(QIcon(pix),szText,id,-1);
- }
- int insertItem(const QString &szText,const QObject * pReceiver,const char * szSlot)
- {
- return Q3PopupMenu::insertItem(szText,pReceiver,szSlot);
- }
- int insertItem(const QPixmap &pix,const QString &szText,const QObject * pReceiver,const char * szSlot)
- {
- return Q3PopupMenu::insertItem(QIcon(pix),szText,pReceiver,szSlot);
- }
- int insertItem(const QPixmap &pix,const QString &szText,QMenu *pMenu)
- {
- return Q3PopupMenu::insertItem(QIcon(pix),szText,pMenu,-1,-1);
- }
- int insertItem(const QString &szText,QMenu *pMenu)
- {
- return Q3PopupMenu::insertItem(szText,pMenu,-1,-1);
- }
- int insertItem(QWidget * pWidget)
- {
- // needs Qt 4.2
- QWidgetAction * pAct = new QWidgetAction(this);
- pAct->setDefaultWidget(pWidget);
- addAction(pAct);
- return 0;
- }
+ KviTalPopupMenu(QWidget * pParent=0,const QString &szName = KviQString::empty);
+ virtual ~KviTalPopupMenu() ;
+ int insertItem(const QString &szText);
+ int insertItem(const QPixmap &pix,const QString &szText);
+ int insertItem(const QString &szText,int id);
+ int insertItem(const QPixmap &pix,const QString &szText,int id);
+ int insertItem(const QString &szText,const QObject * pReceiver,const char * szSlot);
+ int insertItem(const QPixmap &pix,const QString &szText,const QObject * pReceiver,const char * szSlot);
+ int insertItem(const QPixmap &pix,const QString &szText,QMenu *pMenu);
+ int insertItem(const QString &szText,QMenu *pMenu);
+ int insertItem(QWidget * pWidget);
+ void setItemChecked(int id,bool check);
+ void setItemEnabled(int id,bool bFlag);
+ void setItemParameter(int id, int param);
+ int itemParameter(int id);
+ void clear();
+ QString text(int);
+ int insertSeparator();
+protected slots:
+ void slottriggered(QAction *);
+signals:
+ void activated(int);
+
};
-
#endif // _KVI_TAL_POPUPMENU_H_
diff --git a/src/modules/editor/scripteditor.cpp b/src/modules/editor/scripteditor.cpp
index b431b731f..107dc1a46 100644
--- a/src/modules/editor/scripteditor.cpp
+++ b/src/modules/editor/scripteditor.cpp
@@ -38,9 +38,12 @@
#include "kvi_iconmanager.h"
#include "kvi_kvs_kernel.h"
#include <kvi_tal_groupbox.h>
-#include "kvi_tal_popupmenu.h"
#include "kvi_tal_scrollview.h"
+//FIXME
+#include <Q3TextEdit>
+#include <Q3PopupMenu>
+
#include <QLayout>
#include <QToolButton>
#include <QMessageBox>
@@ -51,6 +54,7 @@
#include <QEvent>
#include <QKeyEvent>
+
extern KviPointerList<KviScriptEditorImplementation> * g_pScriptEditorWindowList;
extern KviModule * g_pEditorModulePointer;