Rename theme engine from SimpleStyle

Fix drawing glitches in menus and tabbars
r14.0.x
Timothy Pearson 13 years ago
parent 2d9dac868d
commit bd425eca72

@ -694,7 +694,7 @@ static QString TDEFileDialogSelectDirectory(QWidget *parent, const QString &capt
#define NO_QT3_EQUIVALENT can_override = false; #define NO_QT3_EQUIVALENT can_override = false;
#define DO_NOT_DRAW can_override = true; do_not_draw = true; #define DO_NOT_DRAW can_override = true; do_not_draw = true;
SimpleStyle::SimpleStyle() Qt4TDEStyle::Qt4TDEStyle()
{ {
m_previousQt4InterfaceWidget = 0; m_previousQt4InterfaceWidget = 0;
m_previousTQt3InterfaceWidget = 0; m_previousTQt3InterfaceWidget = 0;
@ -709,9 +709,9 @@ SimpleStyle::SimpleStyle()
// Supply it with fake data to keep KApplication happy // Supply it with fake data to keep KApplication happy
argv = (char**) malloc(sizeof(char*)); argv = (char**) malloc(sizeof(char*));
argv[0] = (char*) malloc(sizeof(char) * 19); argv[0] = (char*) malloc(sizeof(char) * 19);
strncpy(argv[0], "SimpleStyle", 19); strncpy(argv[0], "Qt4TDEStyle", 19);
m_aboutData = new KAboutData("SimpleStyle", I18N_NOOP(convertQt4ToTQt3String(qApp->applicationName())), "v0.1", m_aboutData = new KAboutData("Qt4TDEStyle", I18N_NOOP(convertQt4ToTQt3String(qApp->applicationName())), "v0.1",
"TDE Qt4 theme engine", KAboutData::License_GPL, "TDE Qt4 theme engine", KAboutData::License_GPL,
"(c) 2012, Timothy Pearson", "(c) 2012, Timothy Pearson",
"message goes here", 0 /* TODO: Website */, "kb9vqf@pearsoncomputing.net"); "message goes here", 0 /* TODO: Website */, "kb9vqf@pearsoncomputing.net");
@ -805,7 +805,7 @@ SimpleStyle::SimpleStyle()
#endif // INTEGRATE_WITH_TDE #endif // INTEGRATE_WITH_TDE
} }
SimpleStyle::~SimpleStyle() Qt4TDEStyle::~Qt4TDEStyle()
{ {
// delete tqApp; // delete tqApp;
@ -835,14 +835,14 @@ SimpleStyle::~SimpleStyle()
delete m_aboutData; delete m_aboutData;
} }
void SimpleStyle::polish(QPalette &palette) void Qt4TDEStyle::polish(QPalette &palette)
{ {
// FIXME // FIXME
// Figure out some way to polish the Qt4 widgets with the Qt3 polish method // Figure out some way to polish the Qt4 widgets with the Qt3 polish method
// This probably involves modifying Qt3 to specify a painter... // This probably involves modifying Qt3 to specify a painter...
} }
void SimpleStyle::polish(QWidget *widget) void Qt4TDEStyle::polish(QWidget *widget)
{ {
// HACK // HACK
// Many TQt3 styles need to be notified when their widgets are moused over // Many TQt3 styles need to be notified when their widgets are moused over
@ -853,18 +853,18 @@ void SimpleStyle::polish(QWidget *widget)
widget->installEventFilter(this); widget->installEventFilter(this);
} }
void SimpleStyle::unpolish(QWidget *widget) void Qt4TDEStyle::unpolish(QWidget *widget)
{ {
// HACK // HACK
// See SimpleStyle::polish // See Qt4TDEStyle::polish
widget->setMouseTracking(false); widget->setMouseTracking(false);
widget->removeEventFilter(this); widget->removeEventFilter(this);
} }
bool SimpleStyle::eventFilter(QObject *obj, QEvent *ev) bool Qt4TDEStyle::eventFilter(QObject *obj, QEvent *ev)
{ {
// HACK // HACK
// See SimpleStyle::polish // See Qt4TDEStyle::polish
if (!obj->isWidgetType() ) { if (!obj->isWidgetType() ) {
return false; return false;
} }
@ -907,7 +907,7 @@ bool SimpleStyle::eventFilter(QObject *obj, QEvent *ev)
return false; return false;
} }
QIcon SimpleStyle::standardIconImplementation(StandardPixmap standardIcon, const QStyleOption* opt, const QWidget* w) const QIcon Qt4TDEStyle::standardIconImplementation(StandardPixmap standardIcon, const QStyleOption* opt, const QWidget* w) const
{ {
QIcon reticon; QIcon reticon;
TQString iconLookupName; TQString iconLookupName;
@ -1147,7 +1147,7 @@ QIcon SimpleStyle::standardIconImplementation(StandardPixmap standardIcon, const
return reticon; return reticon;
} }
int SimpleStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWidget *w, QStyleHintReturn* returnData) const int Qt4TDEStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWidget *w, QStyleHintReturn* returnData) const
{ {
int retval = 0; int retval = 0;
TQWidget* interfaceWidget = 0; TQWidget* interfaceWidget = 0;
@ -1583,7 +1583,7 @@ int SimpleStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWidge
return retval; return retval;
} }
QSize SimpleStyle::sizeFromContents(ContentsType type, const QStyleOption *opt, const QSize &contentsSize, const QWidget *w) const QSize Qt4TDEStyle::sizeFromContents(ContentsType type, const QStyleOption *opt, const QSize &contentsSize, const QWidget *w) const
{ {
int i; int i;
@ -1659,7 +1659,7 @@ QSize SimpleStyle::sizeFromContents(ContentsType type, const QStyleOption *opt,
return retval; return retval;
} }
int SimpleStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QWidget *w ) const int Qt4TDEStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QWidget *w ) const
{ {
int retval = 0; int retval = 0;
TQWidget* interfaceWidget = 0; TQWidget* interfaceWidget = 0;
@ -1907,14 +1907,14 @@ int SimpleStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const
// retval = 0; // retval = 0;
// retswitch = 2; // retswitch = 2;
// break; // break;
// case QStyle::PM_MenuHMargin: case QStyle::PM_MenuHMargin:
// retval = 0; tqt3pixelmetric = TQStyle::PM_PopupMenuFrameHorizontalExtra;
// retswitch = 2; retswitch = 1;
// break; break;
// case QStyle::PM_MenuVMargin: case QStyle::PM_MenuVMargin:
// retval = 0; tqt3pixelmetric = TQStyle::PM_PopupMenuFrameVerticalExtra;
// retswitch = 2; retswitch = 1;
// break; break;
// case QStyle::PM_MenuScrollerHeight: // case QStyle::PM_MenuScrollerHeight:
// tqt3pixelmetric = TQStyle::PM_MenuScrollerHeight; // tqt3pixelmetric = TQStyle::PM_MenuScrollerHeight;
// retswitch = 1; // retswitch = 1;
@ -2053,7 +2053,7 @@ int SimpleStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const
return retval; return retval;
} }
TQWidget* SimpleStyle::initializeInterfaceWidget(TQt3WidgetType wt, const QWidget* w, const QStyleOption* qt4styleoptions) const TQWidget* Qt4TDEStyle::initializeInterfaceWidget(TQt3WidgetType wt, const QWidget* w, const QStyleOption* qt4styleoptions) const
{ {
int i; int i;
TQWidget* interfaceWidget = 0; TQWidget* interfaceWidget = 0;
@ -2114,8 +2114,8 @@ TQWidget* SimpleStyle::initializeInterfaceWidget(TQt3WidgetType wt, const QWidge
m_tqt3tabbar_widget->setGeometry(0, 0, qt4tabbar_widget->width(), qt4tabbar_widget->height()); m_tqt3tabbar_widget->setGeometry(0, 0, qt4tabbar_widget->width(), qt4tabbar_widget->height());
m_tqt3tabbar_widget->setEnabled(qt4tabbar_widget->isEnabled()); m_tqt3tabbar_widget->setEnabled(qt4tabbar_widget->isEnabled());
// Clear out tabbar // Clear out tabbar
for (i=0;i<m_tqt3tabbar_widget->count();i++) { while (m_tqt3tabbar_widget->count() > 0) {
m_tqt3tabbar_widget->removeTab(m_tqt3tabbar_widget->tabAt(i)); m_tqt3tabbar_widget->removeTab(m_tqt3tabbar_widget->tabAt(0));
} }
// Copy over all tabs // Copy over all tabs
for (i=0;i<qt4tabbar_widget->count();i++) { for (i=0;i<qt4tabbar_widget->count();i++) {
@ -2219,9 +2219,14 @@ TQWidget* SimpleStyle::initializeInterfaceWidget(TQt3WidgetType wt, const QWidge
m_tqt3popupmenu_widget->setItemEnabled(i, currentAction->isEnabled()); m_tqt3popupmenu_widget->setItemEnabled(i, currentAction->isEnabled());
m_tqt3popupmenu_widget->setItemChecked(i, currentAction->isChecked()); m_tqt3popupmenu_widget->setItemChecked(i, currentAction->isChecked());
m_tqt3popupmenu_widget->setItemVisible(i, currentAction->isVisible()); m_tqt3popupmenu_widget->setItemVisible(i, currentAction->isVisible());
if (currentAction->isCheckable()) {
// FIXME
// It seems that all menus under TQt3 are checkable
// VERIFY THIS
m_tqt3popupmenu_widget->setCheckable(true); m_tqt3popupmenu_widget->setCheckable(true);
} // if (currentAction->isCheckable()) {
// m_tqt3popupmenu_widget->setCheckable(true);
// }
} }
} }
break; break;
@ -2329,13 +2334,13 @@ TQWidget* SimpleStyle::initializeInterfaceWidget(TQt3WidgetType wt, const QWidge
// Copy over all widget attributes // Copy over all widget attributes
qt4spinbox_widget = dynamic_cast<const QSpinBox*>(w); qt4spinbox_widget = dynamic_cast<const QSpinBox*>(w);
if (qt4spinbox_widget) { if (qt4spinbox_widget) {
m_tqt3spinbox_widget->setGeometry(0, 0, qt4spinbox_widget->width(), qt4spinbox_widget->height()); m_tqt3spinwidget_widget->setGeometry(0, 0, qt4spinbox_widget->width(), qt4spinbox_widget->height());
m_tqt3spinbox_widget->setEnabled(qt4spinbox_widget->isEnabled()); m_tqt3spinwidget_widget->setEnabled(qt4spinbox_widget->isEnabled());
// FIXME // FIXME
// m_tqt3spinbox_widget->setMinValue(qt4spinbox_widget->minimum()); // m_tqt3spinwidget_widget->setMinValue(qt4spinbox_widget->minimum());
// m_tqt3spinbox_widget->setMaxValue(qt4spinbox_widget->maximum()); // m_tqt3spinwidget_widget->setMaxValue(qt4spinbox_widget->maximum());
// m_tqt3spinbox_widget->setLineStep(qt4spinbox_widget->singleStep()); // m_tqt3spinwidget_widget->setLineStep(qt4spinbox_widget->singleStep());
// m_tqt3spinbox_widget->setValue(qt4spinbox_widget->value()); // m_tqt3spinwidget_widget->setValue(qt4spinbox_widget->value());
} }
else { else {
if (enable_debug_warnings) { if (enable_debug_warnings) {
@ -2392,7 +2397,7 @@ TQWidget* SimpleStyle::initializeInterfaceWidget(TQt3WidgetType wt, const QWidge
return interfaceWidget; return interfaceWidget;
} }
QRect SimpleStyle::subElementRect(SubElement element, const QStyleOption *opt, const QWidget *w) const QRect Qt4TDEStyle::subElementRect(SubElement element, const QStyleOption *opt, const QWidget *w) const
{ {
TQStyle::SFlags sflags = 0; TQStyle::SFlags sflags = 0;
@ -2435,7 +2440,7 @@ QRect SimpleStyle::subElementRect(SubElement element, const QStyleOption *opt, c
return retRect; return retRect;
} }
void SimpleStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *opt, QPainter *p, const QWidget *w) const void Qt4TDEStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *opt, QPainter *p, const QWidget *w) const
{ {
TQStyle::SFlags sflags = 0; TQStyle::SFlags sflags = 0;
@ -2467,6 +2472,7 @@ void SimpleStyle::drawComplexControl(ComplexControl control, const QStyleOptionC
} }
const QStyleOptionTitleBar* tbopt; const QStyleOptionTitleBar* tbopt;
const QStyleOptionSpinBox* sbopt;
bool drawCloseButton; bool drawCloseButton;
bool drawMaxButton; bool drawMaxButton;
bool drawMinButton; bool drawMinButton;
@ -2499,10 +2505,23 @@ void SimpleStyle::drawComplexControl(ComplexControl control, const QStyleOptionC
break; break;
case CC_SpinBox: case CC_SpinBox:
tqtCC = TQStyle::CC_SpinWidget; tqtCC = TQStyle::CC_SpinWidget;
interfaceWidget = initializeInterfaceWidget(TQT3WT_TQSpinWidget, w); interfaceWidget = initializeInterfaceWidget(TQT3WT_TQSpinWidget, w, opt);
if (interfaceWidget == 0) { if (interfaceWidget == 0) {
can_override = false; can_override = false;
} }
// Draw the correct subcontrol(s)
sbopt = static_cast<const QStyleOptionSpinBox*>(opt);
subControl = 0;
if ((sbopt->subControls & QStyle::SC_SpinBoxUp) || (sbopt->subControls & QStyle::SC_SpinBoxDown)) {
subControl = subControl | TQStyle::SC_SpinWidgetButtonField;
}
if (sbopt->subControls & QStyle::SC_SpinBoxEditField) {
subControl = subControl | TQStyle::SC_SpinWidgetFrame;
}
if (sbopt->subControls & QStyle::SC_SpinBoxFrame) {
subControl = subControl | TQStyle::SC_SpinWidgetFrame;
}
break; break;
case CC_TitleBar: case CC_TitleBar:
tqtCC = TQStyle::CC_TitleBar; tqtCC = TQStyle::CC_TitleBar;
@ -2678,7 +2697,7 @@ void SimpleStyle::drawComplexControl(ComplexControl control, const QStyleOptionC
} }
} }
void SimpleStyle::drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *w) const void Qt4TDEStyle::drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *w) const
{ {
int i; int i;
TQStyle::SFlags sflags = 0; TQStyle::SFlags sflags = 0;
@ -2785,11 +2804,16 @@ void SimpleStyle::drawControl(ControlElement element, const QStyleOption *opt, Q
tqt3elementrect = TQRect(tqt3elementrect.x()-tqt3tabwidth, tqt3elementrect.y(), tqt3elementrect.width()+(tqt3tabwidth*1), tqt3elementrect.height()); tqt3elementrect = TQRect(tqt3elementrect.x()-tqt3tabwidth, tqt3elementrect.y(), tqt3elementrect.width()+(tqt3tabwidth*1), tqt3elementrect.height());
} }
if (drawingTab) { if (drawingTab) {
if (drawingTab->identifier() == 0) { if (drawingTab->identifier() == (TQApplication::reverseLayout() ? (m_tqt3tabbar_widget->count()-1) : 0)) {
// This is the first tab in the tab bar // This is the first tab in the tab bar
// We will end up clipping on the left edge if the rectangle is not adjusted // We will end up clipping on the left edge if the rectangle is not adjusted
tqt3elementrect = TQRect(tqt3elementrect.x()+tqt3tabwidth, tqt3elementrect.y(), tqt3elementrect.width()-(tqt3tabwidth*1), tqt3elementrect.height()); tqt3elementrect = TQRect(tqt3elementrect.x()+tqt3tabwidth, tqt3elementrect.y(), tqt3elementrect.width()-(tqt3tabwidth*1), tqt3elementrect.height());
} }
if (drawingTab->identifier() == (TQApplication::reverseLayout() ? 0 : (m_tqt3tabbar_widget->count()-1))) {
// This is the last tab in the tab bar
// We will end up clipping on the right edge if the rectangle is not adjusted
tqt3elementrect = TQRect(tqt3elementrect.x(), tqt3elementrect.y(), tqt3elementrect.width()-(tqt3tabwidth*2), tqt3elementrect.height());
}
} }
} }
break; break;
@ -2987,7 +3011,7 @@ void SimpleStyle::drawControl(ControlElement element, const QStyleOption *opt, Q
} }
} }
void SimpleStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w) const void Qt4TDEStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w) const
{ {
// Construct a Qt3 paint device translator on the Qt4 painter // Construct a Qt3 paint device translator on the Qt4 painter
TDEQt4PaintDevice qt4pd(p); TDEQt4PaintDevice qt4pd(p);

@ -59,13 +59,13 @@ enum TQt3WidgetType {
TQT3WT_TQToolBox TQT3WT_TQToolBox
}; };
class SimpleStyle : public QWindowsStyle class Qt4TDEStyle : public QWindowsStyle
{ {
Q_OBJECT Q_OBJECT
public: public:
SimpleStyle(); Qt4TDEStyle();
~SimpleStyle(); ~Qt4TDEStyle();
void polish(QPalette &palette); void polish(QPalette &palette);
void polish(QWidget *widget); void polish(QWidget *widget);

@ -44,21 +44,21 @@
#include "simplestyle.h" #include "simplestyle.h"
//! [0] //! [0]
QStringList SimpleStylePlugin::keys() const QStringList Qt4TDEStylePlugin::keys() const
{ {
return QStringList() << "SimpleStyle"; return QStringList() << "Qt4TDEStyle";
} }
//! [0] //! [0]
//! [1] //! [1]
QStyle *SimpleStylePlugin::create(const QString &key) QStyle *Qt4TDEStylePlugin::create(const QString &key)
{ {
if (key.toLower() == "simplestyle") if (key.toLower() == "qt4tdestyle")
return new SimpleStyle; return new Qt4TDEStyle;
return 0; return 0;
} }
//! [1] //! [1]
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
Q_EXPORT_PLUGIN2(simplestyleplugin, SimpleStylePlugin) Q_EXPORT_PLUGIN2(simplestyleplugin, Qt4TDEStylePlugin)
QT_END_NAMESPACE QT_END_NAMESPACE

@ -49,12 +49,12 @@ class QStyle;
QT_END_NAMESPACE QT_END_NAMESPACE
//! [0] //! [0]
class SimpleStylePlugin : public QStylePlugin class Qt4TDEStylePlugin : public QStylePlugin
{ {
Q_OBJECT Q_OBJECT
public: public:
SimpleStylePlugin() {}; Qt4TDEStylePlugin() {};
QStringList keys() const; QStringList keys() const;
QStyle *create(const QString &key); QStyle *create(const QString &key);

Loading…
Cancel
Save