diff options
| author | 2008-04-17 16:10:50 +0000 | |
|---|---|---|
| committer | 2008-04-17 16:10:50 +0000 | |
| commit | 8b3166bb3efbedb5f38102bf55fffcb1e74f9be9 (patch) | |
| tree | de5870b2bfca65ccae00d503e5d9f1862782b341 /src | |
| parent | ported KVS progressbar (completed), popupmenu (wip) (diff) | |
| download | KVIrc-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.vcproj | 2 | ||||
| -rw-r--r-- | src/kvilib/tal/kvi_tal_popupmenu.cpp | 146 | ||||
| -rw-r--r-- | src/kvilib/tal/kvi_tal_popupmenu.h | 82 | ||||
| -rw-r--r-- | src/modules/editor/scripteditor.cpp | 6 |
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 "$(InputDir)\$(InputName).moc" "$(InputDir)\$(InputFileName)""
+ 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; |
