[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kate/view
From:       Erlend Hamberg <ehamberg () gmail ! com>
Date:       2008-05-27 18:39:04
Message-ID: 1211913544.331890.9995.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 813443 by ehamberg:

create KateViNormalMode when needed by using a lazy initialiser. thanks to robin for the tip.


 M  +11 -8     kateviewinternal.cpp  
 M  +2 -1      kateviewinternal.h  


--- trunk/KDE/kdelibs/kate/view/kateviewinternal.cpp #813442:813443
@@ -99,7 +99,7 @@
   , m_smartDirty(false)
   , m_viInputMode(false)
   , m_currentViMode(NormalMode)
-  , m_viCommandParser(0)
+  , m_viNormalMode(0)
 {
   m_watcherCount1 = 0;
   m_watcherCount3 = 0;
@@ -196,11 +196,6 @@
 
   m_dragInfo.state = diNone;
 
-  if ( m_view->config( )->viInputMode( ) ) {
-    kDebug( 13070 ) << "Vi Input Mode enabled, creating a KateViNormalMode instance";
-    m_viCommandParser = new KateViNormalMode( m_view, this );
-  }
-
   // timers
   connect( &m_dragScrollTimer, SIGNAL( timeout() ),
              this, SLOT( doDragScroll() ) );
@@ -268,7 +263,8 @@
   qDeleteAll(m_dynamicHighlights);
 
   delete m_imPreedit;
-  delete m_viCommandParser;
+  if ( m_viNormalMode )
+    delete m_viNormalMode;
 
   //kDebug( 13030 ) << m_watcherCount1 << m_watcherCount3;
 }
@@ -2151,7 +2147,7 @@
   const int key = e->key() | (e->modifiers() & Qt::ShiftModifier);
 
   if ( m_view->viInputMode() && m_view->getCurrentViMode() != InsertMode ) {
-    m_viCommandParser->handleKeypress( e );
+    getViNormalMode()->handleKeypress( e );
     return;
   }
 
@@ -3599,4 +3595,11 @@
 
 //END IM INPUT STUFF
 
+KateViNormalMode* KateViewInternal::getViNormalMode()
+{
+  if ( !m_viNormalMode )
+    m_viNormalMode = new KateViNormalMode( m_view, this );
+  return m_viNormalMode;
+}
+
 // kate: space-indent on; indent-width 2; replace-tabs on;
--- trunk/KDE/kdelibs/kate/view/kateviewinternal.h #813442:813443
@@ -451,7 +451,8 @@
   private:
     bool m_viInputMode;
     ViMode m_currentViMode;
-    KateViNormalMode* m_viCommandParser;
+    KateViNormalMode* m_viNormalMode;
+    KateViNormalMode* getViNormalMode();
 };
 
 #endif
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic