提交 94b3f803 编写于 作者: C Clayton Groeneveld

UI: Rename Default theme to System

The system theme was named Default even though the default theme is Dark.
This addresses that by renaming Default.qss to System.qss. I've made it
backwards compatible so users already using this theme are not affected.

The theme list now shows up as:
-System
-Dark (Default)
-Acri
-Rachni

I have also made it so that you can specify the default theme in the
UI config file.
上级 b5cc26a9
......@@ -86,6 +86,7 @@ ShowInMultiview="Show in Multiview"
VerticalLayout="Vertical Layout"
Group="Group"
DoNotShowAgain="Do not show again"
Default="(Default)"
# warning if program already open
AlreadyRunning.Title="OBS is already running"
......
......@@ -54,6 +54,8 @@
#include <iostream>
#include "ui-config.h"
using namespace std;
static log_handler_t def_log_handler;
......@@ -423,7 +425,7 @@ bool OBSApp::InitGlobalConfigDefaults()
if (!config_get_bool(globalConfig, "General", "Pre21Defaults")) {
config_set_default_string(globalConfig, "General",
"CurrentTheme", "Dark");
"CurrentTheme", DEFAULT_THEME);
}
config_set_default_bool(globalConfig, "BasicWindow",
......@@ -1026,18 +1028,22 @@ bool OBSApp::InitTheme()
const char *themeName = config_get_string(globalConfig, "General",
"CurrentTheme");
if (strcmp(themeName, "Default") == 0)
themeName = "System";
if (!themeName) {
/* Use deprecated "Theme" value if available */
themeName = config_get_string(globalConfig,
"General", "Theme");
if (!themeName)
themeName = "Default";
themeName = DEFAULT_THEME;
}
if (strcmp(themeName, "Default") != 0 && SetTheme(themeName))
if (strcmp(themeName, DEFAULT_THEME) != 0 && SetTheme(themeName))
return true;
return SetTheme("Default");
return SetTheme(DEFAULT_THEME);
}
OBSApp::OBSApp(int &argc, char **argv, profiler_name_store_t *store)
......
......@@ -27,3 +27,5 @@
#define RESTREAM_ENABLED @RESTREAM_ENABLED@
#define RESTREAM_CLIENTID "@RESTREAM_CLIENTID@"
#define RESTREAM_HASH 0x@RESTREAM_HASH@
#define DEFAULT_THEME "Dark"
......@@ -48,6 +48,7 @@
#include "window-projector.hpp"
#include <util/platform.h>
#include "ui-config.h"
using namespace std;
......@@ -1003,17 +1004,31 @@ void OBSBasicSettings::LoadThemeList()
}
}
QString defaultTheme;
defaultTheme += DEFAULT_THEME;
defaultTheme += " ";
defaultTheme += QTStr("Default");
/* Check shipped themes. */
QDirIterator uIt(QString(themeDir.c_str()), QStringList() << "*.qss",
QDir::Files);
while (uIt.hasNext()) {
uIt.next();
QString name = uIt.fileName().section(".",0,0);
if (!uniqueSet.contains(name))
if (name == DEFAULT_THEME)
name = defaultTheme;
if (!uniqueSet.contains(name) && name != "Default")
ui->theme->addItem(name);
}
int idx = ui->theme->findText(App()->GetTheme());
const char *themeName = App()->GetTheme();
if (strcmp(themeName, DEFAULT_THEME) == 0)
themeName = QT_TO_UTF8(defaultTheme);
int idx = ui->theme->findText(themeName);
if (idx != -1)
ui->theme->setCurrentIndex(idx);
}
......@@ -2657,13 +2672,19 @@ void OBSBasicSettings::SaveGeneralSettings()
int themeIndex = ui->theme->currentIndex();
QString themeData = ui->theme->itemText(themeIndex);
string theme = themeData.toStdString();
QString defaultTheme;
defaultTheme += DEFAULT_THEME;
defaultTheme += " ";
defaultTheme += QTStr("Default");
if (themeData == defaultTheme)
themeData = DEFAULT_THEME;
if (WidgetChanged(ui->theme)) {
config_set_string(GetGlobalConfig(), "General", "CurrentTheme",
theme.c_str());
QT_TO_UTF8(themeData));
App()->SetTheme(theme);
App()->SetTheme(themeData.toUtf8().constData());
}
#if defined(_WIN32) || defined(__APPLE__)
......@@ -3392,8 +3413,17 @@ void OBSBasicSettings::closeEvent(QCloseEvent *event)
void OBSBasicSettings::on_theme_activated(int idx)
{
string currT = ui->theme->itemText(idx).toStdString();
App()->SetTheme(currT);
QString currT = ui->theme->itemText(idx);
QString defaultTheme;
defaultTheme += DEFAULT_THEME;
defaultTheme += " ";
defaultTheme += QTStr("Default");
if (currT == defaultTheme)
currT = DEFAULT_THEME;
App()->SetTheme(currT.toUtf8().constData());
}
void OBSBasicSettings::on_listWidget_itemSelectionChanged()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册