mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Make sure the save/cancel message is always shown
An addition to the "Move dive notes edit message above the scrollable widget" commit: Make sure the save/cancel message is always displayed on top, regardless of which tab is selected. Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
9b51901f35
commit
b1febf17b1
3 changed files with 58 additions and 25 deletions
|
|
@ -32,20 +32,15 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
ui.cylinders->setModel(cylindersModel);
|
ui.cylinders->setModel(cylindersModel);
|
||||||
ui.weights->setModel(weightModel);
|
ui.weights->setModel(weightModel);
|
||||||
ui.diveNotesMessage->hide();
|
closeMessage();
|
||||||
ui.diveEquipmentMessage->hide();
|
|
||||||
ui.diveNotesMessage->setCloseButtonVisible(false);
|
|
||||||
ui.diveEquipmentMessage->setCloseButtonVisible(false);
|
|
||||||
|
|
||||||
QAction *action = new QAction(tr("Save"), this);
|
QAction *action = new QAction(tr("Save"), this);
|
||||||
connect(action, SIGNAL(triggered(bool)), this, SLOT(acceptChanges()));
|
connect(action, SIGNAL(triggered(bool)), this, SLOT(acceptChanges()));
|
||||||
ui.diveEquipmentMessage->addAction(action);
|
addMessageAction(action);
|
||||||
ui.diveNotesMessage->addAction(action);
|
|
||||||
|
|
||||||
action = new QAction(tr("Cancel"), this);
|
action = new QAction(tr("Cancel"), this);
|
||||||
connect(action, SIGNAL(triggered(bool)), this, SLOT(rejectChanges()));
|
connect(action, SIGNAL(triggered(bool)), this, SLOT(rejectChanges()));
|
||||||
ui.diveEquipmentMessage->addAction(action);
|
addMessageAction(action);
|
||||||
ui.diveNotesMessage->addAction(action);
|
|
||||||
|
|
||||||
if (qApp->style()->objectName() == "oxygen")
|
if (qApp->style()->objectName() == "oxygen")
|
||||||
setDocumentMode(true);
|
setDocumentMode(true);
|
||||||
|
|
@ -164,6 +159,43 @@ void MainTab::addDiveStarted()
|
||||||
editMode = ADD;
|
editMode = ADD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainTab::addMessageAction(QAction* action)
|
||||||
|
{
|
||||||
|
ui.diveEquipmentMessage->addAction(action);
|
||||||
|
ui.diveNotesMessage->addAction(action);
|
||||||
|
ui.diveInfoMessage->addAction(action);
|
||||||
|
ui.diveStatisticsMessage->addAction(action);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainTab::hideMessage()
|
||||||
|
{
|
||||||
|
ui.diveNotesMessage->animatedHide();
|
||||||
|
ui.diveEquipmentMessage->animatedHide();
|
||||||
|
ui.diveInfoMessage->animatedHide();
|
||||||
|
ui.diveStatisticsMessage->animatedHide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainTab::closeMessage()
|
||||||
|
{
|
||||||
|
hideMessage();
|
||||||
|
ui.diveNotesMessage->setCloseButtonVisible(false);
|
||||||
|
ui.diveEquipmentMessage->setCloseButtonVisible(false);
|
||||||
|
ui.diveInfoMessage->setCloseButtonVisible(false);
|
||||||
|
ui.diveStatisticsMessage->setCloseButtonVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainTab::displayMessage(QString str)
|
||||||
|
{
|
||||||
|
ui.diveNotesMessage->setText(str);
|
||||||
|
ui.diveNotesMessage->animatedShow();
|
||||||
|
ui.diveEquipmentMessage->setText(str);
|
||||||
|
ui.diveEquipmentMessage->animatedShow();
|
||||||
|
ui.diveInfoMessage->setText(str);
|
||||||
|
ui.diveInfoMessage->animatedShow();
|
||||||
|
ui.diveStatisticsMessage->setText(str);
|
||||||
|
ui.diveStatisticsMessage->animatedShow();
|
||||||
|
}
|
||||||
|
|
||||||
void MainTab::enableEdition(EditMode newEditMode)
|
void MainTab::enableEdition(EditMode newEditMode)
|
||||||
{
|
{
|
||||||
if (selected_dive < 0 || editMode != NONE)
|
if (selected_dive < 0 || editMode != NONE)
|
||||||
|
|
@ -175,23 +207,16 @@ void MainTab::enableEdition(EditMode newEditMode)
|
||||||
notesBackup.clear();
|
notesBackup.clear();
|
||||||
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||||
// we are editing trip location and notes
|
// we are editing trip location and notes
|
||||||
ui.diveNotesMessage->setText(tr("This trip is being edited."));
|
displayMessage(tr("This trip is being edited."));
|
||||||
ui.diveNotesMessage->animatedShow();
|
|
||||||
ui.diveEquipmentMessage->setText(tr("This trip is being edited."));
|
|
||||||
ui.diveEquipmentMessage->animatedShow();
|
|
||||||
notesBackup[NULL].notes = ui.notes->toPlainText();
|
notesBackup[NULL].notes = ui.notes->toPlainText();
|
||||||
notesBackup[NULL].location = ui.location->text();
|
notesBackup[NULL].location = ui.location->text();
|
||||||
editMode = TRIP;
|
editMode = TRIP;
|
||||||
} else {
|
} else {
|
||||||
if (amount_selected > 1) {
|
if (amount_selected > 1) {
|
||||||
ui.diveNotesMessage->setText(tr("Multiple dives are being edited."));
|
displayMessage(tr("Multiple dives are being edited."));
|
||||||
ui.diveEquipmentMessage->setText(tr("Multiple dives are being edited."));
|
|
||||||
} else {
|
} else {
|
||||||
ui.diveNotesMessage->setText(tr("This dive is being edited."));
|
displayMessage(tr("This dive is being edited."));
|
||||||
ui.diveEquipmentMessage->setText(tr("This dive is being edited."));
|
|
||||||
}
|
}
|
||||||
ui.diveNotesMessage->animatedShow();
|
|
||||||
ui.diveEquipmentMessage->animatedShow();
|
|
||||||
|
|
||||||
// We may be editing one or more dives here. backup everything.
|
// We may be editing one or more dives here. backup everything.
|
||||||
struct dive *mydive;
|
struct dive *mydive;
|
||||||
|
|
@ -513,8 +538,7 @@ void MainTab::acceptChanges()
|
||||||
mainWindow()->dive_list()->setEnabled(true);
|
mainWindow()->dive_list()->setEnabled(true);
|
||||||
tabBar()->setTabIcon(0, QIcon()); // Notes
|
tabBar()->setTabIcon(0, QIcon()); // Notes
|
||||||
tabBar()->setTabIcon(1, QIcon()); // Equipment
|
tabBar()->setTabIcon(1, QIcon()); // Equipment
|
||||||
ui.diveNotesMessage->animatedHide();
|
hideMessage();
|
||||||
ui.diveEquipmentMessage->animatedHide();
|
|
||||||
/* now figure out if things have changed */
|
/* now figure out if things have changed */
|
||||||
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||||
if (notesBackup[NULL].notes != ui.notes->toPlainText() ||
|
if (notesBackup[NULL].notes != ui.notes->toPlainText() ||
|
||||||
|
|
@ -712,8 +736,7 @@ void MainTab::rejectChanges()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ui.diveNotesMessage->animatedHide();
|
hideMessage();
|
||||||
ui.diveEquipmentMessage->animatedHide();
|
|
||||||
mainWindow()->dive_list()->setEnabled(true);
|
mainWindow()->dive_list()->setEnabled(true);
|
||||||
notesBackup.clear();
|
notesBackup.clear();
|
||||||
resetPallete();
|
resetPallete();
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,10 @@ public slots:
|
||||||
void editCylinderWidget(const QModelIndex& index);
|
void editCylinderWidget(const QModelIndex& index);
|
||||||
void editWeightWidget(const QModelIndex& index);
|
void editWeightWidget(const QModelIndex& index);
|
||||||
void addDiveStarted();
|
void addDiveStarted();
|
||||||
|
void addMessageAction(QAction* action);
|
||||||
|
void hideMessage();
|
||||||
|
void closeMessage();
|
||||||
|
void displayMessage(QString str);
|
||||||
void enableEdition(EditMode newEditMode = NONE);
|
void enableEdition(EditMode newEditMode = NONE);
|
||||||
void toggleTriggeredColumn();
|
void toggleTriggeredColumn();
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -263,6 +263,9 @@
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout_4">
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
|
<widget class="KMessageWidget" name="diveEquipmentMessage" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
<widget class="QScrollArea" name="scrollArea_2">
|
<widget class="QScrollArea" name="scrollArea_2">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
|
@ -298,9 +301,6 @@
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="KMessageWidget" name="diveEquipmentMessage" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QWidget" name="widget" native="true">
|
<widget class="QWidget" name="widget" native="true">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
|
@ -343,6 +343,9 @@
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
|
<widget class="KMessageWidget" name="diveInfoMessage" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
<widget class="QScrollArea" name="scrollArea_3">
|
<widget class="QScrollArea" name="scrollArea_3">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
|
@ -650,6 +653,9 @@
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout1">
|
<layout class="QGridLayout" name="gridLayout1">
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
|
<widget class="KMessageWidget" name="diveStatisticsMessage" native="true"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
<widget class="QScrollArea" name="scrollArea_4">
|
<widget class="QScrollArea" name="scrollArea_4">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue