diff --git a/bin/assets/i18n/de.xml b/bin/assets/i18n/de.xml
index 92a435abe..66aa1a3cc 100644
--- a/bin/assets/i18n/de.xml
+++ b/bin/assets/i18n/de.xml
@@ -708,8 +708,8 @@ Bitte das Programmverzeichnis auf Schreibrechte überprüfen.
Auswahl zu voriger Zeile
Auswahl zu Inhaltsanfang
Auswahl zu Zeilenanfang
- Serifenschriftart
- Serifenschriftart...
+ SansSerifenschriftart
+ SansSerifenschriftart...
Sitzungs-Snapshot & Regelmäßige Sicherung
Wenn Sitzungs-Snapshots aktiv sind, wird der Editor Änderungen im
Dokumenten-Buffer beibehalten, auch, wenn sie vor Beendigung nicht gespeichert wurden.
diff --git a/bin/assets/i18n/en.xml b/bin/assets/i18n/en.xml
index 1531eab40..37529aeed 100644
--- a/bin/assets/i18n/en.xml
+++ b/bin/assets/i18n/en.xml
@@ -693,8 +693,8 @@ Please check that the application directory has write permissions.
Select To Previous Line
Select To Start Of Content
Select To Start Of Line
- Serif Font
- Serif Font...
+ Sans-Serif Font
+ Sans Serif Font...
Session Snapshot & Periodic Backup
When session snapshot is enabled the editor will keep
the document buffer changes between sessions, even if they are not saved
diff --git a/bin/assets/i18n/zh_CN.xml b/bin/assets/i18n/zh_CN.xml
index aad7cb60d..eee83db56 100644
--- a/bin/assets/i18n/zh_CN.xml
+++ b/bin/assets/i18n/zh_CN.xml
@@ -522,8 +522,8 @@ Restart ecode to see the changes.
选择字体文件
选择下一行
选择上一行
- Serif字体
- Serif字体...
+ Sans-Serif字体
+ Sans-Serif字体...
设置光标闪烁时间:设置0禁用
设置字体大小:
diff --git a/src/eepp/ui/iconmanager.cpp b/src/eepp/ui/iconmanager.cpp
index c40c09392..9352bd284 100644
--- a/src/eepp/ui/iconmanager.cpp
+++ b/src/eepp/ui/iconmanager.cpp
@@ -115,6 +115,7 @@ UIIconTheme* IconManager::init( const std::string& iconThemeName, FontTrueType*
{ "volume-mute-fill", 0xF29D },
{ "pause-fill", 0xEFD7 },
{ "spy-line", 0xF17F },
+ { "input-field", 0xF47A },
} ) {
iconTheme->add( UIGlyphIcon::New( icon.first, remixIconFont, icon.second ) );
}
diff --git a/src/tools/ecode/appconfig.cpp b/src/tools/ecode/appconfig.cpp
index d756b95b2..7351e6c96 100644
--- a/src/tools/ecode/appconfig.cpp
+++ b/src/tools/ecode/appconfig.cpp
@@ -129,7 +129,7 @@ void AppConfig::load( const std::string& confPath, std::string& keybindingsPath,
ui.nativeFileDialogs = ini.getValueB( "ui", "native_file_dialogs", false );
ui.imagesQuickPreview = ini.getValueB( "ui", "images_quick_preview", false );
ui.panelPosition = panelPositionFromString( ini.getValue( "ui", "panel_position", "left" ) );
- ui.serifFont = ini.getValue( "ui", "serif_font", "fonts/NotoSans-Regular.ttf" );
+ ui.sansSerifFont = ini.getValue( "ui", "serif_font", "fonts/NotoSans-Regular.ttf" );
ui.monospaceFont = ini.getValue( "ui", "monospace_font", "fonts/DejaVuSansMono.ttf" );
ui.terminalFont =
ini.getValue( "ui", "terminal_font", "fonts/DejaVuSansMonoNerdFontComplete.ttf" );
@@ -145,6 +145,8 @@ void AppConfig::load( const std::string& confPath, std::string& keybindingsPath,
ini.getValue( "ui", "font_antialiasing", "grayscale" ) );
Text::TextShaperEnabled |= ini.getValueB( "ui", "text_shaper", false );
Text::TextShaperOptimizations |= ini.getValueB( "ui", "text_shaper_optimizations", true );
+ ui.editorFontInInputFields = ini.getValueB( "ui", "editor_font_in_input_fields", true );
+
doc.trimTrailingWhitespaces = ini.getValueB( "document", "trim_trailing_whitespaces", false );
doc.forceNewLineAtEndOfFile =
ini.getValueB( "document", "force_new_line_at_end_of_file", false );
@@ -327,7 +329,7 @@ void AppConfig::save( const std::vector& recentFiles,
ini.setValueB( "ui", "native_file_dialogs", ui.nativeFileDialogs );
ini.setValueB( "ui", "images_quick_preview", ui.imagesQuickPreview );
ini.setValue( "ui", "panel_position", panelPositionToString( ui.panelPosition ) );
- ini.setValue( "ui", "serif_font", ui.serifFont );
+ ini.setValue( "ui", "serif_font", ui.sansSerifFont );
ini.setValue( "ui", "monospace_font", ui.monospaceFont );
ini.setValue( "ui", "terminal_font", ui.terminalFont );
ini.setValue( "ui", "theme", ui.theme );
@@ -339,6 +341,8 @@ void AppConfig::save( const std::vector& recentFiles,
ini.setValue( "ui", "font_hinting", FontTrueType::fontHintingToString( ui.fontHinting ) );
ini.setValue( "ui", "font_antialiasing",
FontTrueType::fontAntialiasingToString( ui.fontAntialiasing ) );
+ ini.setValueB( "ui", "editor_font_in_input_fields", ui.editorFontInInputFields );
+
ini.setValueB( "document", "trim_trailing_whitespaces", doc.trimTrailingWhitespaces );
ini.setValueB( "document", "force_new_line_at_end_of_file", doc.forceNewLineAtEndOfFile );
ini.setValueB( "document", "auto_detect_indent_type", doc.autoDetectIndentType );
diff --git a/src/tools/ecode/appconfig.hpp b/src/tools/ecode/appconfig.hpp
index bb3826757..c26823c51 100644
--- a/src/tools/ecode/appconfig.hpp
+++ b/src/tools/ecode/appconfig.hpp
@@ -41,8 +41,9 @@ struct UIConfig {
bool openProjectInNewWindow{ false };
bool nativeFileDialogs{ false };
bool imagesQuickPreview{ false };
+ bool editorFontInInputFields{ true };
PanelPosition panelPosition{ PanelPosition::Left };
- std::string serifFont;
+ std::string sansSerifFont;
std::string monospaceFont;
std::string terminalFont;
std::string fallbackFont;
diff --git a/src/tools/ecode/ecode.cpp b/src/tools/ecode/ecode.cpp
index d76ad1779..e171a8840 100644
--- a/src/tools/ecode/ecode.cpp
+++ b/src/tools/ecode/ecode.cpp
@@ -498,17 +498,8 @@ void App::openFontDialog( std::string& fontPath, bool loadingMonoFont, bool term
mUISceneNode->find( "app_output_output" ) )
appOutputEditor->setFont( fontMono );
- if ( auto locateFind =
- mUISceneNode->find( "locate_find" ) )
- locateFind->setFont( fontMono );
-
- if ( auto globalSearchFind =
- mUISceneNode->find( "global_search_find" ) )
- globalSearchFind->setFont( fontMono );
-
- if ( auto globalSearchWhere =
- mUISceneNode->find( "global_search_where" ) )
- globalSearchWhere->setFont( fontMono );
+ if ( mConfig.ui.editorFontInInputFields )
+ updateInputFonts();
}
}
};
@@ -521,6 +512,25 @@ void App::openFontDialog( std::string& fontPath, bool loadingMonoFont, bool term
dialog->show();
}
+void App::updateInputFonts() {
+ FontTrueType* font = mConfig.ui.editorFontInInputFields ? mFontMono : mFont;
+
+ if ( auto locateFind = mUISceneNode->find( "locate_find" ) )
+ locateFind->setFont( font );
+
+ if ( auto searchFind = mUISceneNode->find( "search_find" ) )
+ searchFind->setFont( font );
+
+ if ( auto searchReplace = mUISceneNode->find( "search_replace" ) )
+ searchReplace->setFont( font );
+
+ if ( auto globalSearchFind = mUISceneNode->find( "global_search_find" ) )
+ globalSearchFind->setFont( font );
+
+ if ( auto globalSearchWhere = mUISceneNode->find( "global_search_where" ) )
+ globalSearchWhere->setFont( font );
+}
+
void App::downloadFileWebDialog() {
UIMessageBox* msgBox =
UIMessageBox::New( UIMessageBox::INPUT, i18n( "please_enter_file_url_ellipsis",
@@ -2020,7 +2030,7 @@ std::vector App::getUnlockedCommands() {
"terminal-font-size",
"ui-font-size",
"ui-panel-font-size",
- "serif-font",
+ "sans-serif-font",
"monospace-font",
"terminal-font",
"fallback-font",
@@ -3893,7 +3903,7 @@ void App::init( InitParameters& params ) {
// Load fonts
Clock fontsClock;
- mFont = loadFont( "sans-serif", mConfig.ui.serifFont, "fonts/NotoSans-Regular.ttf" );
+ mFont = loadFont( "sans-serif", mConfig.ui.sansSerifFont, "fonts/NotoSans-Regular.ttf" );
FontFamily::loadFromRegular( mFont );
mFontMono = loadFont( "monospace", mConfig.ui.monospaceFont, "fonts/DejaVuSansMono.ttf" );
@@ -4289,6 +4299,8 @@ void App::init( InitParameters& params ) {
if ( !mConfig.ui.showSidePanel )
showSidePanel( mConfig.ui.showSidePanel );
+ updateInputFonts();
+
mSplitter = UICodeEditorSplitter::New( this, mUISceneNode, mThreadPool, mColorSchemes,
mInitColorScheme );
mSplitter->setHideTabBarOnSingleTab( mConfig.editor.hideTabBarOnSingleTab );
diff --git a/src/tools/ecode/ecode.hpp b/src/tools/ecode/ecode.hpp
index 71cbc0507..2d61258ff 100644
--- a/src/tools/ecode/ecode.hpp
+++ b/src/tools/ecode/ecode.hpp
@@ -75,6 +75,8 @@ class App : public UICodeEditorSplitter::Client, public PluginContextProvider {
void openFontDialog( std::string& fontPath, bool loadingMonoFont, bool terminalFont = false,
std::function onFinish = {} );
+ void updateInputFonts();
+
void downloadFileWeb( const std::string& url );
UIFileDialog* saveFileDialog( UICodeEditor* editor, bool focusOnClose = true );
@@ -337,7 +339,8 @@ class App : public UICodeEditorSplitter::Client, public PluginContextProvider {
t.setCommand( "terminal-font-size", [this] { mSettingsActions->setTerminalFontSize(); } );
t.setCommand( "ui-font-size", [this] { mSettingsActions->setUIFontSize(); } );
t.setCommand( "ui-panel-font-size", [this] { mSettingsActions->setUIPanelFontSize(); } );
- t.setCommand( "serif-font", [this] { openFontDialog( mConfig.ui.serifFont, false ); } );
+ t.setCommand( "sans-serif-font",
+ [this] { openFontDialog( mConfig.ui.sansSerifFont, false ); } );
t.setCommand( "monospace-font",
[this] { openFontDialog( mConfig.ui.monospaceFont, true ); } );
t.setCommand( "terminal-font",
diff --git a/src/tools/ecode/settingsmenu.cpp b/src/tools/ecode/settingsmenu.cpp
index 981034f77..02cda6007 100644
--- a/src/tools/ecode/settingsmenu.cpp
+++ b/src/tools/ecode/settingsmenu.cpp
@@ -1315,8 +1315,9 @@ UIMenu* SettingsMenu::createWindowMenu() {
->setId( "editor-font-size" );
mWindowMenu->add( i18n( "terminal_font_size", "Terminal Font Size" ), findIcon( "font-size" ) )
->setId( "terminal-font-size" );
- mWindowMenu->add( i18n( "serif_font_ellipsis", "Serif Font..." ), findIcon( "font-size" ) )
- ->setId( "serif-font" );
+ mWindowMenu
+ ->add( i18n( "sans-serif_font_ellipsis", "Sans-Serif Font..." ), findIcon( "font-size" ) )
+ ->setId( "sans-serif-font" );
mWindowMenu
->add( i18n( "monospace_font_ellipsis", "Monospace Font..." ), findIcon( "font-size" ) )
->setId( "monospace-font" );
@@ -1399,6 +1400,19 @@ UIMenu* SettingsMenu::createWindowMenu() {
mWindowMenu->addSeparator();
+ mWindowMenu
+ ->addCheckBox(
+ i18n( "use_editor_font_in_input_fields", "Use the editor font in input fields" ),
+ mApp->getConfig().ui.editorFontInInputFields,
+ getKeybind( "use-editor-font-in-input-fields" ) )
+ ->setTooltipText(
+ i18n( "use_editor_font_in_input_fields_desc",
+ "When enabled all main input fields will use the same monospace font as the "
+ "editor,\notherwise they will use the default sans-serif font." ) )
+ ->setId( "use-editor-font-in-input-fields" );
+
+ mWindowMenu->addSeparator();
+
mWindowMenu
->addCheckBox( i18n( "open_files_in_new_window_enable", "Open Files in New Window" ),
mApp->getConfig().ui.openFilesInNewWindow )
@@ -1467,6 +1481,10 @@ UIMenu* SettingsMenu::createWindowMenu() {
bool active = item->asType()->isActive();
mApp->getConfig().ui.imagesQuickPreview = active;
mApp->saveConfig();
+ } else if ( "use-editor-font-in-input-fields" == item->getId() ) {
+ bool active = item->asType()->isActive();
+ mApp->getConfig().ui.editorFontInInputFields = active;
+ mApp->updateInputFonts();
} else {
String text = String( event->getNode()->asType()->getId() ).toLower();
String::replaceAll( text, " ", "-" );