mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-17 21:26:16 +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
10
divelist.c
10
divelist.c
|
@ -144,7 +144,7 @@ int trip_has_selected_dives(dive_trip_t *trip)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the values as we want to show them. Whole feet. But meters with one decimal for
|
/* Get the values as we want to show them. Whole feet. But meters with one decimal for
|
||||||
* values less than 20m, without decimals for larger values */
|
* values less than 20m, without decimals for larger values */
|
||||||
void get_depth_values(int depth, int *depth_int, int *depth_decimal, int *show_decimal)
|
void get_depth_values(int depth, int *depth_int, int *depth_decimal, int *show_decimal)
|
||||||
{
|
{
|
||||||
|
@ -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
Reference in a new issue