From 28e69b02f5df21a67e62a4821b8206094bcb8c1e Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Sun, 13 Jun 2010 14:26:45 +0000 Subject: Fix for a crash in the objects module git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4456 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/objects/class_button.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src/modules/objects/class_button.cpp') diff --git a/src/modules/objects/class_button.cpp b/src/modules/objects/class_button.cpp index ca5c29911..f686c0187 100644 --- a/src/modules/objects/class_button.cpp +++ b/src/modules/objects/class_button.cpp @@ -116,15 +116,20 @@ KVSO_CLASS_FUNCTION(button,setText) KVSO_CLASS_FUNCTION(button,setImage) { CHECK_INTERNAL_POINTER(widget()) - KviKvsVariant icon; + KviKvsVariant * pIcon; KVSO_PARAMETERS_BEGIN(c) - KVSO_PARAMETER("icon_or_hobject",KVS_PT_VARIANT,0,icon) + KVSO_PARAMETER("icon_or_hobject",KVS_PT_VARIANT,0,pIcon) KVSO_PARAMETERS_END(c) - if(icon.isHObject()) + if(!pIcon) + { + c->warning(__tr2qs_ctx("Image parameter missing","object")); + return true; + } + if(pIcon->isHObject()) { kvs_hobject_t hObj; - icon.asHObject(hObj); - KviKvsObject *pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObj); + pIcon->asHObject(hObj); + KviKvsObject *pObject = KviKvsKernel::instance()->objectController()->lookupObject(hObj); if (!pObject) { c->warning(__tr2qs_ctx("Pixmap parameter is not an object!","objects")); @@ -132,13 +137,12 @@ KVSO_CLASS_FUNCTION(button,setImage) } if(pObject->inheritsClass("pixmap")) ((QPushButton *)widget())->setIcon(QIcon(*((KviKvsObject_pixmap *)pObject)->getPixmap())); - else{ + else c->warning(__tr2qs_ctx("Object Pixmap required!","object")); - } return true; } QString szIcon; - icon.asString(szIcon); + pIcon->asString(szIcon); QPixmap * pix = g_pIconManager->getImage(szIcon); if(pix) ((QPushButton *)widget())->setIcon(*pix); else((QPushButton *)widget())->setIcon(QIcon()); -- cgit v1.3.1-10-gc9f91