aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/objects/class_tablewidget.cpp3
-rw-r--r--src/modules/objects/class_treewidgetitem.cpp2
-rw-r--r--src/modules/objects/class_widget.cpp29
-rw-r--r--src/modules/objects/class_widget.h4
-rw-r--r--src/modules/objects/class_wrapper.cpp3
-rw-r--r--src/modules/objects/libkviobjects.cpp6
6 files changed, 30 insertions, 17 deletions
diff --git a/src/modules/objects/class_tablewidget.cpp b/src/modules/objects/class_tablewidget.cpp
index 51fbcf3bc..1d4bfa015 100644
--- a/src/modules/objects/class_tablewidget.cpp
+++ b/src/modules/objects/class_tablewidget.cpp
@@ -525,7 +525,8 @@ bool KviKvsObject_tablewidget::paint(QPainter * p, const QStyleOptionViewItem &
bool ret=false;
KviKvsVariant *retv=new KviKvsVariant(ret);
callFunction(this,"paintCellEvent",retv,&parameters);
- pObject->dieNow();
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(handle);
+ if (pObject) pObject->dieNow();
p->restore();
return retv->asBoolean();
}
diff --git a/src/modules/objects/class_treewidgetitem.cpp b/src/modules/objects/class_treewidgetitem.cpp
index e13b318db..02e657261 100644
--- a/src/modules/objects/class_treewidgetitem.cpp
+++ b/src/modules/objects/class_treewidgetitem.cpp
@@ -30,6 +30,7 @@
#include "kvi_debug.h"
#include "kvi_locale.h"
#include "kvi_iconmanager.h"
+#include <QIcon>
const int item_flags[] = {
Qt::NoItemFlags,
@@ -434,6 +435,7 @@ KVSO_CLASS_FUNCTION(treewidgetitem,setPixmap)
KVSO_PARAMETER("pixmap",KVS_PT_VARIANT,0,vPixmap)
KVSO_PARAMETERS_END(c)
QPixmap *pix = 0;
+ if (vPixmap->isEmpty()) {m_pTreeWidgetItem->setIcon(uCol,QIcon());return true;}
if(vPixmap->isHObject())
{
vPixmap->asHObject(obHpixmap);
diff --git a/src/modules/objects/class_widget.cpp b/src/modules/objects/class_widget.cpp
index 9a5c4834f..1876e2a6c 100644
--- a/src/modules/objects/class_widget.cpp
+++ b/src/modules/objects/class_widget.cpp
@@ -35,7 +35,7 @@
#include "kvi_app.h"
#include "kvi_frame.h"
#include "kvi_statusbar.h"
-
+#include "class_painter.h"
#include <QKeyEvent>
#include <QDesktopWidget>
@@ -389,10 +389,11 @@ const Qt::WindowType widgettypes_cod[] = {
This function is called immediately after this widget has been moved.
If you call "[cmd]return[/cmd] $true" you will stop the internal processing
of this event. The default implementation does nothing.
- !fn: $paintEvent()
+ !fn: $paintEvent(<painter:h_object>,<rect_x:integer>,<rect_y:integer>,<width:integer>,<height:integer>)
This event handler can be reimplemented to repaint all or part of the widget.
It's needed by the Painter class.
It's very useful for drawing flicker free animations or low level special graphic effects.
+ The frameworl will pass an
If you call "[cmd]return[/cmd] $true" you will stop the internal processing
of this event.
The default implementation does nothing.
@@ -679,7 +680,7 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_widget,"widget","object")
KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_widget,addWidgetToWrappedLayout)
// colors and image
- KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_widget,setPaletteForeground)
+ KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_widget,setForegroundColor)
KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_widget,setBackgroundColor)
KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_widget,setBackgroundImage)
KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_widget,backgroundColor)
@@ -726,9 +727,11 @@ emit aboutToDie();
// if (webview) delete webview;
KVSO_END_CONSTRUCTOR(KviKvsObject_widget)
-bool KviKvsObject_widget::init(KviKvsRunTimeContext *,KviKvsVariantList *)
+bool KviKvsObject_widget::init(KviKvsRunTimeContext *c,KviKvsVariantList *)
{
setObject(new KviKvsWidget(this,parentScriptWidget()));
+ m_pContext=c;
+
widget()->setObjectName(getName());
return true;
}
@@ -765,9 +768,19 @@ bool KviKvsObject_widget::eventFilter(QObject *o,QEvent *e)
}
case QEvent::Paint:
{
- QRect rect=((QPaintEvent *)e)->rect();
- KviKvsVariantList params(new KviKvsVariant((kvs_int_t)rect.x()),new KviKvsVariant((kvs_int_t)rect.y()),new KviKvsVariant((kvs_int_t)rect.width()),new KviKvsVariant((kvs_int_t)rect.height()));
- callFunction(this,"paintEvent",retv,&params);
+
+ QRect rect=((QPaintEvent *)e)->rect();
+ KviKvsObjectClass * pClass = KviKvsKernel::instance()->objectController()->lookupClass("painter");
+ KviKvsVariantList params;
+ KviKvsObject * pObject = pClass->allocateInstance(0,"internalpainter",m_pContext,&params);
+ QPainter p(widget());
+ ((KviKvsObject_painter *)pObject)->setInternalPainter(&p);
+ p.setClipRect(rect);
+ kvs_hobject_t hobj=pObject->handle();
+ KviKvsVariantList params2(new KviKvsVariant(hobj),new KviKvsVariant((kvs_int_t)rect.x()),new KviKvsVariant((kvs_int_t)rect.y()),new KviKvsVariant((kvs_int_t)rect.width()),new KviKvsVariant((kvs_int_t)rect.height()));
+ callFunction(this,"paintEvent",retv,&params2);
+ pObject=KviKvsKernel::instance()->objectController()->lookupObject(hobj);
+ if (pObject) pObject->dieNow();
break;
}
@@ -1195,7 +1208,7 @@ KVSO_CLASS_FUNCTION(widget,centerToScreen)
return true;
}
-KVSO_CLASS_FUNCTION(widget,setPaletteForeground)
+KVSO_CLASS_FUNCTION(widget,setForegroundColor)
{
CHECK_INTERNAL_POINTER(widget())
KviKvsVariant * pColArray;
diff --git a/src/modules/objects/class_widget.h b/src/modules/objects/class_widget.h
index 20aaaf23e..c114c8b77 100644
--- a/src/modules/objects/class_widget.h
+++ b/src/modules/objects/class_widget.h
@@ -50,7 +50,7 @@ protected:
QWebView * m_pWebview;
#endif
virtual bool eventFilter(QObject *o,QEvent *e);
-
+ KviKvsRunTimeContext *m_pContext;
// ok, it is clear that we're messing with the naming conventions for the
// object classes :D
// let's try to use this one:
@@ -107,7 +107,7 @@ protected:
bool setMinimumHeight(KviKvsObjectFunctionCall *c);
bool setMinimumWidth(KviKvsObjectFunctionCall *c);
bool setMouseTracking(KviKvsObjectFunctionCall *c);
- bool setPaletteForeground(KviKvsObjectFunctionCall *c);
+ bool setForegroundColor(KviKvsObjectFunctionCall *c);
bool setStyleSheet(KviKvsObjectFunctionCall *c);
bool setToolTip(KviKvsObjectFunctionCall *);
bool setWindowIcon(KviKvsObjectFunctionCall *c);
diff --git a/src/modules/objects/class_wrapper.cpp b/src/modules/objects/class_wrapper.cpp
index 2d2b45ee0..546c5c23d 100644
--- a/src/modules/objects/class_wrapper.cpp
+++ b/src/modules/objects/class_wrapper.cpp
@@ -137,9 +137,6 @@ bool KviKvsObject_wrapper::init(KviKvsRunTimeContext * pContext,KviKvsVariantLis
szClass = s;
szName = "";
}
- debug ("szClass %s",szClass.toUtf8().data());
- debug ("szName %s",szName.toUtf8().data());
- debug ("s %s",s.toUtf8().data());
if(KviQString::equalCI(szClass,"WinId"))
{
diff --git a/src/modules/objects/libkviobjects.cpp b/src/modules/objects/libkviobjects.cpp
index 208ee9ed4..7803c69e0 100644
--- a/src/modules/objects/libkviobjects.cpp
+++ b/src/modules/objects/libkviobjects.cpp
@@ -630,12 +630,12 @@ static bool objects_kvs_fnc_listObjects(KviKvsModuleFunctionCall * cmd)
@short:
Dump the kvirc widgets.
@syntax:
- $objects.dump(<flag b>)
+ <array>$objects.dump(<flag b>)
@description:
This function returns the tree of the widgets of the kvirc, if the flag <b> is planned to 1,[br]
- will return it on the currente window, if it' is planned to 0 instead it will return it as a string.[br]
+ will return it on the currente window, if it' is planned to 0 instead it will return it as an array.[br]
ES:
- %A[]=$str.split("\|",$objects.dump(0))
+ %A[]=$objects.dump(0)
%i=0
while (%i != %A[]#)
{