code to show profile again

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
Tomaz Canabrava 2013-05-14 08:18:26 -03:00
parent 5868b37e6b
commit b0374047dd
5 changed files with 39 additions and 8 deletions

View file

@ -144,7 +144,7 @@ int trip_has_selected_dives(dive_trip_t *trip)
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 */
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)
{
struct dive *dive = get_dive(idx);
if (dive && !dive->selected) {
dive->selected = 1;
amount_selected++;
if (dive) {
if (!dive->selected){
dive->selected = 1;
amount_selected++;
}
selected_dive = idx;
}
}

View file

@ -55,6 +55,24 @@ void DiveListView::keyReleaseEvent(QKeyEvent* 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)
{
QList<QModelIndex> parents;

View file

@ -18,19 +18,19 @@
class DiveListView : public QTreeView
{
Q_OBJECT
public:
DiveListView(QWidget *parent = 0);
void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
void currentChanged(const QModelIndex& current, const QModelIndex& previous);
void setModel(QAbstractItemModel* model);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void keyPressEvent(QKeyEvent* event);
void keyReleaseEvent(QKeyEvent*);
void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags command);
Q_SIGNALS:
void currentDiveChanged(int divenr);
private:
bool mouseClickSelection;
};

View file

@ -42,6 +42,15 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()),
ui->ListWidget->setCurrentIndex(sortModel->index(0,0, firstDiveOrTrip));
else
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()

View file

@ -69,6 +69,8 @@ private Q_SLOTS:
void on_actionAboutSubsurface_triggered();
void on_actionUserManual_triggered();
void current_dive_changed(int divenr);
protected:
void closeEvent(QCloseEvent *);