cabana: saving & restoring columns widths (#27080)

saving & restoring columns widths
old-commit-hash: 08060e42c4
beeps
Dean Lee 2 years ago committed by GitHub
parent 8f4b655b85
commit 499df99c9e
  1. 4
      tools/cabana/mainwin.cc
  2. 1
      tools/cabana/messageswidget.cc
  3. 3
      tools/cabana/messageswidget.h
  4. 2
      tools/cabana/settings.cc
  5. 1
      tools/cabana/settings.h

@ -29,11 +29,13 @@ MainWindow::MainWindow() : QMainWindow() {
createStatusBar();
createShortcuts();
// restore states
restoreGeometry(settings.geometry);
if (isMaximized()) {
setGeometry(QApplication::desktop()->availableGeometry(this));
}
restoreState(settings.window_state);
messages_widget->restoreHeaderState(settings.message_header_state);
qRegisterMetaType<uint64_t>("uint64_t");
qRegisterMetaType<ReplyMsgType>("ReplyMsgType");
@ -285,11 +287,13 @@ void MainWindow::closeEvent(QCloseEvent *event) {
if (floating_window)
floating_window->deleteLater();
// save states
settings.geometry = saveGeometry();
settings.window_state = saveState();
if (!can->liveStreaming()) {
settings.video_splitter_state = video_splitter->saveState();
}
settings.message_header_state = messages_widget->saveHeaderState();
settings.save();
QWidget::closeEvent(event);
}

@ -1,7 +1,6 @@
#include "tools/cabana/messageswidget.h"
#include <QFontDatabase>
#include <QHeaderView>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QPainter>

@ -1,6 +1,7 @@
#pragma once
#include <QAbstractTableModel>
#include <QHeaderView>
#include <QTableView>
#include <QStyledItemDelegate>
@ -33,6 +34,8 @@ class MessagesWidget : public QWidget {
public:
MessagesWidget(QWidget *parent);
void selectMessage(const QString &message_id);
QByteArray saveHeaderState() const { return table_widget->horizontalHeader()->saveState(); }
bool restoreHeaderState(const QByteArray &state) const { return table_widget->horizontalHeader()->restoreState(state); }
signals:
void msgSelectionChanged(const QString &message_id);

@ -23,6 +23,7 @@ void Settings::save() {
s.setValue("window_state", window_state);
s.setValue("geometry", geometry);
s.setValue("video_splitter_state", video_splitter_state);
s.setValue("message_header_state", message_header_state);
}
void Settings::load() {
@ -36,6 +37,7 @@ void Settings::load() {
window_state = s.value("window_state").toByteArray();
geometry = s.value("geometry").toByteArray();
video_splitter_state = s.value("video_splitter_state").toByteArray();
message_header_state = s.value("message_header_state").toByteArray();
}
// SettingsDlg

@ -22,6 +22,7 @@ public:
QByteArray geometry;
QByteArray video_splitter_state;
QByteArray window_state;
QByteArray message_header_state;
signals:
void changed();

Loading…
Cancel
Save