diff options
| author | 2011-04-28 16:21:09 +0000 | |
|---|---|---|
| committer | 2011-04-28 16:21:09 +0000 | |
| commit | 6ef086201df1e347590198f843c87ce320453176 (patch) | |
| tree | 0846f136ec43f7ef5b91b3734e94462a60afa989 /src/modules/objects/KvsObject_widget.cpp | |
| parent | Added alpha component in color options (diff) | |
| download | KVIrc-6ef086201df1e347590198f843c87ce320453176.tar.gz KVIrc-6ef086201df1e347590198f843c87ce320453176.tar.bz2 KVIrc-6ef086201df1e347590198f843c87ce320453176.zip | |
Code improvements in kvs classes
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5805 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/KvsObject_widget.cpp')
| -rw-r--r-- | src/modules/objects/KvsObject_widget.cpp | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/src/modules/objects/KvsObject_widget.cpp b/src/modules/objects/KvsObject_widget.cpp index 0d1550e9e..2a2cfe588 100644 --- a/src/modules/objects/KvsObject_widget.cpp +++ b/src/modules/objects/KvsObject_widget.cpp @@ -37,6 +37,7 @@ #include "KviStatusBar.h" #include "KvsObject_painter.h" + #include <QKeyEvent> #include <QDesktopWidget> #include <QWidget> @@ -683,7 +684,7 @@ KVSO_BEGIN_REGISTERCLASS(KvsObject_widget,"widget","object") KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget,colorPalette) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget,setStyleSheet) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget,setKeyShortcut) - +KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget,grab) // statusbar KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget,insertIntoStatusBar) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_widget,removeFromStatusBar) @@ -720,7 +721,15 @@ KVSO_END_CONSTRUCTOR(KvsObject_widget) bool KvsObject_widget::init(KviKvsRunTimeContext *c,KviKvsVariantList *) { setObject(new KviKvsWidget(this,parentScriptWidget())); - m_pContext=c; + //qDebug("abc"); + /*QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect(widget()); + effect->setColor(QColor(0, 0, 0, 255)); + effect->setBlurRadius(20); + widget()->setGraphicsEffect(effect); + if (!widget()->graphicsEffect()) qDebug("non settato"); + else qDebug("settato"); + */ + m_pContext=c; widget()->setObjectName(getName()); return true; } @@ -1990,8 +1999,7 @@ KVSO_CLASS_FUNCTION(widget,setKeyShortcut) KVSO_CLASS_FUNCTION(widget,insertIntoStatusBar) { CHECK_INTERNAL_POINTER(widget()) - qDebug("instertinto"); - if (g_pMainWindow->mainStatusBar()) + if (g_pMainWindow->mainStatusBar()) g_pMainWindow->mainStatusBar()->insertPermanentWidgetAtTheEnd(widget(),0); return true; } @@ -2002,6 +2010,39 @@ KVSO_CLASS_FUNCTION(widget,removeFromStatusBar) g_pMainWindow->statusBar()->removeWidget(widget()); return true; } +KVSO_CLASS_FUNCTION(widget,grab) +{ + qDebug("Grab"); + CHECK_INTERNAL_POINTER(widget()) + KviKvsObject *ob; + kvs_hobject_t hObject; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("widget",KVS_PT_HOBJECT,0,hObject) + KVSO_PARAMETERS_END(c) + qDebug("Get widget"); + ob=KviKvsKernel::instance()->objectController()->lookupObject(hObject); + if (!ob) + { + c->warning(__tr2qs_ctx("Widget parameter is not an object","objects")); + return true; + } + qDebug("check widgetype"); + if(!ob->object()->isWidgetType()) + { + c->warning(__tr2qs_ctx("Widget object required","objects")); + return true; + } + + QPixmap *pPixmap=new QPixmap(); + qDebug("grabbing"); + *pPixmap=QPixmap::grabWidget(((QWidget *)(ob->object()))); + KviKvsObjectClass * pClass = KviKvsKernel::instance()->objectController()->lookupClass("pixmap"); + KviKvsVariantList params; + KviKvsObject * pObject = pClass->allocateInstance(0,"internalpixmap",c->context(),¶ms); + ((KvsObject_pixmap *)pObject)->setInternalPixmap(pPixmap); + c->returnValue()->setHObject(pObject->handle()); + return true; +} #ifndef COMPILE_USE_STANDALONE_MOC_SOURCES |
