mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	code to show profile again
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
		
							parent
							
								
									5868b37e6b
								
							
						
					
					
						commit
						b0374047dd
					
				
					 5 changed files with 39 additions and 8 deletions
				
			
		|  | @ -924,9 +924,11 @@ void merge_dive_index(int i, struct dive *a) | ||||||
| void select_dive(int idx) | void select_dive(int idx) | ||||||
| { | { | ||||||
| 	struct dive *dive = get_dive(idx); | 	struct dive *dive = get_dive(idx); | ||||||
| 	if (dive && !dive->selected) { | 	if (dive) { | ||||||
| 		dive->selected = 1; | 		if (!dive->selected){ | ||||||
| 		amount_selected++; | 			dive->selected = 1; | ||||||
|  | 			amount_selected++; | ||||||
|  | 		} | ||||||
| 		selected_dive = idx; | 		selected_dive = idx; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -55,6 +55,24 @@ void DiveListView::keyReleaseEvent(QKeyEvent* event) | ||||||
| 	QWidget::keyReleaseEvent(event); | 	QWidget::keyReleaseEvent(event); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void DiveListView::currentChanged(const QModelIndex& current, const QModelIndex& previous) | ||||||
|  | { | ||||||
|  | 	if (!current.isValid()) | ||||||
|  | 		return; | ||||||
|  | 	const QAbstractItemModel *model = current.model(); | ||||||
|  | 	int selectedDive = 0; | ||||||
|  | 	struct dive *dive = (struct dive*) model->data(current, TreeItemDT::DIVE_ROLE).value<void*>(); | ||||||
|  | 	if (!dive) { // it's a trip! select first child.
 | ||||||
|  | 		dive = (struct dive*) model->data(current.child(0,0), TreeItemDT::DIVE_ROLE).value<void*>(); | ||||||
|  | 		selectedDive = get_divenr(dive); | ||||||
|  | 	}else{ | ||||||
|  | 		selectedDive = get_divenr(dive); | ||||||
|  | 	} | ||||||
|  | 	if (selectedDive == selected_dive) | ||||||
|  | 		return; | ||||||
|  | 	Q_EMIT currentDiveChanged(selectedDive); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void DiveListView::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected) | void DiveListView::selectionChanged(const QItemSelection& selected, const QItemSelection& deselected) | ||||||
| { | { | ||||||
| 	QList<QModelIndex> parents; | 	QList<QModelIndex> parents; | ||||||
|  |  | ||||||
|  | @ -18,19 +18,19 @@ | ||||||
| 
 | 
 | ||||||
| class DiveListView : public QTreeView | class DiveListView : public QTreeView | ||||||
| { | { | ||||||
|  | 	Q_OBJECT | ||||||
| public: | public: | ||||||
| 	DiveListView(QWidget *parent = 0); | 	DiveListView(QWidget *parent = 0); | ||||||
| 
 |  | ||||||
| 	void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected); | 	void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected); | ||||||
|  | 	void currentChanged(const QModelIndex& current, const QModelIndex& previous); | ||||||
| 	void setModel(QAbstractItemModel* model); | 	void setModel(QAbstractItemModel* model); | ||||||
| 
 |  | ||||||
| 	void mousePressEvent(QMouseEvent* event); | 	void mousePressEvent(QMouseEvent* event); | ||||||
| 	void mouseReleaseEvent(QMouseEvent* event); | 	void mouseReleaseEvent(QMouseEvent* event); | ||||||
| 	void keyPressEvent(QKeyEvent* event); | 	void keyPressEvent(QKeyEvent* event); | ||||||
| 	void keyReleaseEvent(QKeyEvent*); | 	void keyReleaseEvent(QKeyEvent*); | ||||||
| 
 |  | ||||||
| 	void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags command); | 	void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags command); | ||||||
| 
 | Q_SIGNALS: | ||||||
|  | 	void currentDiveChanged(int divenr); | ||||||
| private: | private: | ||||||
| 	bool mouseClickSelection; | 	bool mouseClickSelection; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -42,6 +42,15 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()), | ||||||
| 		ui->ListWidget->setCurrentIndex(sortModel->index(0,0, firstDiveOrTrip)); | 		ui->ListWidget->setCurrentIndex(sortModel->index(0,0, firstDiveOrTrip)); | ||||||
| 	else | 	else | ||||||
| 		ui->ListWidget->setCurrentIndex(firstDiveOrTrip); | 		ui->ListWidget->setCurrentIndex(firstDiveOrTrip); | ||||||
|  | 
 | ||||||
|  | 	connect(ui->ListWidget, SIGNAL(currentDiveChanged(int)), this, SLOT(current_dive_changed(int))); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void MainWindow::current_dive_changed(int divenr) | ||||||
|  | { | ||||||
|  | 	select_dive(divenr); | ||||||
|  | 	redrawProfile(); | ||||||
|  | 	ui->InfoWidget->updateDiveInfo(divenr); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MainWindow::redrawProfile() | void MainWindow::redrawProfile() | ||||||
|  |  | ||||||
|  | @ -69,6 +69,8 @@ private Q_SLOTS: | ||||||
| 	void on_actionAboutSubsurface_triggered(); | 	void on_actionAboutSubsurface_triggered(); | ||||||
| 	void on_actionUserManual_triggered(); | 	void on_actionUserManual_triggered(); | ||||||
| 
 | 
 | ||||||
|  | 	void current_dive_changed(int divenr); | ||||||
|  | 
 | ||||||
| protected: | protected: | ||||||
| 	void closeEvent(QCloseEvent *); | 	void closeEvent(QCloseEvent *); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue