summaryrefslogtreecommitdiff
path: root/client/widgets
diff options
context:
space:
mode:
authordeva <deva>2009-03-18 14:03:58 +0000
committerdeva <deva>2009-03-18 14:03:58 +0000
commitfe56b832d8781db11911b778630d344bcc834145 (patch)
tree6b75784b6a66c593461957af2e69925c4cc12028 /client/widgets
parent4696bba0897715cb79eb75fcb14169964e1562e2 (diff)
Made combobox show its background (red on invalid) even when running with plastique style.
Diffstat (limited to 'client/widgets')
-rw-r--r--client/widgets/combobox.cc38
-rw-r--r--client/widgets/combobox.h2
-rw-r--r--client/widgets/widget.cc2
3 files changed, 32 insertions, 10 deletions
diff --git a/client/widgets/combobox.cc b/client/widgets/combobox.cc
index 2818db3..c4a7f13 100644
--- a/client/widgets/combobox.cc
+++ b/client/widgets/combobox.cc
@@ -33,11 +33,24 @@
#include "common.h"
+// Enable this to make the combobox drawn in windows style.
+// This will make its background red even when not expanded.
+//#define STYLE_HACK
+
+#ifdef STYLE_HACK
+#include <QWindowsStyle>
+QWindowsStyle s;
+#endif/*STYLE_HACK*/
+
ComboBox::ComboBox(QDomNode &node, MacroWindow *macrowindow)
: QComboBox(), Widget(node, macrowindow)
{
setCommonAttributes(this, node);
+#ifdef STYLE_HACK
+ setStyle(&s);
+#endif/*STYLE_HACK*/
+
setInsertPolicy(QComboBox::InsertAlphabetically);
QDomNodeList children = node.childNodes();
@@ -70,6 +83,12 @@ ComboBox::ComboBox(QDomNode &node, MacroWindow *macrowindow)
case SELECT:
setEditable(false);
+#ifndef STYLE_HACK
+ setEditable(true);
+ lineEdit()->setReadOnly(true);
+ lineEdit()->installEventFilter(this);
+#endif/*STYLE_HACK*/
+
connect(this, SIGNAL(currentIndexChanged(QString)), this, SLOT(changed()));
break;
@@ -190,14 +209,6 @@ void ComboBox::connectTo(const QObject *sender, const char *signal,
connect(sender, signal, this, method);
}
-/*
-bool ComboBox::eventFilter(QObject *, QEvent *event)
-{
- if (event->type() == QEvent::KeyPress) emit wasChanged();
- return false;
-}
-*/
-
bool ComboBox::setKeyboardFocus()
{
setFocus();
@@ -208,3 +219,14 @@ void ComboBox::setVisibility(bool visible)
{
setVisible(visible);
}
+
+bool ComboBox::eventFilter(QObject *obj, QEvent *event)
+{
+ if(combotype == SELECT) {
+ if(event->type() == QEvent::MouseButtonRelease) {
+ showPopup();
+ }
+ }
+
+ return QObject::eventFilter(obj, event);
+}
diff --git a/client/widgets/combobox.h b/client/widgets/combobox.h
index 922d51d..af48ba5 100644
--- a/client/widgets/combobox.h
+++ b/client/widgets/combobox.h
@@ -69,7 +69,7 @@ signals:
void wasChanged();
protected:
- // bool eventFilter(QObject *, QEvent *event);
+ bool eventFilter(QObject *obj, QEvent *event);
private:
QRegExp rx;
diff --git a/client/widgets/widget.cc b/client/widgets/widget.cc
index 870fc4b..42db8f6 100644
--- a/client/widgets/widget.cc
+++ b/client/widgets/widget.cc
@@ -79,7 +79,7 @@ bool Widget::regexpValidator()
}
bool Widget::luaValidator()
-{
+{
if(!hasluaprogram) return true;
if(macrowindow->luaprograms.contains(luaprogram) == false) return false;