On Tue, 6 Sep 2011, Oliver Eichler wrote:

Can you set the svn:executable property in MacOSX/pimp-info.plist.py?

Here you are. Hope it worked!

Yup, that did it.

Oh well, looks like the Qt people broke QCoreApplication::processEvents(QEventLoop::ProcessEventsFlags, int maxtime)
on OS X, causing the track filter to slow to a crawl:

For any value for maxtime>0, every call to processEvents takes apparently at least max(100,maxtime) msec. Now this is called for every track point, so it takes a whole 5 minutes to filter a track with 3000 points, which is of course complete insane.

processEvents() without maxtime parameter returns instantly, so I'm using this one instead now in the track filter (not too eager to debug Qt...). There seems to be no other place in QTGL where processEvents() with maxtime is used.

The attached patch also eliminates a couple of runtime warnings.

Regards,
Michael

--
registered linux user #189917  --  http://counter.li.org/
Index: src/IMouse.cpp
===================================================================
--- src/IMouse.cpp      (revision 2964)
+++ src/IMouse.cpp      (working copy)
@@ -44,7 +44,7 @@
 
 IMouse::IMouse(CCanvas * canvas)
 : QObject(canvas)
-, cursor(QPixmap(":/cursor/Arrow"))
+, cursor(QPixmap(":/cursors/cursorArrow.png"))
 , canvas(canvas)
 , selTrkPt(0)
 , selRtePt(0)
Index: src/CMainWindow.cpp
===================================================================
--- src/CMainWindow.cpp (revision 2964)
+++ src/CMainWindow.cpp (working copy)
@@ -254,7 +254,7 @@
     leftSplitter->setCollapsible(2, false);
 
     statusCoord = new QLabel(this);
-    statusBar()->insertPermanentWidget(1,statusCoord);
+    statusBar()->addPermanentWidget(statusCoord);
 
     QSettings cfg;
     pathData = cfg.value("path/data","./").toString();
Index: src/CDlgTrackFilter.cpp
===================================================================
--- src/CDlgTrackFilter.cpp     (revision 2964)
+++ src/CDlgTrackFilter.cpp     (working copy)
@@ -169,7 +169,7 @@
     {
 
         progress.setValue(totalCnt++);
-        qApp->processEvents(QEventLoop::AllEvents, 100);
+        qApp->processEvents();
 
         *track1 << *trkpt;
         if(++trkptCnt >= chunk)
@@ -245,7 +245,7 @@
                 }
                 ++trkpt;
                 progress.setValue(i);
-                qApp->processEvents(QEventLoop::AllEvents, 100);
+                qApp->processEvents();
                 ++i;
                 if (progress.wasCanceled())
                 {
@@ -264,8 +264,6 @@
 
 void CDlgTrackFilter::reduceDataset(CTrack * trk)
 {
-
-
     if(checkReduceDataset->isChecked())
     {
         QList<CTrack::pt_t>& trkpts = trk->getTrackPoints();
@@ -300,7 +298,7 @@
                 ++trkpt;
                 ++i;
                 progress.setValue(i);
-                qApp->processEvents(QEventLoop::AllEvents, 100);
+                qApp->processEvents();
                 if (progress.wasCanceled())
                     break;
             }
@@ -329,6 +327,8 @@
 
             double lastEle = trkpt->ele;
 
+            bool checkAzimuth = checkAzimuthDelta->isEnabled() && 
checkAzimuthDelta->isChecked();
+
             while(trkpt != trkpts.end())
             {
 
@@ -341,7 +341,7 @@
 
                 double delta = distance(p1,p2,a1,a2);
 
-                if(checkAzimuthDelta->isEnabled() && 
checkAzimuthDelta->isChecked())
+                if(checkAzimuth)
                 {
                     if (abs(trkpt->azimuth) <= 180)
                     {
@@ -362,7 +362,7 @@
 
                 double deltaEle = abs(lastEle - trkpt->ele);
 
-                if( delta < min_distance || (AzimuthDelta < minAzimuthDelta && 
checkAzimuthDelta->isEnabled() && checkAzimuthDelta->isChecked()))
+                if (delta < min_distance || (checkAzimuth && AzimuthDelta < 
minAzimuthDelta))
                 {
                     if(deltaEle < 3)
                     {
@@ -374,7 +374,7 @@
                 {
                     p1 = p2;
                     progress.setValue(i);
-                    qApp->processEvents(QEventLoop::AllEvents, 100);
+                    qApp->processEvents();
                     if(AzimuthDelta >= minAzimuthDelta)
                     {
                         lastAzimuth = trkpt->azimuth;
@@ -414,7 +414,7 @@
                 trkpts[i].ele = window[2];
 
                 progress.setValue(i);
-                qApp->processEvents(QEventLoop::AllEvents, 100);
+                qApp->processEvents();
                 if (progress.wasCanceled())
                 {
                     break;
------------------------------------------------------------------------------
Malware Security Report: Protecting Your Business, Customers, and the 
Bottom Line. Protect your business and customers by understanding the 
threat from malware and how it can impact your online business. 
http://www.accelacomm.com/jaw/sfnl/114/51427462/
_______________________________________________
Qlandkartegt-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qlandkartegt-users

Reply via email to