Change the diveSiteMessage to show close or accept/reject

This gives us consistent behavior and allows closing the dive site
management screen without editing.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-03-10 11:35:05 -07:00
parent ca64f8a782
commit b81647bd8a
2 changed files with 24 additions and 10 deletions

View file

@ -670,17 +670,21 @@ void MultiFilter::closeFilter()
LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBox(parent), modified(false) LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBox(parent), modified(false)
{ {
ui.setupUi(this); ui.setupUi(this);
ui.diveSiteMessage->setText("You are editing the Dive Site");
ui.diveSiteMessage->setCloseButtonVisible(false); ui.diveSiteMessage->setCloseButtonVisible(false);
ui.diveSiteMessage->hide(); ui.diveSiteMessage->show();
QAction *action = new QAction(tr("Apply changes"), this); // create the three buttons and only show the close button for now
connect(action, SIGNAL(triggered(bool)), this, SLOT(acceptChanges())); closeAction = new QAction(tr("Close"), this);
ui.diveSiteMessage->addAction(action); connect(closeAction, SIGNAL(triggered(bool)), this, SLOT(rejectChanges()));
action = new QAction(tr("Discard changes"), this); acceptAction = new QAction(tr("Apply changes"), this);
connect(action, SIGNAL(triggered(bool)), this, SLOT(rejectChanges())); connect(acceptAction, SIGNAL(triggered(bool)), this, SLOT(acceptChanges()));
ui.diveSiteMessage->addAction(action);
rejectAction = new QAction(tr("Discard changes"), this);
connect(rejectAction, SIGNAL(triggered(bool)), this, SLOT(rejectChanges()));
ui.diveSiteMessage->setText(tr("Dive site management"));
ui.diveSiteMessage->addAction(closeAction);
} }
void LocationInformationWidget::setLocationId(uint32_t uuid) void LocationInformationWidget::setLocationId(uint32_t uuid)
@ -786,15 +790,24 @@ void LocationInformationWidget::resetState()
{ {
modified = false; modified = false;
resetPallete(); resetPallete();
ui.diveSiteMessage->hide(); MainWindow::instance()->dive_list()->setEnabled(true);
MainWindow::instance()->setEnabledToolbar(true); MainWindow::instance()->setEnabledToolbar(true);
ui.diveSiteMessage->setText(tr("Dive site management"));
ui.diveSiteMessage->addAction(closeAction);
ui.diveSiteMessage->removeAction(acceptAction);
ui.diveSiteMessage->removeAction(rejectAction);
ui.diveSiteMessage->setCloseButtonVisible(false);
} }
void LocationInformationWidget::enableEdition() void LocationInformationWidget::enableEdition()
{ {
MainWindow::instance()->dive_list()->setEnabled(false); MainWindow::instance()->dive_list()->setEnabled(false);
MainWindow::instance()->setEnabledToolbar(false); MainWindow::instance()->setEnabledToolbar(false);
ui.diveSiteMessage->show(); ui.diveSiteMessage->setText(tr("You are editing a dive site"));
ui.diveSiteMessage->removeAction(closeAction);
ui.diveSiteMessage->addAction(acceptAction);
ui.diveSiteMessage->addAction(rejectAction);
ui.diveSiteMessage->setCloseButtonVisible(false);
} }
void LocationInformationWidget::on_diveSiteCoordinates_textChanged(const QString& text) void LocationInformationWidget::on_diveSiteCoordinates_textChanged(const QString& text)

View file

@ -246,6 +246,7 @@ private:
struct dive_site *currentDs; struct dive_site *currentDs;
Ui::LocationInformation ui; Ui::LocationInformation ui;
bool modified; bool modified;
QAction *closeAction, *acceptAction, *rejectAction;
}; };
bool isGnome3Session(); bool isGnome3Session();