Tomaz,

I do not know whether you received this mail.
I sent this on Apr 22nd and on 24th.

Kind regards,
willem


-------- Forwarded Message --------
From:   42 2016 <>
X-Mozilla-Status:       0001
X-Mozilla-Status2:      00800000
X-Mozilla-Keys:         
Subject:        Fwd: Re: Subsurface mobile downloadfromdivecomputer
Reply-To:       [email protected]
References:     <[email protected]>
To:     Tomaz Canabrava <[email protected]>
From:   Willem Ferguson <[email protected]>
Organization:   University of Pretoria
X-Forwarded-Message-Id:         <[email protected]>
Message-ID:     <[email protected]>
Date:   Sun, 24 Apr 2016 10:44:42 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version:   1.0
In-Reply-To:    <[email protected]>
Content-Type: multipart/alternative; boundary="------------080004010703080806000900"




Tomaz,
I do not know whether you received this mail.
Kind regards,
willem


-------- Forwarded Message --------
From:   02 2016 <>
X-Mozilla-Status:       0001
X-Mozilla-Status2:      00800000
X-Mozilla-Keys:         
Reply-To:       [email protected]
Subject:        Re: Subsurface mobile downloadfromdivecomputer
References: <[email protected]> <CACk01_y362=c54_ogspksbfod7xypugmoiuvxqqo+jjamaj...@mail.gmail.com>
To:     Tomaz Canabrava <[email protected]>
Cc:     Subsurface Mailing List <[email protected]>
From:   Willem Ferguson <[email protected]>
Organization:   University of Pretoria
Message-ID:     <[email protected]>
Date:   Fri, 22 Apr 2016 19:45:01 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version:   1.0
In-Reply-To: <CACk01_y362=c54_ogspksbfod7xypugmoiuvxqqo+jjamaj...@mail.gmail.com> Content-Type: multipart/alternative; boundary="------------020904010100000309070704"



On 22/04/2016 15:55, Tomaz Canabrava wrote:


On Fri, Apr 22, 2016 at 10:48 AM, Willem Ferguson <[email protected]> wrote:


    I am forced to ask help. I have now spent about three weeks to
    solve this problem and I am making no headway whatsoever, probably
    because my understanding is limited. It is setting up the table to
    display the uploaded dives. I use a TableView to do this. QML
    creates it and I can set its attributes. Using the widget code in
    the present downloadfromdivecomputer.cpp, I pass a model to QML.
    But when I specify the model I get a segfault when executing the
    mobile code on Fedora. I know which C++ instruction throws the
    segfault but it does not help very much in this case. I just
    cannot get QML to accept and make use of the model. An important
    obstacle is the poor error messaging when working with QML.

    I need someone better qualified than myself to look through the
    code and tell me where I go wrong. It appears this is a bit of a
    quieter period in the development cycle. Would any one be prepared
    to look at it at all? Alternatively, is there a different approach
    I can take to locate the issue of how QML sees the model?


you forgot to send the code. :)
usually:

- Mark all methods you wanna call with Q_INVOKABLE
- export the model to the qml engine
- access it directly via the name that you used.
send the diff code and I can take a look today


    Kind regards,
    willem
    ___________


Tomaz,
The code was not meant to be attached. Here it is as a Dropbox link, all 45 MB of it as a tar.gz.

https://www.dropbox.com/sh/nmrzgw10ylq5ii2/AAAX0tbnx97tKQm8wVFzQbb4a?dl=0

The reason is that this is a pretty old version of Subsurface and I do not know how to diff an old version in a way that you can easily access it. Explanation: For downloading, I removed almost all of the code that is NOT widget-oriented from desktopwidgets/downloadfromdivecomputer.cpp and put it in subsurface-core/downloadmanager.cpp, together with a few mobile-oriented methods. download manager.cpp contains three main sections: Class DiveImportedModel : The class dealing with displaying downloaded dives
Class Downloadmanager:  The class controlling the download process
Class Downloadthread:  The class doing the actual work.

Downloadmanager includes, as a member, DiveImportedModel (see downloadfromdivecomputer.h), possibly the crux of the problem. It will also include Downloadthread as a member.
The QML interface for the C++ is qt-mobile/qml/DownloadFromDiveComputer.qml.

DownloadFromDiveComputer.qml has, around line 95, two blocks of code that are alternatives. One of the two code blocks needs to be commented out. If one compiles the mobile code with code block A commented out, the code compiles and runs on Linux (I use F23). When it runs, you can, within Subsurface-mobile do:
Select main menu on left
Select Manage dives
Select Download dives

In the bottom half of the screen is an empty table but with appropriate headings. This is where the downloaded dives are shown after download. The class DiveImportedModel controls this table. I wish to replace code block B with the simple instruction comprising code block A.

Now disable Code block B and enable code block A.
The program crashes upon launching.

The crash is caused by line 67 in subsurface/subsurface-mobile-helper.cpp (setContextProperty(downloadhelper.....)

Any advice will really be appreciated.

Kind regards,
willem

















_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to