Page 1 of 1

Open ASCII bug. Kubuntu

Posted: Wed Jun 19, 2013 1:27 pm
by psullie
Hi all

First off thank you for this excellent software.

I've compiled a copy on Kubuntu 12.10 with CMake, and noticed a small issue with the open file option.

When I attempt to open an .pts file with the ASCII option via file -> open CC uses the open BIN command instead resulting in a garbled import. Fortunately the drag to viewer option works like a charm and the pts file opens as expected. (I only discovered this route when I was checking the ccViewer build)

Let me know if you need any more info, glad to help if I can.

Cheers

Paul

Re: Open ASCII bug. Kubuntu

Posted: Wed Jun 19, 2013 2:34 pm
by daniel
I've looked at the code, and the only reason for this would be that the 'CC_FILE_TYPES_ENUMS' and 'CC_FILE_TYPE_FILTERS' arrays are not consistent (which would be quite strange) ... or that the filter returned by QFileDialog::getOpenFileNames is wrong ('selectedFilter').

Can you check the output of the QFileDialog::getOpenFileNames method by adding a log output in 'MainWindow::loadFile' such as:

Code: Select all

ccLog::Print(selectedFilter);
And also check the value of all the enums:

Code: Select all

ccLog::Print("ASCII ENUM=%i\n",ASCII);
ccLog::Print("BIN ENUM=%i\n",BIN);
ccLog::Print("ASCII FILTER=%s\n",CC_FILE_TYPE_FILTERS[ASCII]);
ccLog::Print("BIN FILTER=%s\n",CC_FILE_TYPE_FILTERS[BIN]);
ccLog::Print("ASCII TYPE=%i\n",CC_FILE_TYPES_ENUMS[ASCII]);
ccLog::Print("BIN TYPE=%i\n",CC_FILE_TYPES_ENUMS[BIN]);

Re: Open ASCII bug. Kubuntu

Posted: Thu Jun 27, 2013 2:26 pm
by psullie
Hi Daniel

I've tried adding this to the mainwindow.cpp file and recompiling but I don't see any output.
I'm not much of a C++ coder it's very likely that I'm missing something.

Cheers

Paul

Re: Open ASCII bug. Kubuntu

Posted: Thu Jun 27, 2013 3:28 pm
by daniel
You should add these lines just at the very beginning of the loadFile method. And you can replace 'ccLog' by 'ccConsole' to be sure.

By the way, Is there anything displayed in the console at all?

Re: Open ASCII bug. Kubuntu

Posted: Mon Jul 01, 2013 9:05 am
by psullie
Hi Daniel

Here's the console output (just the end bit after loading plug-ins etc.):

[09:43:58] CloudCompare started!
[09:44:29] BIN CloudCompare binaries (*bin)
[09:44:29] ASCII ENUM=2

[09:44:29] BIN ENUM=3

[09:44:29] ASCII FILTER=ASCII FILES (*txt *.asc *.neu *.xyz *.pts *.csv)

[09:44:29] BIN FILTER=BIN CloudCompare binaries (*.bin)

[09:44:29] ASCII TYPE=2

[09:44:29] BIN TYPE=3

[09:44:29] [BIN] Opening file '/home/paul/Desktop/files/sample.pts'…
[09:44:29] [BIN] Version 1.0

CC then prompts with the 'Oups' dialogue: Hum, do you really want to load 858929203 point clouds? (a cancel button would be useful here)
The sample file is 1 cloud with 3.8 million points, CC then tries to import and will hang.

Also, the File -> Open dialogue will not display any files with the All (*.*) option or display OBJ files with the Wavefront (*.obj) options.
However all files tested so far will open by dragging into the main window.

Paul

Re: Open ASCII bug. Kubuntu

Posted: Tue Jul 02, 2013 7:48 am
by daniel
It seems that the QFileDialog returns the wrong selected filter. Moreover you don't even see the Yes/No buttons on the 'Oups' dialog?! There's definitely something wrong with Qt here.

Just to confirm something, can you add another trace:

Code: Select all

ccLog::Print(QString("Selected filter = ")+selectedFilter);
You can put this just after

Code: Select all

    if (selectedFiles.isEmpty())
        return;
It seems also that KDE has some limitations on their native file dialog (if I believe the Qt bugtracker). Can you un-comment the last argument of the call to QFileDialog::getOpenFileNames (remove the /* and */ around QFileDialog::DontUseNativeDialog and see if it changes anything?

And last but not least, for the records can you type the command below in a console and then report report us the Qt version?

Code: Select all

qmake --version
Thanks for the help.

Re: Open ASCII bug. Kubuntu

Posted: Wed Jul 03, 2013 9:04 am
by psullie
Hi Daniel

I think the issue was a bug with Qt, I applied a minor upgrade yesterday (0.190.6, 0.190.7) and when I re-compiled CC it opened the files correctly, except that when All(*.*) is selected it will not display any files in the dialogue window. Removing the comments from the QFileDialog corrected this.

qmake --version QMake version 2.01a Using Qt version 4.8.3 in /usr/lib/x86_64-linux-gnu

ASCII files (*.txt *.asc *.neu *.xyz *.pts *.csv)
Selected filter = ASCII files(*.txt *.asc *.neu *.xyz *.pts *.csv)
ASCII ENUM=2
BIN ENUM=3
ASCII FILTER=ASCII files(*.txt *.asc *.neu *.xyz *.pts *.csv)
BIN FILTER=BIN CloudCompare binaries (*.bin)
ASCII TYPE=2
BIN TYPE=3

Cheers

Paul

Re: Open ASCII bug. Kubuntu

Posted: Wed Jul 03, 2013 3:58 pm
by daniel
Thanks for the feedback.

I don't believe that we can patch the code specifically for Kubuntu though... I'll add a comment in the code so others might find the solution to this issue more easily.