Mercurial > octave
view libgui/src/resource-manager.h @ 23927:e3a36f84d01d
provide variable-editor widget for the GUI
This patch is the work of
RĂ¼diger Sonderfeld <ruediger on savannah>
Philip Nienhuis
Michael Barnes <mjbcode@runbox.com>
jwe
* libgui/src/variable-editor.cc, libgui/src/variable-editor.h,
libgui/src/variable-editor-model.cc,
libgui/src/variable-editor-model.h:: New files.
* libgui/src/module.mk: Update.
* main-window.cc, main-window.h (main_window::main_window):
Initialize variable_editor_window.
(main_window::~main_window): Delete variable_editor_window.
(main_window::connect_uiwidget_links): Connect variable window signals
to octave_qt_link slots and callbacks. Add variable editor to menus.
(main_window::variable_editor_callback,
main_window::force_refresh_workspace, main_window::edit_variable,
main_window::clear_variable_editor_cache): New functions.
(main_window::configure_shortcuts): Also configure variable editor
shortcuts.
* resource-manager.cc, resource-manager.h (varedit_color_chars,
varedit_color_names, varedit_default_colors): New functions.
* settings-dialog.ui: New configuration info for variable editor.
* settings-dialog.cc, settings-dialog.h
(settings_dialog::read_varedit_colors,
settings_dialog::write_varedit_colors): New functions.
(settings_dialog::settings_dialog,
settings_dialog::write_changed_settings): Also handle settings for
variable editor.
* workspace-model.h (workspace_model::prompt_variable_editor):
New signal.
* workspace-view.cc, workspace-view.h
(workspace_view::workspace_view): Also connect eidt_variable_signal to
edit_variable slot.
(workspace_view::contextmenu_requested): Handle opening variabl in
variable editor.
(workspace_view::handle_contextmenu_edit): New function.
(workspace_view::edit_variable_signal): New signal.
* octave-link.cc, octave-link.h (Fopenvar): New function.
(octave_link::post_event, octave_link::do_post_event): New variants
for methods with two, three, or four arguments.
(octave_link::set_workspace): New argument, update_variable_editor.
(octave_link::openvar): New function.
(octave_link::do_openvar): New pure virtual.
* octave-qt-link.cc, octave-qt-link.h
(octave_qt_link::do_set_workspace): New argument,
update_variable_editor.
(octave_qt_link::do_set_workspace): Optionally emit
refresh_variable_editor signal
(octave_qt_link::do_openvar): New function.
(octave_qt_link::open_variable,
octave_qt_link::refresh_variable_editor): New signals.
* gui.txi: Document openvar.
* variables.cc, variables.h (symbol_exist): New function.
* action-container.h (action_container::method_arg2_elem,
action_container::method_arg3_elem,
action_container::method_arg4_elem): New classes.
(action_container::add_method): New variants for two, three, or four
arguments.
author | Michael Barnes <mjbcode@runbox.com> |
---|---|
date | Fri, 19 May 2017 18:15:48 +0200 |
parents | 980f39c3ab90 |
children | bffd7d826887 |
line wrap: on
line source
/* Copyright (C) 2011-2017 Jacob Dawid This file is part of Octave. Octave is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Octave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Octave; see the file COPYING. If not, see <http://www.gnu.org/licenses/>. */ #if ! defined (octave_resource_manager_h) #define octave_resource_manager_h 1 #include <QDesktopServices> #include <QIcon> #include <QComboBox> #include <QMap> #include <QSettings> #include <QTranslator> class resource_manager : public QObject { Q_OBJECT protected: public: resource_manager (void); // No copying! resource_manager (const resource_manager&) = delete; resource_manager& operator = (const resource_manager&) = delete; ~resource_manager (); static QSettings * get_settings (void) { return instance_ok () ? instance->do_get_settings () : nullptr; } static QIcon icon (const QString& icon_name, bool fallback = true) { if (instance_ok ()) return instance->do_icon (icon_name, fallback); return QIcon (); } static QSettings * get_default_settings (void) { return instance_ok () ? instance->do_get_default_settings () : nullptr; } static QString get_settings_file (void) { return instance_ok () ? instance->do_get_settings_file () : QString (); } static void reload_settings (void) { if (instance_ok ()) instance->do_reload_settings (); } static void set_settings (const QString& file) { if (instance_ok ()) instance->do_set_settings (file); } static void combo_encoding (QComboBox *combo, QString current = QString ()) { if (instance_ok ()) instance->do_combo_encoding (combo, current); } static QString get_gui_translation_dir (void); static void config_translators (QTranslator*, QTranslator*, QTranslator*); static void update_network_settings (void) { if (instance_ok ()) instance->do_update_network_settings (); } static bool is_first_run (void) { return instance_ok () ? instance->do_is_first_run () : true; } static QString storage_class_chars (void) { return "afghip"; } static QStringList storage_class_names (void); static QList<QColor> storage_class_default_colors (void); static QString terminal_color_chars (void) { return "fbsc"; } static QStringList terminal_color_names (void); static QList<QColor> terminal_default_colors (void); static resource_manager *instance; public slots: static void cleanup_instance (void) { delete instance; instance = nullptr; } static QString varedit_color_chars (void) {return "fbsha"; } static QStringList varedit_color_names (void); static QList<QColor> varedit_default_colors (void); private: static bool instance_ok (void); QString settings_directory; QString settings_file; QSettings *settings; QSettings *default_settings; QSettings * do_get_settings (void) const; QSettings * do_get_default_settings (void) const; QString do_get_settings_file (void); QString do_get_settings_directory (void); void do_reload_settings (void); void do_set_settings (const QString& file); void do_update_network_settings (void); bool do_is_first_run (void) const; QIcon do_icon (const QString& icon, bool fallback); void do_combo_encoding (QComboBox *combo, QString current); }; #endif