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"
|
// note: on Linux, "system" == "environment variables"
|
||||||
QNetworkProxyFactory::setUseSystemConfiguration(true);
|
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
|
#if QT_VERSION < 0x050000
|
||||||
// ask QString in Qt 4 to interpret all char* as UTF-8,
|
// ask QString in Qt 4 to interpret all char* as UTF-8,
|
||||||
// like Qt 5 does.
|
// like Qt 5 does.
|
||||||
|
|
|
@ -96,6 +96,17 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
|
||||||
|
|
||||||
setMinimumHeight(0);
|
setMinimumHeight(0);
|
||||||
setMinimumWidth(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()
|
void MainTab::addDiveStarted()
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "starwidget.h"
|
#include "starwidget.h"
|
||||||
#include "models.h"
|
#include "models.h"
|
||||||
#include "diveplanner.h"
|
#include "diveplanner.h"
|
||||||
|
#include "simplewidgets.h"
|
||||||
|
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
@ -16,6 +17,7 @@
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include <QAbstractItemView>
|
#include <QAbstractItemView>
|
||||||
#include <QStringListModel>
|
#include <QStringListModel>
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
// Gets the index of the model in the currentRow and column.
|
// Gets the index of the model in the currentRow and column.
|
||||||
// currCombo is defined below.
|
// currCombo is defined below.
|
||||||
|
@ -100,6 +102,16 @@ QWidget* ComboBoxDelegate::createEditor(QWidget* parent, const QStyleOptionViewI
|
||||||
currCombo.comboEditor = comboDelegate;
|
currCombo.comboEditor = comboDelegate;
|
||||||
currCombo.currRow = index.row();
|
currCombo.currRow = index.row();
|
||||||
currCombo.model = const_cast<QAbstractItemModel*>(index.model());
|
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;
|
return comboDelegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,9 @@
|
||||||
#include <QSpinBox>
|
#include <QSpinBox>
|
||||||
#include <QButtonGroup>
|
#include <QButtonGroup>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QProcess>
|
||||||
|
#include <QStringList>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
#include "../dive.h"
|
#include "../dive.h"
|
||||||
|
|
||||||
|
@ -118,3 +121,18 @@ RenumberDialog::RenumberDialog(): QDialog(), ui( new Ui::RenumberDialog())
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
|
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;
|
Ui::RenumberDialog *ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool isGnome3Session();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue