From ab95da8fd2024a408b3136708071c85058bbe872 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Wed, 26 Jun 2013 15:13:06 +0300 Subject: Update main window title depending of current file state If a file has been opened from the command line or via the File menu the main window title becomes "Subsurface: filename.ext". Title also updates if 'File->Save As' is called. "Subsurface" only is displayed when no active file is present or post 'File->New' or 'File->Close'. To make this work a new public method is added - MainWindow::setTitle() and also an enum type MainWindowTitleFormat, which should allow more complicated formatting, such as showing the selected dives or the total number of dives (e.g. MWTF_FILENAME_N_DIVES). Signed-off-by: Lubomir I. Ivanov Signed-off-by: Dirk Hohndel --- qt-ui/mainwindow.cpp | 18 ++++++++++++++++++ qt-ui/mainwindow.h | 3 +++ 2 files changed, 21 insertions(+) (limited to 'qt-ui') diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 6036b3cd1..0655e7a40 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -120,6 +120,7 @@ void MainWindow::on_actionOpen_triggered() char *error = NULL; parse_file(fileNamePtr.data(), &error); set_filename(fileNamePtr.data(), TRUE); + setTitle(MWTF_FILENAME); if (error != NULL) { showError(error); @@ -164,6 +165,7 @@ void MainWindow::on_actionClose_triggered() ui->ProfileWidget->clear(); ui->ListWidget->reload(DiveTripModel::TREE); ui->globe->reload(); + setTitle(MWTF_DEFAULT); clear_events(); } @@ -673,6 +675,7 @@ void MainWindow::file_save_as(void) if (!filename.isNull() && !filename.isEmpty()) { save_dives(filename.toUtf8().data()); set_filename(filename.toUtf8().data(), TRUE); + setTitle(MWTF_FILENAME); mark_divelist_changed(FALSE); } } @@ -705,3 +708,18 @@ void MainWindow::showError(QString message) ui->mainErrorMessage->setMessageType(KMessageWidget::Error); ui->mainErrorMessage->animatedShow(); } + +void MainWindow::setTitle(enum MainWindowTitleFormat format) +{ + switch (format) { + case MWTF_DEFAULT: + setWindowTitle("Subsurface"); + break; + case MWTF_FILENAME: + QFile f(existing_filename); + QFileInfo fileInfo(f); + QString fileName(fileInfo.fileName()); + setWindowTitle("Subsurface: " + fileName); + break; + } +} diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h index 85825958d..bac74689d 100644 --- a/qt-ui/mainwindow.h +++ b/qt-ui/mainwindow.h @@ -31,6 +31,8 @@ class MainTab; class ProfileGraphicsView; class QTextBrowser; +enum MainWindowTitleFormat { MWTF_DEFAULT, MWTF_FILENAME }; + class MainWindow : public QMainWindow { Q_OBJECT @@ -43,6 +45,7 @@ public: DiveListView *dive_list(); GlobeGPS *globe(); void showError(QString message); + void setTitle(enum MainWindowTitleFormat format); private slots: -- cgit v1.2.3-70-g09d2