mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Move model related code from MainWindow and adjustments.
Moves the DiveTrip model related code to models.h The DiveTripModel was implemented in three parts: DiveTripModel.h DiveTripModel.cpp MainWindow.cpp (the code to populate the model) This patch changes the DiveTripModel from it's original implementation to the file models.h, wich should store all models (Dirk requested the Qt developers to not create 2 files per class, but instead to use a file for functionality, and data-models are one functionality.) Besides that, this code cleans up a bit the style: removed operator<< for .push_back, const references where they apply, moved the internal DiveItem class to the .cpp since it should be visible only to the DiveTripModel class, and redesigned the current interface of the model to be identical of the GTK one (used the UTF8-star and 2 subscribed, for instance). Amit (the creator of the original code) should comment here if it's ok with my changes. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
5da11cbc6a
commit
a0280ae7d2
6 changed files with 259 additions and 269 deletions
|
|
@ -13,7 +13,6 @@
|
|||
#include <QDateTime>
|
||||
|
||||
#include "divelistview.h"
|
||||
#include "divetripmodel.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "../dive.h"
|
||||
|
|
@ -21,45 +20,11 @@
|
|||
#include "../pref.h"
|
||||
|
||||
|
||||
MainWindow::MainWindow() : ui(new Ui::MainWindow())
|
||||
MainWindow::MainWindow() : ui(new Ui::MainWindow()),
|
||||
model(new DiveTripModel(this))
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
/* may want to change ctor to avoid filename as 1st param.
|
||||
* here we just use an empty string
|
||||
*/
|
||||
model = new DiveTripModel("",this);
|
||||
if (model) {
|
||||
ui->ListWidget->setModel(model);
|
||||
}
|
||||
/* we need root to parent all top level dives
|
||||
* trips need more work as it complicates parent/child stuff.
|
||||
*
|
||||
* Todo: look at alignment/format of e.g. duration in view
|
||||
*
|
||||
*/
|
||||
DiveItem *dive = 0;
|
||||
DiveItem *root = model->itemForIndex(QModelIndex());
|
||||
if (root) {
|
||||
int i;
|
||||
Q_UNUSED(dive)
|
||||
|
||||
struct dive *d;
|
||||
qDebug("address of dive_table %p", &dive_table);
|
||||
for_each_dive(i, d) {
|
||||
struct tm tm;
|
||||
char *buffer;
|
||||
utc_mkdate(d->when, &tm);
|
||||
buffer = get_dive_date_string(&tm);
|
||||
dive = new DiveItem(d->number,
|
||||
buffer,
|
||||
(float)d->duration.seconds/60,
|
||||
(float)d->maxdepth.mm/1000 ,
|
||||
d->location,
|
||||
root);
|
||||
free(buffer);
|
||||
}
|
||||
}
|
||||
ui->ListWidget->setModel(model);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionNew_triggered()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue