From fe56b832d8781db11911b778630d344bcc834145 Mon Sep 17 00:00:00 2001 From: deva Date: Wed, 18 Mar 2009 14:03:58 +0000 Subject: Made combobox show its background (red on invalid) even when running with plastique style. --- client/widgets/combobox.cc | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) (limited to 'client/widgets/combobox.cc') 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 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); +} -- cgit v1.2.3