diff --git a/src/qtcurve/style/qtcurve.cpp b/src/qtcurve/style/qtcurve.cpp index 483d220520..d5afb529e8 100644 --- a/src/qtcurve/style/qtcurve.cpp +++ b/src/qtcurve/style/qtcurve.cpp @@ -963,6 +963,7 @@ Style::Style() itsAnimateStep(0), itsTitlebarHeight(0), calibre_icon_map(QHash()), + is_kde_session(False), itsPos(-1, -1), itsHoverWidget(0L), #ifdef Q_WS_X11 @@ -977,6 +978,7 @@ Style::Style() , itsName(name) #endif { + is_kde_session = (getenv("KDE_FULL_SESSION") != NULL); const char *env=getenv(QTCURVE_PREVIEW_CONFIG); if(env && 0==strcmp(env, QTCURVE_PREVIEW_CONFIG)) { @@ -3602,7 +3604,14 @@ int Style::styleHint(StyleHint hint, const QStyleOption *option, const QWidget * #endif return 0; case SH_DialogButtonLayout: - return opts.gtkButtonOrder ? QDialogButtonBox::GnomeLayout : QDialogButtonBox::KdeLayout; +// Changed by Kovid to use platform specific button orders. +#ifdef _WIN32 + return QDialogButtonBox::WinLayout; +#elif defined(__APPLE__) + return QDialogButtonBox::MacLayout; +#else + return is_kde_session ? QDialogButtonBox::KdeLayout : QDialogButtonBox::GnomeLayout; +#endif case SH_MessageBox_TextInteractionFlags: return Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse; case SH_LineEdit_PasswordCharacter: diff --git a/src/qtcurve/style/qtcurve.h b/src/qtcurve/style/qtcurve.h index 7a472afffe..43cd882c2f 100644 --- a/src/qtcurve/style/qtcurve.h +++ b/src/qtcurve/style/qtcurve.h @@ -355,6 +355,7 @@ class Style : public QCommonStyle mutable QList itsMdiButtons[2]; // 0=left, 1=right mutable int itsTitlebarHeight; QHash calibre_icon_map; + bool is_kde_session; // Required for Q3Header hover... QPoint itsPos;