mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Added code to Select a dive, fixed minor annoyances.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
82b1b04920
commit
696c9ccacd
8 changed files with 45 additions and 39 deletions
9
dive.c
9
dive.c
|
@ -1810,6 +1810,15 @@ struct dive *merge_dives(struct dive *a, struct dive *b, int offset, gboolean pr
|
|||
return res;
|
||||
}
|
||||
|
||||
int get_index_for_dive(struct dive *dive) {
|
||||
int i;
|
||||
struct dive *d;
|
||||
for_each_dive(i, d)
|
||||
if (d == dive)
|
||||
return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
struct dive *find_dive_including(timestamp_t when)
|
||||
{
|
||||
int i;
|
||||
|
|
2
dive.h
2
dive.h
|
@ -350,6 +350,8 @@ struct dive {
|
|||
struct divecomputer dc;
|
||||
};
|
||||
|
||||
extern int get_index_for_dive(struct dive *dive);
|
||||
|
||||
static inline int dive_has_gps_location(struct dive *dive)
|
||||
{
|
||||
return dive->latitude.udeg || dive->longitude.udeg;
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "../divelist.h"
|
||||
#include "../pref.h"
|
||||
#include "modeldelegates.h"
|
||||
#include "models.h"
|
||||
|
||||
MainWindow::MainWindow() : ui(new Ui::MainWindow()),
|
||||
model(new DiveTripModel(this)),
|
||||
|
@ -31,11 +32,22 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()),
|
|||
ui->setupUi(this);
|
||||
sortModel->setSourceModel(model);
|
||||
ui->ListWidget->setModel(sortModel);
|
||||
connect(ui->ListWidget, SIGNAL(activated(QModelIndex)), this, SLOT(diveSelected(QModelIndex)));
|
||||
|
||||
setWindowIcon(QIcon(":subsurface-icon"));
|
||||
readSettings();
|
||||
}
|
||||
|
||||
void MainWindow::diveSelected(const QModelIndex& index)
|
||||
{
|
||||
struct dive *dive = (struct dive*) index.model()->data(index, TreeItemDT::DIVE_ROLE).value<void*>();
|
||||
|
||||
if (dive)
|
||||
selected_dive = get_index_for_dive(dive);
|
||||
|
||||
// Here should be the code to update the other widgets.
|
||||
}
|
||||
|
||||
void MainWindow::on_actionNew_triggered()
|
||||
{
|
||||
qDebug("actionNew");
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#define MAINWINDOW_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QModelIndex>
|
||||
|
||||
class QSortFilterProxyModel;
|
||||
class DiveTripModel;
|
||||
|
@ -66,6 +67,8 @@ private Q_SLOTS:
|
|||
void on_actionAboutSubsurface_triggered();
|
||||
void on_actionUserManual_triggered();
|
||||
|
||||
void diveSelected(const QModelIndex& index);
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *);
|
||||
|
||||
|
|
|
@ -57,45 +57,14 @@
|
|||
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6b9be8, stop: 1 #577fbf);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
QTreeView::branch {
|
||||
background: palette(base);
|
||||
}
|
||||
|
||||
QTreeView::branch:has-siblings:!adjoins-item {
|
||||
background: cyan;
|
||||
}
|
||||
|
||||
QTreeView::branch:has-siblings:adjoins-item {
|
||||
background: red;
|
||||
}
|
||||
|
||||
QTreeView::branch:!has-children:!has-siblings:adjoins-item {
|
||||
background: blue;
|
||||
}
|
||||
|
||||
QTreeView::branch:closed:has-children:has-siblings {
|
||||
background: pink;
|
||||
}
|
||||
|
||||
QTreeView::branch:has-children:!has-siblings:closed {
|
||||
background: gray;
|
||||
}
|
||||
|
||||
QTreeView::branch:open:has-children:has-siblings {
|
||||
background: magenta;
|
||||
}
|
||||
|
||||
QTreeView::branch:open:has-children:!has-siblings {
|
||||
background: green;
|
||||
}
|
||||
*/
|
||||
</string>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
<property name="rootIsDecorated">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
|
|
@ -22,10 +22,11 @@ StarWidgetsDelegate::StarWidgetsDelegate(QWidget* parent):
|
|||
void StarWidgetsDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
|
||||
{
|
||||
QStyledItemDelegate::paint(painter, option, index);
|
||||
|
||||
if (!index.isValid())
|
||||
return;
|
||||
|
||||
QVariant value = index.model()->data(index, Qt::DisplayRole);
|
||||
QVariant value = index.model()->data(index, TreeItemDT::STAR_ROLE);
|
||||
|
||||
if (!value.isValid())
|
||||
return;
|
||||
|
|
|
@ -490,11 +490,17 @@ QVariant DiveItem::data(int column, int role) const
|
|||
case LOCATION:
|
||||
retVal = QString(dive->location);
|
||||
break;
|
||||
case RATING:
|
||||
retVal = dive->rating;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(role == STAR_ROLE){
|
||||
retVal = dive->rating;
|
||||
}
|
||||
|
||||
if(role == DIVE_ROLE){
|
||||
retVal = QVariant::fromValue<void*>(dive);
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
|
|
@ -82,7 +82,11 @@ private:
|
|||
struct TreeItemDT {
|
||||
Q_DECLARE_TR_FUNCTIONS ( TreeItemDT );
|
||||
public:
|
||||
enum Column {NR, DATE, RATING, DEPTH, DURATION, TEMPERATURE, TOTALWEIGHT, SUIT, CYLINDER, NITROX, SAC, OTU, MAXCNS, LOCATION, COLUMNS };
|
||||
enum Column {NR, DATE, RATING, DEPTH, DURATION, TEMPERATURE, TOTALWEIGHT,
|
||||
SUIT, CYLINDER, NITROX, SAC, OTU, MAXCNS, LOCATION, DIVE, COLUMNS };
|
||||
|
||||
enum ExtraRoles{STAR_ROLE = Qt::UserRole + 1, DIVE_ROLE};
|
||||
|
||||
virtual ~TreeItemDT();
|
||||
int columnCount() const {
|
||||
return COLUMNS;
|
||||
|
|
Loading…
Add table
Reference in a new issue