aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/class_widget.cpp
diff options
context:
space:
mode:
authorGravatar Noldor2008-11-12 17:11:05 +0000
committerGravatar Noldor2008-11-12 17:11:05 +0000
commite9bdaa29e39de374d65bfb6555f191050fb6463d (patch)
tree1bd885aa0b71927bbf515b9cc1fc21f76f583e2d /src/modules/objects/class_widget.cpp
parentfixed a typo in kvs documentation (diff)
downloadKVIrc-e9bdaa29e39de374d65bfb6555f191050fb6463d.tar.gz
KVIrc-e9bdaa29e39de374d65bfb6555f191050fb6463d.tar.bz2
KVIrc-e9bdaa29e39de374d65bfb6555f191050fb6463d.zip
some fixes around.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2849 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/class_widget.cpp')
-rw-r--r--src/modules/objects/class_widget.cpp138
1 files changed, 67 insertions, 71 deletions
diff --git a/src/modules/objects/class_widget.cpp b/src/modules/objects/class_widget.cpp
index 2e9583911..f4f95fc0b 100644
--- a/src/modules/objects/class_widget.cpp
+++ b/src/modules/objects/class_widget.cpp
@@ -1207,19 +1207,7 @@ bool KviKvsObject_widget::function_setPaletteForeground(KviKvsObjectFunctionCall
KVSO_PARAMETER("green",KVS_PT_INT,KVS_PF_OPTIONAL,iColG)
KVSO_PARAMETER("blue",KVS_PT_INT,KVS_PF_OPTIONAL,iColB)
KVSO_PARAMETERS_END(c)
-
- if(pColArray->isString())
- {
- QString szColor;
- pColArray->asString(szColor);
- if (widget())
- {
- QPalette p = widget()->palette();
- p.setColor(widget()->foregroundRole(), QColor(szColor));
- widget()->setPalette(p);
- }
- return true;
- }
+
if(pColArray->isArray())
{
if(pColArray->array()->size() < 3)
@@ -1245,40 +1233,42 @@ bool KviKvsObject_widget::function_setPaletteForeground(KviKvsObjectFunctionCall
}
else
{
+ QColor color;
if (c->params()->count()==1)
{
- bool bOk,bOk1,bOk2;
- QString value;
- pColArray->asString(value);
- if (value.length()!=6)
- {
- c->warning(__tr2qs("A string of 6 hex digits is required"));
- return true;
- }
- QString buffer(value.mid(0,2));
- iColR=buffer.toInt(&bOk,16);
- buffer=value.mid(2,2);
- iColG=buffer.toInt(&bOk1,16);
- buffer=value.mid(4,2);
- iColB=buffer.toInt(&bOk2,16);
- if (!bOk || !bOk1 || !bOk2)
- {
- c->warning(__tr2qs("Not an hex digit"));
- return true;
- }
- if (widget())
- {
- QPalette p = widget()->palette();
- p.setColor(widget()->foregroundRole(), QColor(iColR,iColG,iColB));
- widget()->setPalette(p);
- return true;
- }
+ if(pColArray->isString())
+ {
+ QString szColor;
+ pColArray->asString(szColor);
+ // maybe a color name?
+ color.setNamedColor(szColor);
+ if (!color.isValid())
+ {
+ // itsn't a color name: let try with an hex triplette
+ color.setNamedColor("#"+szColor);
+ if (!color.isValid())
+ {
+ c->warning(__tr2qs("Not a valid color !"));
+ return true;
+ }
+ }
+ }
+ else {
+ c->warning(__tr2qs("Not a valid color !"));
+ return true;
+ }
+ if (widget())
+ {
+ QPalette p = widget()->palette();
+ p.setColor(widget()->foregroundRole(), color);
+ widget()->setPalette(p);
+ return true;
+ }
}
if(c->params()->count() < 3)
{
-
- c->error(__tr2qs("$setForegroundColor requires either an array as first parameter, one hex string or three integers"));
+ c->error(__tr2qs("$setForegroundColor requires either an array as first parameter, one hex string or color name, or three integers"));
return false;
}
if(!pColArray->asInteger(iColR))
@@ -1304,7 +1294,7 @@ bool KviKvsObject_widget::function_setBackgroundColor(KviKvsObjectFunctionCall *
kvs_int_t iColR,iColG,iColB;
KVSO_PARAMETERS_BEGIN(c)
- KVSO_PARAMETER("hex_rgb_array_or_red",KVS_PT_VARIANT,0,pColArray)
+ KVSO_PARAMETER("name_hex_rgb_array_or_red",KVS_PT_VARIANT,0,pColArray)
KVSO_PARAMETER("green",KVS_PT_INT,KVS_PF_OPTIONAL,iColG)
KVSO_PARAMETER("blue",KVS_PT_INT,KVS_PF_OPTIONAL,iColB)
KVSO_PARAMETERS_END(c)
@@ -1325,46 +1315,51 @@ bool KviKvsObject_widget::function_setBackgroundColor(KviKvsObjectFunctionCall *
c->error(__tr2qs("One of the colors array parameters is empty"));
return false;
}
+
if(!(pColR->asInteger(iColR) && pColG->asInteger(iColG) && pColB->asInteger(iColB)))
{
c->error(__tr2qs("One of the colors array parameters didn't evaluate to an integer"));
return false;
}
- } else {
+ }
+ else
+ {
+ QColor color;
if (c->params()->count()==1)
{
- bool bOk,bOk1,bOk2;
- QString value;
- pColArray->asString(value);
- if (value.length()!=6)
- {
- c->warning(__tr2qs("A string of 6 hex digits is required"));
- return true;
- }
- QString buffer(value.mid(0,2));
- iColR=buffer.toInt(&bOk,16);
- buffer=value.mid(2,2);
- iColG=buffer.toInt(&bOk1,16);
- buffer=value.mid(4,2);
- iColB=buffer.toInt(&bOk2,16);
- if (!bOk || !bOk1 || !bOk2)
- {
- c->warning(__tr2qs("Not an hex digit"));
- return true;
- }
- if (widget())
- {
- QPalette p = widget()->palette();
- p.setColor(widget()->backgroundRole(), QColor(iColR,iColG,iColB));
- widget()->setPalette(p);
- }
- return true;
+ if(pColArray->isString())
+ {
+ QString szColor;
+ pColArray->asString(szColor);
+ // maybe a color name?
+ color.setNamedColor(szColor);
+ if (!color.isValid())
+ {
+ // itsn't a color name: let try with an hex triplette
+ color.setNamedColor("#"+szColor);
+ if (!color.isValid())
+ {
+ c->warning(__tr2qs("Not a valid color !"));
+ return true;
+ }
+ }
+ }
+ else {
+ c->warning(__tr2qs("Not a valid color !"));
+ return true;
+ }
+ if (widget())
+ {
+ QPalette p = widget()->palette();
+ p.setColor(widget()->backgroundRole(), color);
+ widget()->setPalette(p);
+ return true;
+ }
}
if(c->params()->count() < 3)
{
-
- c->error(__tr2qs("$setBackgroundColor requires either an array as first parameter, one hex string or three integers"));
+ c->error(__tr2qs("$setBackgroundColor requires either an array as first parameter, one hex string or color name, or three integers"));
return false;
}
if(!pColArray->asInteger(iColR))
@@ -1373,6 +1368,7 @@ bool KviKvsObject_widget::function_setBackgroundColor(KviKvsObjectFunctionCall *
return false;
}
}
+
if (widget())
{
QPalette p = widget()->palette();