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 DO_NOT_DRAW can_override = true; do_not_draw = true;
SimpleStyle::SimpleStyle()
Qt4TDEStyle::Qt4TDEStyle()
{
m_previousQt4InterfaceWidget = 0;
m_previousTQt3InterfaceWidget = 0;
@ -709,9 +709,9 @@ SimpleStyle::SimpleStyle()
// Supply it with fake data to keep KApplication happy
argv = (char**) malloc(sizeof(char*));
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,
"(c) 2012, Timothy Pearson",
"message goes here", 0 /* TODO: Website */, "kb9vqf@pearsoncomputing.net");
@ -805,7 +805,7 @@ SimpleStyle::SimpleStyle()
#endif // INTEGRATE_WITH_TDE
}
SimpleStyle::~SimpleStyle()
Qt4TDEStyle::~Qt4TDEStyle()
{
// delete tqApp;
@ -835,14 +835,14 @@ SimpleStyle::~SimpleStyle()
delete m_aboutData;
}
void SimpleStyle::polish(QPalette &palette)
void Qt4TDEStyle::polish(QPalette &palette)
{
// FIXME
// Figure out some way to polish the Qt4 widgets with the Qt3 polish method
// This probably involves modifying Qt3 to specify a painter...
}
void SimpleStyle::polish(QWidget *widget)
void Qt4TDEStyle::polish(QWidget *widget)
{
// HACK
// 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);
}
void SimpleStyle::unpolish(QWidget *widget)
void Qt4TDEStyle::unpolish(QWidget *widget)
{
// HACK
// See SimpleStyle::polish
// See Qt4TDEStyle::polish
widget->setMouseTracking(false);
widget->removeEventFilter(this);
}
bool SimpleStyle::eventFilter(QObject *obj, QEvent *ev)
bool Qt4TDEStyle::eventFilter(QObject *obj, QEvent *ev)
{
// HACK
// See SimpleStyle::polish
// See Qt4TDEStyle::polish
if (!obj->isWidgetType() ) {
return false;
}
@ -907,7 +907,7 @@ bool SimpleStyle::eventFilter(QObject *obj, QEvent *ev)
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;
TQString iconLookupName;
@ -1147,7 +1147,7 @@ QIcon SimpleStyle::standardIconImplementation(StandardPixmap standardIcon, const
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;
TQWidget* interfaceWidget = 0;
@ -1583,7 +1583,7 @@ int SimpleStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWidge
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;
@ -1659,7 +1659,7 @@ QSize SimpleStyle::sizeFromContents(ContentsType type, const QStyleOption *opt,
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;
TQWidget* interfaceWidget = 0;
@ -1907,14 +1907,14 @@ int SimpleStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const
// retval = 0;
// retswitch = 2;
// break;
// case QStyle::PM_MenuHMargin:
// retval = 0;
// retswitch = 2;
// break;
// case QStyle::PM_MenuVMargin:
// retval = 0;
// retswitch = 2;
// break;
case QStyle::PM_MenuHMargin:
tqt3pixelmetric = TQStyle::PM_PopupMenuFrameHorizontalExtra;
retswitch = 1;
break;
case QStyle::PM_MenuVMargin:
tqt3pixelmetric = TQStyle::PM_PopupMenuFrameVerticalExtra;
retswitch = 1;
break;
// case QStyle::PM_MenuScrollerHeight:
// tqt3pixelmetric = TQStyle::PM_MenuScrollerHeight;
// retswitch = 1;
@ -2053,7 +2053,7 @@ int SimpleStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const
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;
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->setEnabled(qt4tabbar_widget->isEnabled());
// Clear out tabbar
for (i=0;i<m_tqt3tabbar_widget->count();i++) {
m_tqt3tabbar_widget->removeTab(m_tqt3tabbar_widget->tabAt(i));
while (m_tqt3tabbar_widget->count() > 0) {
m_tqt3tabbar_widget->removeTab(m_tqt3tabbar_widget->tabAt(0));
}
// Copy over all tabs
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->setItemChecked(i, currentAction->isChecked());
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);
}
// if (currentAction->isCheckable()) {
// m_tqt3popupmenu_widget->setCheckable(true);
// }
}
}
break;
@ -2329,13 +2334,13 @@ TQWidget* SimpleStyle::initializeInterfaceWidget(TQt3WidgetType wt, const QWidge
// Copy over all widget attributes
qt4spinbox_widget = dynamic_cast<const QSpinBox*>(w);
if (qt4spinbox_widget) {
m_tqt3spinbox_widget->setGeometry(0, 0, qt4spinbox_widget->width(), qt4spinbox_widget->height());
m_tqt3spinbox_widget->setEnabled(qt4spinbox_widget->isEnabled());
m_tqt3spinwidget_widget->setGeometry(0, 0, qt4spinbox_widget->width(), qt4spinbox_widget->height());
m_tqt3spinwidget_widget->setEnabled(qt4spinbox_widget->isEnabled());
// FIXME
// m_tqt3spinbox_widget->setMinValue(qt4spinbox_widget->minimum());
// m_tqt3spinbox_widget->setMaxValue(qt4spinbox_widget->maximum());
// m_tqt3spinbox_widget->setLineStep(qt4spinbox_widget->singleStep());
// m_tqt3spinbox_widget->setValue(qt4spinbox_widget->value());
// m_tqt3spinwidget_widget->setMinValue(qt4spinbox_widget->minimum());
// m_tqt3spinwidget_widget->setMaxValue(qt4spinbox_widget->maximum());
// m_tqt3spinwidget_widget->setLineStep(qt4spinbox_widget->singleStep());
// m_tqt3spinwidget_widget->setValue(qt4spinbox_widget->value());
}
else {
if (enable_debug_warnings) {
@ -2392,7 +2397,7 @@ TQWidget* SimpleStyle::initializeInterfaceWidget(TQt3WidgetType wt, const QWidge
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;
@ -2435,7 +2440,7 @@ QRect SimpleStyle::subElementRect(SubElement element, const QStyleOption *opt, c
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;
@ -2467,6 +2472,7 @@ void SimpleStyle::drawComplexControl(ComplexControl control, const QStyleOptionC
}
const QStyleOptionTitleBar* tbopt;
const QStyleOptionSpinBox* sbopt;
bool drawCloseButton;
bool drawMaxButton;
bool drawMinButton;
@ -2499,10 +2505,23 @@ void SimpleStyle::drawComplexControl(ComplexControl control, const QStyleOptionC
break;
case CC_SpinBox:
tqtCC = TQStyle::CC_SpinWidget;
interfaceWidget = initializeInterfaceWidget(TQT3WT_TQSpinWidget, w);
interfaceWidget = initializeInterfaceWidget(TQT3WT_TQSpinWidget, w, opt);
if (interfaceWidget == 0) {
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;
case 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;
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());
}
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
// 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());
}
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;
@ -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
TDEQt4PaintDevice qt4pd(p);

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

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

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

Loading…
Cancel
Save