comparison libgui/src/settings-dialog.cc @ 31690:1a1f47f17ed4

eliminate resource_manager class * gui-settings.cc, gui-settings.h (gui_settings::get_gui_translation_dir, gui_settings::config_translators, gui_settings::get_valid_lexer_styles, gui_settings::read_lexer_settings, gui_settings::update_settings_key, gui_settings::update_network_settings, gui_settings::get_codecs, gui_settings::combo_encoding): Move here from resource_manager class. * file-editor-tab.cc, find-dialog.cc, main-window.cc, octave-qobject.h, octave-qobject.cc, qt-interpreter-events.cc, settings-dialog.cc: Change all uses of resource_manager class to use gui_settings instead. * octave-qscintilla.h, octave-qscintilla.cc (octave_qscintilla::create_tmp_file): Move here from resource_manager class. (octave_qscintilla::ctx_menu_run_finished_signal, octave_qscintilla::ctx_menu_run_finished): Use QPointer<QTemporaryFile> instead of bare pointer in signal/slot functions. * octave-qobject.h, octave-qobject.cc (octave_base_qobject::m_resource_manager): Delete data member. (octave_base_qobject::get_resource_manager): Delete. * resource-manager.h, resource-manager.cc: Delete. * libgui/src/module.mk: Update.
author John W. Eaton <jwe@octave.org>
date Tue, 27 Dec 2022 14:55:03 -0500
parents deb553ac2c54
children 8fed04d0607c
comparison
equal deleted inserted replaced
31689:a8a7207a7341 31690:1a1f47f17ed4
62 # include <Qsci/qscilexerbatch.h> 62 # include <Qsci/qscilexerbatch.h>
63 # include <Qsci/qscilexerdiff.h> 63 # include <Qsci/qscilexerdiff.h>
64 #endif 64 #endif
65 65
66 #include "gui-preferences-all.h" 66 #include "gui-preferences-all.h"
67 #include "gui-settings.h"
67 #include "octave-qobject.h" 68 #include "octave-qobject.h"
68 #include "octave-qtutils.h" 69 #include "octave-qtutils.h"
69 #include "settings-dialog.h" 70 #include "settings-dialog.h"
70 #include "variable-editor.h" 71 #include "variable-editor.h"
71 #include "workspace-model.h" 72 #include "workspace-model.h"
79 setupUi (this); 80 setupUi (this);
80 81
81 gui_settings settings; 82 gui_settings settings;
82 83
83 // look for available language files and the actual settings 84 // look for available language files and the actual settings
84 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); 85 QString qm_dir_name = settings.get_gui_translation_dir ();
85 QString qm_dir_name = rmgr.get_gui_translation_dir ();
86 86
87 QDir qm_dir (qm_dir_name); 87 QDir qm_dir (qm_dir_name);
88 QFileInfoList qm_files = qm_dir.entryInfoList (QStringList ("*.qm"), 88 QFileInfoList qm_files = qm_dir.entryInfoList (QStringList ("*.qm"),
89 QDir::Files | QDir::Readable, QDir::Name); 89 QDir::Files | QDir::Readable, QDir::Name);
90 90
231 customFileEditor->setText ( 231 customFileEditor->setText (
232 settings.value (global_custom_editor.key, global_custom_editor.def).toString ()); 232 settings.value (global_custom_editor.key, global_custom_editor.def).toString ());
233 editor_showLineNumbers->setChecked (settings.value (ed_show_line_numbers).toBool ()); 233 editor_showLineNumbers->setChecked (settings.value (ed_show_line_numbers).toBool ());
234 editor_linenr_size->setValue (settings.value (ed_line_numbers_size).toInt ()); 234 editor_linenr_size->setValue (settings.value (ed_line_numbers_size).toInt ());
235 235
236 rmgr.combo_encoding (editor_combo_encoding); 236 settings.combo_encoding (editor_combo_encoding);
237 237
238 editor_highlightCurrentLine->setChecked (settings.value (ed_highlight_current_line).toBool ()); 238 editor_highlightCurrentLine->setChecked (settings.value (ed_highlight_current_line).toBool ());
239 editor_long_line_marker->setChecked (settings.value (ed_long_line_marker).toBool ()); 239 editor_long_line_marker->setChecked (settings.value (ed_long_line_marker).toBool ());
240 bool long_line = 240 bool long_line =
241 settings.value (ed_long_line_marker_line).toBool (); 241 settings.value (ed_long_line_marker_line).toBool ();
503 setGeometry (QRect (10, 50, 1000, 600)); 503 setGeometry (QRect (10, 50, 1000, 600));
504 } 504 }
505 505
506 void settings_dialog::show_tab (const QString& tab) 506 void settings_dialog::show_tab (const QString& tab)
507 { 507 {
508 gui_settings settings;
509
508 if (tab.isEmpty ()) 510 if (tab.isEmpty ())
509 { 511 tabWidget->setCurrentIndex (settings.value (sd_last_tab).toInt ());
510 gui_settings settings;
511
512 tabWidget->setCurrentIndex (settings.value (sd_last_tab).toInt ());
513 }
514 else 512 else
515 { 513 {
516 QHash <QString, QWidget *> tab_hash; 514 QHash <QString, QWidget *> tab_hash;
517 tab_hash["editor"] = tab_editor; 515 tab_hash["editor"] = tab_editor;
518 tab_hash["editor_styles"] = tab_editor; 516 tab_hash["editor_styles"] = tab_editor;
641 639
642 void settings_dialog::update_editor_lexers (int def) 640 void settings_dialog::update_editor_lexers (int def)
643 { 641 {
644 #if defined (HAVE_QSCINTILLA) 642 #if defined (HAVE_QSCINTILLA)
645 643
646 gui_settings settings;
647
648 QCheckBox *cb_color_mode 644 QCheckBox *cb_color_mode
649 = group_box_editor_styles->findChild <QCheckBox *> (ed_color_mode.key); 645 = group_box_editor_styles->findChild <QCheckBox *> (ed_color_mode.key);
650 646
651 int m = 0; 647 int m = 0;
652 if (cb_color_mode && cb_color_mode->isChecked ()) 648 if (cb_color_mode && cb_color_mode->isChecked ())
653 m = 1; 649 m = 1;
654 650
655 color_picker *c_picker = findChild <color_picker *> (ed_highlight_current_line_color.key); 651 color_picker *c_picker = findChild <color_picker *> (ed_highlight_current_line_color.key);
656 if (c_picker) 652 if (c_picker)
657 { 653 {
654 gui_settings settings;
655
658 if (def != settings_reload_default_colors_flag) 656 if (def != settings_reload_default_colors_flag)
659 { 657 {
660 // Get current value from settings or the default 658 // Get current value from settings or the default
661 c_picker->set_color (settings.color_value (ed_highlight_current_line_color, m)); 659 c_picker->set_color (settings.color_value (ed_highlight_current_line_color, m));
662 } 660 }
720 718
721 void settings_dialog::update_lexer (QsciLexer *lexer, int mode, int def) 719 void settings_dialog::update_lexer (QsciLexer *lexer, int mode, int def)
722 { 720 {
723 // Get lexer settings and copy from default settings if not yet 721 // Get lexer settings and copy from default settings if not yet
724 // available in normal settings file 722 // available in normal settings file
725 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); 723 gui_settings settings;
726 rmgr.read_lexer_settings (lexer, mode, def); 724 settings.read_lexer_settings (lexer, mode, def);
727 725
728 // When reloading default styles, the style tabs do already exists. 726 // When reloading default styles, the style tabs do already exists.
729 // Otherwise, check if they exist or not. 727 // Otherwise, check if they exist or not.
730 QString lexer_name = lexer->language (); 728 QString lexer_name = lexer->language ();
731 729
747 return; 745 return;
748 } 746 }
749 747
750 // Update the styles elements in all styles 748 // Update the styles elements in all styles
751 int styles[ed_max_lexer_styles]; // array for saving valid styles 749 int styles[ed_max_lexer_styles]; // array for saving valid styles
752 int max_style = rmgr.get_valid_lexer_styles (lexer, styles); 750 int max_style = settings.get_valid_lexer_styles (lexer, styles);
753 QWidget *tab = tabs_editor_lexers->widget (index); 751 QWidget *tab = tabs_editor_lexers->widget (index);
754 int default_size = 0; 752 int default_size = 0;
755 QString default_family; 753 QString default_family;
756 754
757 for (int i = 0; i < max_style; i++) // create dialog elements for all styles 755 for (int i = 0; i < max_style; i++) // create dialog elements for all styles
820 818
821 } 819 }
822 820
823 void settings_dialog::get_lexer_settings (QsciLexer *lexer) 821 void settings_dialog::get_lexer_settings (QsciLexer *lexer)
824 { 822 {
825 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); 823 gui_settings settings;
826 824
827 int styles[ed_max_lexer_styles]; // array for saving valid styles 825 int styles[ed_max_lexer_styles]; // array for saving valid styles
828 // (enum is not continuous) 826 // (enum is not continuous)
829 int max_style = rmgr.get_valid_lexer_styles (lexer, styles); 827 int max_style = settings.get_valid_lexer_styles (lexer, styles);
830 QGridLayout *style_grid = new QGridLayout (); 828 QGridLayout *style_grid = new QGridLayout ();
831 QVector<QLabel *> description (max_style); 829 QVector<QLabel *> description (max_style);
832 QVector<QFontComboBox *> select_font (max_style); 830 QVector<QFontComboBox *> select_font (max_style);
833 QVector<QSpinBox *> font_size (max_style); 831 QVector<QSpinBox *> font_size (max_style);
834 QVector<QCheckBox *> attrib_font (3 * max_style); 832 QVector<QCheckBox *> attrib_font (3 * max_style);
908 scroll_area_contents->setObjectName (QString (lexer->language ()) + "_styles"); 906 scroll_area_contents->setObjectName (QString (lexer->language ()) + "_styles");
909 scroll_area_contents->setLayout (style_grid); 907 scroll_area_contents->setLayout (style_grid);
910 scroll_area->setWidget (scroll_area_contents); 908 scroll_area->setWidget (scroll_area_contents);
911 tabs_editor_lexers->addTab (scroll_area, lexer->language ()); 909 tabs_editor_lexers->addTab (scroll_area, lexer->language ());
912 910
913 gui_settings settings;
914
915 tabs_editor_lexers->setCurrentIndex (settings.value (sd_last_editor_styles_tab).toInt ()); 911 tabs_editor_lexers->setCurrentIndex (settings.value (sd_last_editor_styles_tab).toInt ());
916 } 912 }
917 913
918 void settings_dialog::write_lexer_settings (QsciLexer *lexer) 914 void settings_dialog::write_lexer_settings (QsciLexer *lexer)
919 { 915 {
930 QWidget *tab = tabs_editor_lexers-> 926 QWidget *tab = tabs_editor_lexers->
931 findChild <QWidget *> (QString (lexer->language ()) + "_styles"); 927 findChild <QWidget *> (QString (lexer->language ()) + "_styles");
932 int styles[ed_max_lexer_styles]; // array for saving valid styles 928 int styles[ed_max_lexer_styles]; // array for saving valid styles
933 // (enum is not continuous) 929 // (enum is not continuous)
934 930
935 resource_manager& rmgr = m_octave_qobj.get_resource_manager (); 931 int max_style = settings.get_valid_lexer_styles (lexer, styles);
936 int max_style = rmgr.get_valid_lexer_styles (lexer, styles);
937 932
938 QFontComboBox *select_font; 933 QFontComboBox *select_font;
939 QSpinBox *font_size; 934 QSpinBox *font_size;
940 QCheckBox *attrib_font[3]; 935 QCheckBox *attrib_font[3];
941 color_picker *color; 936 color_picker *color;