[QGIS Commit] r13732 - trunk/qgis/src/app

svn_qgis at osgeo.org svn_qgis at osgeo.org
Mon Jun 14 12:11:20 EDT 2010


Author: jef
Date: 2010-06-14 16:11:20 +0000 (Mon, 14 Jun 2010)
New Revision: 13732

Modified:
   trunk/qgis/src/app/qgisapp.cpp
   trunk/qgis/src/app/qgisapp.h
   trunk/qgis/src/app/qgsmaptooladdfeature.cpp
Log:
workaround #2239

Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp	2010-06-14 14:18:01 UTC (rev 13731)
+++ trunk/qgis/src/app/qgisapp.cpp	2010-06-14 16:11:20 UTC (rev 13732)
@@ -366,6 +366,9 @@
 #ifdef HAVE_QWT
     , mpGpsWidget( NULL )
 #endif
+#ifdef Q_OS_WIN
+    , mSkipNextContextMenuEvent( 0 )
+#endif
 {
   if ( smInstance )
   {
@@ -1926,7 +1929,7 @@
   mActionAddToOverview->setIcon( getThemeIcon( "/mActionInOverview.png" ) );
   mActionAnnotation->setIcon( getThemeIcon( "/mActionAnnotation.png" ) );
   mActionFormAnnotation->setIcon( getThemeIcon( "/mActionFormAnnotation.png" ) );
-  mActionTextAnnotation->setIcon( getThemeIcon( "/mActionTextAnnotation.png" ) );  
+  mActionTextAnnotation->setIcon( getThemeIcon( "/mActionTextAnnotation.png" ) );
 
   //change themes of all composers
   QSet<QgsComposer*>::iterator composerIt = mPrintComposers.begin();
@@ -6365,6 +6368,26 @@
   }
 }
 
+#ifdef Q_OS_WIN
+// hope your wearing your peril sensitive sunglasses.
+void QgisApp::contextMenuEvent( QContextMenuEvent *e )
+{
+  if ( mSkipNextContextMenuEvent )
+  {
+    mSkipNextContextMenuEvent--;
+    e->ignore();
+    return;
+  }
+
+  QMainWindow::contextMenuEvent( e );
+}
+
+void QgisApp::skipNextContextMenuEvent()
+{
+  mSkipNextContextMenuEvent++;
+}
+#endif
+
 // Debug hook - used to output diagnostic messages when evoked (usually from the menu)
 /* Temporarily disabled...
    void QgisApp::debugHook()

Modified: trunk/qgis/src/app/qgisapp.h
===================================================================
--- trunk/qgis/src/app/qgisapp.h	2010-06-14 14:18:01 UTC (rev 13731)
+++ trunk/qgis/src/app/qgisapp.h	2010-06-14 16:11:20 UTC (rev 13732)
@@ -359,6 +359,11 @@
     //! returns pointer to map legend
     QgsLegend *legend();
 
+#if Q_OS_WIN
+    //! ugly hack
+    void skipNextContextMenuEvent();
+#endif
+
   public slots:
     //! Zoom to full extent
     void zoomFull();
@@ -433,6 +438,9 @@
     //! reimplements widget keyPress event so we can check if cancel was pressed
     virtual void keyPressEvent( QKeyEvent * event );
 
+    //! reimplements context menu event
+    virtual void contextMenuEvent( QContextMenuEvent *event );
+
   private slots:
     //! About QGis
     void about();
@@ -1117,6 +1125,10 @@
 
     int mLastComposerId;
 
+#ifdef Q_OS_WIN
+    int mSkipNextContextMenuEvent; // ugly hack
+#endif
+
 #ifdef HAVE_QWT
     //! Persistent GPS toolbox
     QgsGPSInformationWidget * mpGpsWidget;

Modified: trunk/qgis/src/app/qgsmaptooladdfeature.cpp
===================================================================
--- trunk/qgis/src/app/qgsmaptooladdfeature.cpp	2010-06-14 14:18:01 UTC (rev 13731)
+++ trunk/qgis/src/app/qgsmaptooladdfeature.cpp	2010-06-14 16:11:20 UTC (rev 13732)
@@ -31,6 +31,10 @@
 #include <QMouseEvent>
 #include <QSettings>
 
+#ifdef Q_OS_WIN
+#include <qgisapp.h>
+#endif
+
 QgsMapToolAddFeature::QgsMapToolAddFeature( QgsMapCanvas* canvas, CaptureMode tool ): QgsMapToolCapture( canvas, tool )
 {
 
@@ -482,6 +486,11 @@
           vlayer->endEditCommand();
         }
         mypDialog->deleteLater();
+
+#ifdef Q_OS_WIN
+        // hope your wearing your peril sensitive sunglasses.
+        QgisApp::instance()->skipNextContextMenuEvent();
+#endif
       }
       delete f;
 



More information about the QGIS-commit mailing list