diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvirc/ui/kvi_mdichild.cpp | 2 | ||||
| -rw-r--r-- | src/modules/objects/class_tablewidget.cpp | 3 | ||||
| -rw-r--r-- | src/modules/objects/class_treewidgetitem.cpp | 2 | ||||
| -rw-r--r-- | src/modules/objects/class_widget.cpp | 29 | ||||
| -rw-r--r-- | src/modules/objects/class_widget.h | 4 | ||||
| -rw-r--r-- | src/modules/objects/class_wrapper.cpp | 3 | ||||
| -rw-r--r-- | src/modules/objects/libkviobjects.cpp | 6 |
7 files changed, 31 insertions, 18 deletions
diff --git a/src/kvirc/ui/kvi_mdichild.cpp b/src/kvirc/ui/kvi_mdichild.cpp index 326fc460e..1ae8aad95 100644 --- a/src/kvirc/ui/kvi_mdichild.cpp +++ b/src/kvirc/ui/kvi_mdichild.cpp @@ -49,7 +49,7 @@ #endif KviMdiChild::KviMdiChild(KviMdiManager * par, const char * name) -: QMdiSubWindow() +: QMdiSubWindow(par) { setObjectName(name ? name : "mdi_child"); 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,¶meters); - 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,¶ms); + + QRect rect=((QPaintEvent *)e)->rect(); + KviKvsObjectClass * pClass = KviKvsKernel::instance()->objectController()->lookupClass("painter"); + KviKvsVariantList params; + KviKvsObject * pObject = pClass->allocateInstance(0,"internalpainter",m_pContext,¶ms); + 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,¶ms2); + 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[]#) { |
