mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +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();
|
MainWindow *window = new MainWindow();
|
||||||
window->showError(errormessage);
|
window->showError(errormessage);
|
||||||
window->show();
|
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)
|
const char *getSetting(QSettings &s, QString name)
|
||||||
|
|
|
@ -120,6 +120,7 @@ void MainWindow::on_actionOpen_triggered()
|
||||||
char *error = NULL;
|
char *error = NULL;
|
||||||
parse_file(fileNamePtr.data(), &error);
|
parse_file(fileNamePtr.data(), &error);
|
||||||
set_filename(fileNamePtr.data(), TRUE);
|
set_filename(fileNamePtr.data(), TRUE);
|
||||||
|
setTitle(MWTF_FILENAME);
|
||||||
|
|
||||||
if (error != NULL) {
|
if (error != NULL) {
|
||||||
showError(error);
|
showError(error);
|
||||||
|
@ -164,6 +165,7 @@ void MainWindow::on_actionClose_triggered()
|
||||||
ui->ProfileWidget->clear();
|
ui->ProfileWidget->clear();
|
||||||
ui->ListWidget->reload(DiveTripModel::TREE);
|
ui->ListWidget->reload(DiveTripModel::TREE);
|
||||||
ui->globe->reload();
|
ui->globe->reload();
|
||||||
|
setTitle(MWTF_DEFAULT);
|
||||||
|
|
||||||
clear_events();
|
clear_events();
|
||||||
}
|
}
|
||||||
|
@ -673,6 +675,7 @@ void MainWindow::file_save_as(void)
|
||||||
if (!filename.isNull() && !filename.isEmpty()) {
|
if (!filename.isNull() && !filename.isEmpty()) {
|
||||||
save_dives(filename.toUtf8().data());
|
save_dives(filename.toUtf8().data());
|
||||||
set_filename(filename.toUtf8().data(), TRUE);
|
set_filename(filename.toUtf8().data(), TRUE);
|
||||||
|
setTitle(MWTF_FILENAME);
|
||||||
mark_divelist_changed(FALSE);
|
mark_divelist_changed(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -705,3 +708,18 @@ void MainWindow::showError(QString message)
|
||||||
ui->mainErrorMessage->setMessageType(KMessageWidget::Error);
|
ui->mainErrorMessage->setMessageType(KMessageWidget::Error);
|
||||||
ui->mainErrorMessage->animatedShow();
|
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 ProfileGraphicsView;
|
||||||
class QTextBrowser;
|
class QTextBrowser;
|
||||||
|
|
||||||
|
enum MainWindowTitleFormat { MWTF_DEFAULT, MWTF_FILENAME };
|
||||||
|
|
||||||
class MainWindow : public QMainWindow
|
class MainWindow : public QMainWindow
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -43,6 +45,7 @@ public:
|
||||||
DiveListView *dive_list();
|
DiveListView *dive_list();
|
||||||
GlobeGPS *globe();
|
GlobeGPS *globe();
|
||||||
void showError(QString message);
|
void showError(QString message);
|
||||||
|
void setTitle(enum MainWindowTitleFormat format);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue