add gui.font_scale setting
This commit is contained in:
@@ -75,7 +75,6 @@ the result of fundamental issues with Discord's thread implementation.
|
|||||||
5. `make`
|
5. `make`
|
||||||
6. [Copy resources](#resources)
|
6. [Copy resources](#resources)
|
||||||
|
|
||||||
|
|
||||||
#### Linux:
|
#### Linux:
|
||||||
|
|
||||||
1. Install dependencies
|
1. Install dependencies
|
||||||
@@ -300,6 +299,7 @@ For example, memory_db would be set by adding `memory_db = true` under the line
|
|||||||
| `save_state` | boolean | true | save the state of the gui (active channels, tabs, expanded channels) |
|
| `save_state` | boolean | true | save the state of the gui (active channels, tabs, expanded channels) |
|
||||||
| `alt_menu` | boolean | false | keep the menu hidden unless revealed with alt key |
|
| `alt_menu` | boolean | false | keep the menu hidden unless revealed with alt key |
|
||||||
| `hide_to_tray` | boolean | false | hide abaddon to the system tray on window close |
|
| `hide_to_tray` | boolean | false | hide abaddon to the system tray on window close |
|
||||||
|
| `font_scale` | double | | scale font rendering. 1 is unchanged |
|
||||||
|
|
||||||
#### style
|
#### style
|
||||||
|
|
||||||
|
@@ -263,6 +263,13 @@ int Abaddon::StartGTK() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (m_settings.GetSettings().FontScale > 0.0) {
|
||||||
|
auto dpi = Gdk::Screen::get_default()->get_resolution();
|
||||||
|
if (dpi < 0.0) dpi = 96.0;
|
||||||
|
auto newdpi = dpi * 1024.0 * m_settings.GetSettings().FontScale;
|
||||||
|
Gtk::Settings::get_default()->set_property("gtk-xft-dpi", newdpi);
|
||||||
|
}
|
||||||
|
|
||||||
// store must be checked before this can be called
|
// store must be checked before this can be called
|
||||||
m_main_window->UpdateComponents();
|
m_main_window->UpdateComponents();
|
||||||
|
|
||||||
|
@@ -42,6 +42,10 @@ void SettingsManager::ReadSettings() {
|
|||||||
try { \
|
try { \
|
||||||
m_settings.var = m_file.get_integer(section, key); \
|
m_settings.var = m_file.get_integer(section, key); \
|
||||||
} catch (...) {}
|
} catch (...) {}
|
||||||
|
#define SMFLT(section, key, var) \
|
||||||
|
try { \
|
||||||
|
m_settings.var = m_file.get_double(section, key); \
|
||||||
|
} catch (...) {}
|
||||||
|
|
||||||
SMSTR("discord", "api_base", APIBaseURL);
|
SMSTR("discord", "api_base", APIBaseURL);
|
||||||
SMSTR("discord", "gateway", GatewayURL);
|
SMSTR("discord", "gateway", GatewayURL);
|
||||||
@@ -59,6 +63,7 @@ void SettingsManager::ReadSettings() {
|
|||||||
SMBOOL("gui", "unreads", Unreads);
|
SMBOOL("gui", "unreads", Unreads);
|
||||||
SMBOOL("gui", "alt_menu", AltMenu);
|
SMBOOL("gui", "alt_menu", AltMenu);
|
||||||
SMBOOL("gui", "hide_to_tray", HideToTray);
|
SMBOOL("gui", "hide_to_tray", HideToTray);
|
||||||
|
SMFLT("gui", "font_scale", FontScale);
|
||||||
SMINT("http", "concurrent", CacheHTTPConcurrency);
|
SMINT("http", "concurrent", CacheHTTPConcurrency);
|
||||||
SMSTR("http", "user_agent", UserAgent);
|
SMSTR("http", "user_agent", UserAgent);
|
||||||
SMSTR("style", "expandercolor", ChannelsExpanderColor);
|
SMSTR("style", "expandercolor", ChannelsExpanderColor);
|
||||||
@@ -102,6 +107,7 @@ void SettingsManager::ReadSettings() {
|
|||||||
#undef SMBOOL
|
#undef SMBOOL
|
||||||
#undef SMSTR
|
#undef SMSTR
|
||||||
#undef SMINT
|
#undef SMINT
|
||||||
|
#undef SMFLT
|
||||||
|
|
||||||
m_read_settings = m_settings;
|
m_read_settings = m_settings;
|
||||||
}
|
}
|
||||||
@@ -127,6 +133,9 @@ void SettingsManager::Close() {
|
|||||||
#define SMINT(section, key, var) \
|
#define SMINT(section, key, var) \
|
||||||
if (m_settings.var != m_read_settings.var) \
|
if (m_settings.var != m_read_settings.var) \
|
||||||
m_file.set_integer(section, key, m_settings.var);
|
m_file.set_integer(section, key, m_settings.var);
|
||||||
|
#define SMFLT(section, key, var) \
|
||||||
|
if (m_settings.var != m_read_settings.var) \
|
||||||
|
m_file.set_double(section, key, m_settings.var);
|
||||||
|
|
||||||
SMSTR("discord", "api_base", APIBaseURL);
|
SMSTR("discord", "api_base", APIBaseURL);
|
||||||
SMSTR("discord", "gateway", GatewayURL);
|
SMSTR("discord", "gateway", GatewayURL);
|
||||||
@@ -144,6 +153,7 @@ void SettingsManager::Close() {
|
|||||||
SMBOOL("gui", "unreads", Unreads);
|
SMBOOL("gui", "unreads", Unreads);
|
||||||
SMBOOL("gui", "alt_menu", AltMenu);
|
SMBOOL("gui", "alt_menu", AltMenu);
|
||||||
SMBOOL("gui", "hide_to_tray", HideToTray);
|
SMBOOL("gui", "hide_to_tray", HideToTray);
|
||||||
|
SMFLT("gui", "font_scale", FontScale);
|
||||||
SMINT("http", "concurrent", CacheHTTPConcurrency);
|
SMINT("http", "concurrent", CacheHTTPConcurrency);
|
||||||
SMSTR("http", "user_agent", UserAgent);
|
SMSTR("http", "user_agent", UserAgent);
|
||||||
SMSTR("style", "expandercolor", ChannelsExpanderColor);
|
SMSTR("style", "expandercolor", ChannelsExpanderColor);
|
||||||
@@ -172,6 +182,7 @@ void SettingsManager::Close() {
|
|||||||
#undef SMSTR
|
#undef SMSTR
|
||||||
#undef SMBOOL
|
#undef SMBOOL
|
||||||
#undef SMINT
|
#undef SMINT
|
||||||
|
#undef SMFLT
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!m_file.save_to_file(m_filename))
|
if (!m_file.save_to_file(m_filename))
|
||||||
|
@@ -30,6 +30,7 @@ public:
|
|||||||
bool Unreads { true };
|
bool Unreads { true };
|
||||||
bool AltMenu { false };
|
bool AltMenu { false };
|
||||||
bool HideToTray { false };
|
bool HideToTray { false };
|
||||||
|
double FontScale { -1.0 };
|
||||||
|
|
||||||
// [http]
|
// [http]
|
||||||
int CacheHTTPConcurrency { 20 };
|
int CacheHTTPConcurrency { 20 };
|
||||||
|
Reference in New Issue
Block a user