1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
%{CPP_TEMPLATE}
#include "%{APPNAMELC}.h"
#include <kommanderplugin.h>
#include <specials.h>
#include <kglobal.h>
#include <kiconloader.h>
#include <klocale.h>
enum Functions {
FirstFunction = 11001, //CHANGE THIS NUMBE TO AN UNIQUE ONE!!!
Function1,
Function2,
LastFunction
};
%{APPNAME}::%{APPNAME}(QWidget *parent, const char *name)
: QWidget(parent, name), KommanderWidget(this)
{
QStringList states;
states << "default";
setStates(states);
setDisplayStates(states);
//enable the below code to show a different widget in editor
/*
if (KommanderWidget::inEditor)
{
setPixmap(KGlobal::iconLoader()->loadIcon("%{APPNAMELC}", KIcon::NoGroup, KIcon::SizeMedium));
setFrameStyle(QFrame::Box | QFrame::Plain);
setLineWidth(1);
setAlignment(Qt::AlignCenter);
}
else
setHidden(true);
*/
KommanderPlugin::setDefaultGroup(Group::DCOP);
//CHANGE THE BELOW LINES TO MATCH YOUR FUNCTIONS NAMES AND SIGNATURE
KommanderPlugin::registerFunction(Function1, "function1(QString widget, QString arg1, int arg2)", i18n("Call function1 with two arguments, second is optional."), 2, 3);
KommanderPlugin::registerFunction(Function2, "function2(QString widget)", i18n("Get a QString as a result of function2."), 1);
}
%{APPNAME}::~%{APPNAME}()
{
}
QString %{APPNAME}::currentState() const
{
return QString("default");
}
bool %{APPNAME}::isKommanderWidget() const
{
return true;
}
QStringList %{APPNAME}::associatedText() const
{
return KommanderWidget::associatedText();
}
void %{APPNAME}::setAssociatedText(const QStringList& a_atext)
{
KommanderWidget::setAssociatedText(a_atext);
}
void %{APPNAME}::setPopulationText(const QString& a_text)
{
KommanderWidget::setPopulationText(a_text);
}
QString %{APPNAME}::populationText() const
{
return KommanderWidget::populationText();
}
void %{APPNAME}::populate()
{
KommanderWidget::evalAssociatedText(populationText());
}
void %{APPNAME}::contextMenuEvent( QContextMenuEvent * e )
{
e->accept();
QPoint p = e->globalPos();
emit contextMenuRequested(p.x(), p.y());
}
bool %{APPNAME}::isFunctionSupported(int f)
{
return (f >= FirstFunction && f <= LastFunction); //see specials.h for other DCOP functions you might want to support
}
QString %{APPNAME}::handleDCOP(int function, const QStringList& args)
{
switch (function)
{
case Function1:
//do something for Function1, like handleFunction1(arg[0], arg[1].toInt());
break;
case Function2:
//do something for Function2, like return handleFunction2();
break;
default:
return KommanderWidget::handleDCOP(function, args);
}
return QString::null;
}
#include "%{APPNAMELC}.moc"
|