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.cylinders->setModel(cylindersModel);
|
||||
ui.weights->setModel(weightModel);
|
||||
ui.diveNotesMessage->hide();
|
||||
ui.diveEquipmentMessage->hide();
|
||||
ui.diveNotesMessage->setCloseButtonVisible(false);
|
||||
ui.diveEquipmentMessage->setCloseButtonVisible(false);
|
||||
closeMessage();
|
||||
|
||||
QAction *action = new QAction(tr("Save"), this);
|
||||
connect(action, SIGNAL(triggered(bool)), this, SLOT(acceptChanges()));
|
||||
ui.diveEquipmentMessage->addAction(action);
|
||||
ui.diveNotesMessage->addAction(action);
|
||||
addMessageAction(action);
|
||||
|
||||
action = new QAction(tr("Cancel"), this);
|
||||
connect(action, SIGNAL(triggered(bool)), this, SLOT(rejectChanges()));
|
||||
ui.diveEquipmentMessage->addAction(action);
|
||||
ui.diveNotesMessage->addAction(action);
|
||||
addMessageAction(action);
|
||||
|
||||
if (qApp->style()->objectName() == "oxygen")
|
||||
setDocumentMode(true);
|
||||
|
@ -164,6 +159,43 @@ void MainTab::addDiveStarted()
|
|||
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)
|
||||
{
|
||||
if (selected_dive < 0 || editMode != NONE)
|
||||
|
@ -175,23 +207,16 @@ void MainTab::enableEdition(EditMode newEditMode)
|
|||
notesBackup.clear();
|
||||
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||
// we are editing trip location and notes
|
||||
ui.diveNotesMessage->setText(tr("This trip is being edited."));
|
||||
ui.diveNotesMessage->animatedShow();
|
||||
ui.diveEquipmentMessage->setText(tr("This trip is being edited."));
|
||||
ui.diveEquipmentMessage->animatedShow();
|
||||
displayMessage(tr("This trip is being edited."));
|
||||
notesBackup[NULL].notes = ui.notes->toPlainText();
|
||||
notesBackup[NULL].location = ui.location->text();
|
||||
editMode = TRIP;
|
||||
} else {
|
||||
if (amount_selected > 1) {
|
||||
ui.diveNotesMessage->setText(tr("Multiple dives are being edited."));
|
||||
ui.diveEquipmentMessage->setText(tr("Multiple dives are being edited."));
|
||||
displayMessage(tr("Multiple dives are being edited."));
|
||||
} else {
|
||||
ui.diveNotesMessage->setText(tr("This dive is being edited."));
|
||||
ui.diveEquipmentMessage->setText(tr("This dive is being edited."));
|
||||
displayMessage(tr("This dive is being edited."));
|
||||
}
|
||||
ui.diveNotesMessage->animatedShow();
|
||||
ui.diveEquipmentMessage->animatedShow();
|
||||
|
||||
// We may be editing one or more dives here. backup everything.
|
||||
struct dive *mydive;
|
||||
|
@ -513,8 +538,7 @@ void MainTab::acceptChanges()
|
|||
mainWindow()->dive_list()->setEnabled(true);
|
||||
tabBar()->setTabIcon(0, QIcon()); // Notes
|
||||
tabBar()->setTabIcon(1, QIcon()); // Equipment
|
||||
ui.diveNotesMessage->animatedHide();
|
||||
ui.diveEquipmentMessage->animatedHide();
|
||||
hideMessage();
|
||||
/* now figure out if things have changed */
|
||||
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||
if (notesBackup[NULL].notes != ui.notes->toPlainText() ||
|
||||
|
@ -712,8 +736,7 @@ void MainTab::rejectChanges()
|
|||
}
|
||||
}
|
||||
|
||||
ui.diveNotesMessage->animatedHide();
|
||||
ui.diveEquipmentMessage->animatedHide();
|
||||
hideMessage();
|
||||
mainWindow()->dive_list()->setEnabled(true);
|
||||
notesBackup.clear();
|
||||
resetPallete();
|
||||
|
|
|
@ -82,6 +82,10 @@ public slots:
|
|||
void editCylinderWidget(const QModelIndex& index);
|
||||
void editWeightWidget(const QModelIndex& index);
|
||||
void addDiveStarted();
|
||||
void addMessageAction(QAction* action);
|
||||
void hideMessage();
|
||||
void closeMessage();
|
||||
void displayMessage(QString str);
|
||||
void enableEdition(EditMode newEditMode = NONE);
|
||||
void toggleTriggeredColumn();
|
||||
private:
|
||||
|
|
|
@ -263,6 +263,9 @@
|
|||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="KMessageWidget" name="diveEquipmentMessage" native="true"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QScrollArea" name="scrollArea_2">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
|
@ -298,9 +301,6 @@
|
|||
<property name="spacing">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="KMessageWidget" name="diveEquipmentMessage" native="true"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
|
@ -343,6 +343,9 @@
|
|||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="KMessageWidget" name="diveInfoMessage" native="true"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QScrollArea" name="scrollArea_3">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
|
@ -650,6 +653,9 @@
|
|||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout1">
|
||||
<item row="0" column="1">
|
||||
<widget class="KMessageWidget" name="diveStatisticsMessage" native="true"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QScrollArea" name="scrollArea_4">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
|
|
Loading…
Add table
Reference in a new issue