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
		Add a link
		
	
		Reference in a new issue