mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
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 <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c92cf925bd
commit
ab95da8fd2
3 changed files with 25 additions and 0 deletions
|
@ -75,6 +75,10 @@ void init_qt_ui(int *argcp, char ***argvp, char *errormessage)
|
|||
MainWindow *window = new MainWindow();
|
||||
window->showError(errormessage);
|
||||
window->show();
|
||||
if (existing_filename && existing_filename[0] != '\0')
|
||||
window->setTitle(MWTF_FILENAME);
|
||||
else
|
||||
window->setTitle(MWTF_DEFAULT);
|
||||
}
|
||||
|
||||
const char *getSetting(QSettings &s, QString name)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
Loading…
Reference in a new issue