mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Hack to make the subsurface work on Gnome3 shell
The Gtk+ style on the Gnome shell is somewhat broken on Qt for some reason. This hack pokes the system, checks if it's running gnome-shell, and if the current style is gtk+ ( I couldn't just check for gtk+ since it worked on XFCE and other Gtk based enviro ments. so a double check is needed. ) then I changed the Pallete of the affected widgets by hand. not a pretty hack but worked. [Dirk Hohndel: redid the patch to be simpler and more consistent] Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
d629321799
commit
e81bbc1dab
5 changed files with 43 additions and 5 deletions
|
@ -93,11 +93,6 @@ void init_ui(int *argcp, char ***argvp)
|
|||
// note: on Linux, "system" == "environment variables"
|
||||
QNetworkProxyFactory::setUseSystemConfiguration(true);
|
||||
|
||||
// the Gtk theme makes things unbearably ugly
|
||||
// so switch to Oxygen in this case
|
||||
if (application->style()->objectName() == "gtk+")
|
||||
application->setStyle("Oxygen");
|
||||
|
||||
#if QT_VERSION < 0x050000
|
||||
// ask QString in Qt 4 to interpret all char* as UTF-8,
|
||||
// like Qt 5 does.
|
||||
|
|
|
@ -96,6 +96,17 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
|
|||
|
||||
setMinimumHeight(0);
|
||||
setMinimumWidth(0);
|
||||
|
||||
// Current display of things on Gnome3 looks like shit, so
|
||||
// let`s fix that.
|
||||
if (isGnome3Session()) {
|
||||
QPalette p;
|
||||
p.setColor(QPalette::Window, QColor(Qt::white));
|
||||
ui->scrollArea->viewport()->setPalette(p);
|
||||
ui->scrollArea_2->viewport()->setPalette(p);
|
||||
ui->scrollArea_3->viewport()->setPalette(p);
|
||||
ui->scrollArea_4->viewport()->setPalette(p);
|
||||
}
|
||||
}
|
||||
|
||||
void MainTab::addDiveStarted()
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "starwidget.h"
|
||||
#include "models.h"
|
||||
#include "diveplanner.h"
|
||||
#include "simplewidgets.h"
|
||||
|
||||
#include <QtDebug>
|
||||
#include <QPainter>
|
||||
|
@ -16,6 +17,7 @@
|
|||
#include <QKeyEvent>
|
||||
#include <QAbstractItemView>
|
||||
#include <QStringListModel>
|
||||
#include <QApplication>
|
||||
|
||||
// Gets the index of the model in the currentRow and column.
|
||||
// currCombo is defined below.
|
||||
|
@ -100,6 +102,16 @@ QWidget* ComboBoxDelegate::createEditor(QWidget* parent, const QStyleOptionViewI
|
|||
currCombo.comboEditor = comboDelegate;
|
||||
currCombo.currRow = index.row();
|
||||
currCombo.model = const_cast<QAbstractItemModel*>(index.model());
|
||||
|
||||
// Current display of things on Gnome3 looks like shit, so
|
||||
// let`s fix that.
|
||||
if (isGnome3Session()) {
|
||||
QPalette p;
|
||||
p.setColor(QPalette::Window, QColor(Qt::white));
|
||||
p.setColor(QPalette::Base, QColor(Qt::white));
|
||||
comboDelegate->lineEdit()->setPalette(p);
|
||||
comboDelegate->setPalette(p);
|
||||
}
|
||||
return comboDelegate;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
#include <QSpinBox>
|
||||
#include <QButtonGroup>
|
||||
#include <QDebug>
|
||||
#include <QProcess>
|
||||
#include <QStringList>
|
||||
#include <QDebug>
|
||||
|
||||
#include "../dive.h"
|
||||
|
||||
|
@ -118,3 +121,18 @@ RenumberDialog::RenumberDialog(): QDialog(), ui( new Ui::RenumberDialog())
|
|||
ui->setupUi(this);
|
||||
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
|
||||
}
|
||||
|
||||
bool isGnome3Session()
|
||||
{
|
||||
#if defined(QT_OS_WIW) || defined(QT_OS_MAC)
|
||||
return false;
|
||||
#else
|
||||
if (qApp->style()->objectName() != "gtk+")
|
||||
return false;
|
||||
QProcess p;
|
||||
p.start("pidof", QStringList() << "gnome-shell" );
|
||||
p.waitForFinished(-1);
|
||||
QString p_stdout = p.readAllStandardOutput();
|
||||
return !p_stdout.isEmpty();
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -43,4 +43,6 @@ private:
|
|||
Ui::RenumberDialog *ui;
|
||||
};
|
||||
|
||||
bool isGnome3Session();
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue