zeit: save window parameters between sessions

This commit is contained in:
blaze 2021-07-10 20:48:06 +03:00
parent b022bdfdfb
commit 1d364ff6ee
No known key found for this signature in database
GPG Key ID: C4996C546950EAE4
3 changed files with 19 additions and 1 deletions

View File

@ -36,5 +36,5 @@ QString BaseDelegate::elideText(const QString& text) const {
const QFontMetrics& fm = ui->listWidget->fontMetrics();
return fm.elidedText(text,
isElidedTextEnabled ? Qt::ElideRight : Qt::ElideNone,
ui->listWidget->width() - 36 /* hardcoded icon size */);
ui->listWidget->width() - 48 /* hardcoded icon size */);
}

View File

@ -22,6 +22,7 @@
#include <QMessageBox>
#include <QKeyEvent>
#include <QProcess>
#include <QSettings>
#ifdef BUILD_HELPER
#define ROOT_ACTIONS cron->isSystemCron()
@ -153,6 +154,12 @@ MainWindow::~MainWindow() {
void MainWindow::show() {
QMainWindow::show();
QSettings settings(QCoreApplication::organizationName(),
QCoreApplication::applicationName());
restoreGeometry(settings.value(QStringLiteral("geometry")).toByteArray());
restoreState(settings.value(QStringLiteral("windowState")).toByteArray());
ui->actionShortenText->setChecked(
settings.value(QStringLiteral("General/shortenText")).toBool());
updateWindow();
refreshActions(false);
}
@ -167,6 +174,16 @@ void MainWindow::resizeEvent(QResizeEvent* e) {
list->view();
}
void MainWindow::closeEvent(QCloseEvent* e) {
QSettings settings(QCoreApplication::organizationName(),
QCoreApplication::applicationName());
settings.setValue(QStringLiteral("geometry"), saveGeometry());
settings.setValue(QStringLiteral("windowState"), saveState());
settings.setValue(QStringLiteral("General/shortenText"),
ui->actionShortenText->isChecked());
QMainWindow::closeEvent(e);
}
void MainWindow::refreshActions(bool enabled) {
bool currentUser = cron->isCurrentUserCron() || ROOT_ACTIONS;
ui->toggleItemAction->setDisabled(ui->actionCommands->isChecked() || !enabled);

View File

@ -45,6 +45,7 @@ class MainWindow : public QMainWindow
BaseDelegate* list = nullptr;
void keyPressEvent(QKeyEvent*);
void resizeEvent(QResizeEvent*);
void closeEvent(QCloseEvent*);
void refreshActions(bool);
void updateWindow();
void switchView();