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

List:       kde-commits
Subject:    KDE_3_3_BRANCH: kdebase/kxkb
From:       Andy Rysin <arysin () yahoo ! com>
Date:       2004-10-10 23:35:40
Message-ID: 20041010233540.460D916BC2 () office ! kde ! org
[Download RAW message or body]

CVS commit by rysin: 

- recompile layouts on errors (Bug #88882)
- lazy layouts compilation


  M +21 -14    kxkb.cpp   1.74.2.1


--- kdebase/kxkb/kxkb.cpp  #1.74:1.74.2.1
@@ -301,17 +301,24 @@ void KXKBApp::layoutApply()
 bool KXKBApp::setLayout(const QString& layout)
 {
-    bool res;
+    bool res = false;
     const char* baseGr = m_includes[layout]; 
     m_group = m_rules->getGroup(layout, baseGr);
 
-    if (m_compiledLayoutFileNames.contains(layout) && !m_forceSetXKBMap)
+    if ( m_compiledLayoutFileNames.contains(layout) && !m_forceSetXKBMap )
     {
         res = m_extension->setCompiledLayout(m_compiledLayoutFileNames[layout]);
+//      kdDebug() << "setting compiled for " << layout << ": " << res << endl;
+        if( res )
         m_extension->setGroup(m_group);
     }
-    else
+
+    if ( !res ) // try not compiled layout, store compiled if success
     {
         res = m_extension->setLayout(m_model, layout, m_variants[layout], m_group, baseGr);
+//      kdDebug() << "setting non-compiled for " << layout << ": " << res << endl;
+        if( res )
+            m_extension->getCompiledLayout(m_compiledLayoutFileNames[layout]);
     }
+
     if( res )
         m_layout = layout;
@@ -341,14 +348,14 @@ void KXKBApp::precompileLayouts()
     {
         QString layout(*it);
-        const char* baseGr = m_includes[layout]; 
-        int group = m_rules->getGroup(layout, baseGr);
-        if( m_extension->setLayout(m_model, layout, m_variants[layout], group, baseGr) ) {
+//      const char* baseGr = m_includes[layout]; 
+//      int group = m_rules->getGroup(layout, baseGr);
+//      if( m_extension->setLayout(m_model, layout, m_variants[layout], group, baseGr) ) {
         QString compiledLayoutFileName = tempDir + layout + ".xkm";
-        if( m_extension->getCompiledLayout(compiledLayoutFileName) )
+//          if( m_extension->getCompiledLayout(compiledLayoutFileName) )
             m_compiledLayoutFileNames[layout] = compiledLayoutFileName;
-        }
-        else {
-            kdDebug() << "Error precompiling layout " << layout << endl;
-        }
+//      }
+//      else {
+//          kdDebug() << "Error precompiling layout " << layout << endl;
+//      }
     }
 }


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

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