Mercurial > octave
changeset 33226:461f5517c06c
maint: merge away accidental extra head.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 19 Mar 2024 21:35:38 -0700 |
parents | b6f8862f2f5b (current diff) bd8a946093d7 (diff) |
children | d5c5484322d1 |
files | |
diffstat | 4 files changed, 37 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/files-dock-widget.cc Tue Mar 19 16:33:20 2024 -0700 +++ b/libgui/src/files-dock-widget.cc Tue Mar 19 21:35:38 2024 -0700 @@ -406,10 +406,6 @@ // FIXME: use value<Qt::SortOrder> instead of static cast after // dropping support of Qt 5.4 - if (settings.contains (fb_column_state.settings_key ())) - m_file_tree_view->header ()->restoreState - (settings.value (fb_column_state.settings_key ()).toByteArray ()); - // Set header properties for sorting m_file_tree_view->header ()->setSectionsClickable (true); m_file_tree_view->header ()->setSectionsMovable (true); @@ -468,6 +464,23 @@ if (! p) make_window (); + + // Initialize column order and width of the file browser. From this post, + // https://www.qtcentre.org/threads/26675-QTableView-saving-restoring-columns-widths + // this might fail if done directly in the constructor. This effect shows + // up in the GUI since Qt 6.6.x. As a solution, the following timer ensures + // that the header is restored when the event loop is idle. + QTimer::singleShot (0, this, SLOT(restore_header_state ())); +} + +void +files_dock_widget::restore_header_state () +{ + gui_settings settings; + + if (settings.contains (fb_column_state.settings_key ())) + m_file_tree_view->header ()->restoreState + (settings.value (fb_column_state.settings_key ()).toByteArray ()); } void
--- a/libgui/src/files-dock-widget.h Tue Mar 19 16:33:20 2024 -0700 +++ b/libgui/src/files-dock-widget.h Tue Mar 19 21:35:38 2024 -0700 @@ -136,6 +136,7 @@ private slots: + void restore_header_state (); void headercontextmenu_requested (const QPoint& pos); void toggle_header (int col);
--- a/libgui/src/workspace-view.cc Tue Mar 19 16:33:20 2024 -0700 +++ b/libgui/src/workspace-view.cc Tue Mar 19 21:35:38 2024 -0700 @@ -39,6 +39,7 @@ #include <QMessageBox> #include <QPushButton> #include <QSignalMapper> +#include <QTimer> #include <QVBoxLayout> #include "gui-preferences-ws.h" @@ -107,9 +108,6 @@ //enable sorting (setting column and order after model was set) m_view->setSortingEnabled (true); - // Initialize column order and width of the workspace - m_view->horizontalHeader ()->restoreState - (settings.value (ws_column_state.settings_key ()).toByteArray ()); // Set header properties for sorting m_view->horizontalHeader ()->setSectionsClickable (true); @@ -151,6 +149,23 @@ if (! p) make_window (); + + // Initialize column order and width of the workspace. From this post, + // https://www.qtcentre.org/threads/26675-QTableView-saving-restoring-columns-widths + // this might fail if done directly in the constructor. This effect shows + // up in the GUI since Qt 6.6.x. As a solution, the following timer ensures + // that the header is restored when the event loop is idle. + QTimer::singleShot (0, this, SLOT(restore_header_state ())); +} + +void +workspace_view::restore_header_state () +{ + gui_settings settings; + + if (settings.contains (ws_column_state.settings_key ())) + m_view->horizontalHeader ()->restoreState + (settings.value (ws_column_state.settings_key ()).toByteArray ()); } void
--- a/libgui/src/workspace-view.h Tue Mar 19 16:33:20 2024 -0700 +++ b/libgui/src/workspace-view.h Tue Mar 19 21:35:38 2024 -0700 @@ -78,6 +78,7 @@ protected slots: + void restore_header_state (); void filter_update (const QString& expression); void filter_activate (bool enable); void update_filter_history ();