aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2010-06-13 14:26:45 +0000
committerGravatar Szymon Tomasz Stefanek2010-06-13 14:26:45 +0000
commit28e69b02f5df21a67e62a4821b8206094bcb8c1e (patch)
treef5cb4dccbc735591256c2063d6166cde10746b8b
parentDisabling kerning on macosx wont work. We'll possibly need to rethink some Kv... (diff)
downloadKVIrc-28e69b02f5df21a67e62a4821b8206094bcb8c1e.tar.gz
KVIrc-28e69b02f5df21a67e62a4821b8206094bcb8c1e.tar.bz2
KVIrc-28e69b02f5df21a67e62a4821b8206094bcb8c1e.zip
Fix for a crash in the objects module
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4456 17fca916-40b9-46aa-a4ea-0a15b648b75c
-rw-r--r--src/modules/objects/class_button.cpp20
1 files changed, 12 insertions, 8 deletions
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());