So, On the my tryto make the world better and separate the logic of the profiles I'v come to this:
The DiveProfilePlot method will be changed to something similar to this: void DiveDepthTimeModel::setDive(dive* d,const plot_info& pInfo) { // We need a way to find out if the dive setted is the same old dive, but pointers change, // and there's no UUID, for now, just repopulate everything. clear(); struct divecomputer *dc = NULL; if (d) dc = select_dc(&d->dc); populate_plot_entries(dive, dc, pInfo); sampleCount = pInfo.nr; dcSamples = pInfo.entry; beginInsertRows(QModelIndex(), 0, sampleCount-1); endInsertRows(); } The last two lines are magic-lines to tell Qt "Hey, data's ready, show it." But on the create_plot_data method, there's a return analyze_plot_info(pi); call that I didn't really understood. So, Linus, Dirk, Anyone that understand the internals of the profile.c code: Can I separate the calls like that? There was a call to /* Create the new plot data */ if (last_pi_entry) free((void *)last_pi_entry); last_pi_entry = populate_plot_entries(dive, dc, pInfo); but that seems a bit wrong ( why should I keep a pointer to the last_pi_entry? For now, those are the doubts. Tomaz
_______________________________________________ subsurface mailing list subsurface@hohndel.org http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface