traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso resources/keymap.xml src/core/Config.c...


From: Remon Sijrier
Subject: [Traverso-commit] traverso resources/keymap.xml src/core/Config.c...
Date: Wed, 04 Apr 2007 12:08:58 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/04/04 12:08:58

Modified files:
        resources      : keymap.xml 
        src/core       : Config.cpp InputEngine.cpp InputEngine.h 
                         Track.cpp 
        src/traverso/dialogs/settings: Pages.cpp Pages.h 
        src/traverso   : traverso.qrc 
        src/traverso/ui: KeyboardConfigPage.ui 

Log message:
        * Added virtual (compiled in resources) keymaps directory to be able to 
compile in multiple keymaps
        * Added selector combo box + description in Settings Dialog
        * Search for custom keymaps in /homedir/.traverso/keymaps

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.43&r2=1.44
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Config.cpp?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/InputEngine.cpp?cvsroot=traverso&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/InputEngine.h?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Track.cpp?cvsroot=traverso&r1=1.46&r2=1.47
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/settings/Pages.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/settings/Pages.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/traverso.qrc?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/KeyboardConfigPage.ui?cvsroot=traverso&r1=1.1&r2=1.2

Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- resources/keymap.xml        4 Apr 2007 02:24:38 -0000       1.43
+++ resources/keymap.xml        4 Apr 2007 12:08:57 -0000       1.44
@@ -1,4 +1,8 @@
 <keymap>
+       <KeymapInfo version="1.0" author="R. Sijrier" 
+                       description="The default keymap supplied by Traverso. 
It provides both the 'point and click'
+                       interface, which most users are used too, and the more 
powerfull contextual interface, 
+                       where mouse and keyboard are used together." />
        <ModifierKeys>
                <key key="CTRL" />
                <key key="ALT" />

Index: src/core/Config.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Config.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- src/core/Config.cpp 29 Mar 2007 21:09:42 -0000      1.12
+++ src/core/Config.cpp 4 Apr 2007 12:08:57 -0000       1.13
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: Config.cpp,v 1.12 2007/03/29 21:09:42 benjie Exp $
+$Id: Config.cpp,v 1.13 2007/04/04 12:08:57 r_sijrier Exp $
 */
 
 #include "Config.h"
@@ -88,7 +88,7 @@
 
 void Config::init_input_engine( )
 {
-       ie().init_map(":/keymap");
+       ie().init_map(config().get_property("CCE", "keymap", 
"default").toString());
        ie().set_clear_time(config().get_property("CCE", "clearTime", 
2000).toInt());
        ie().set_hold_sensitiveness(config().get_property("CCE", "holdTimeout", 
200).toInt());
        ie().set_double_fact_interval(config().get_property("CCE", 
"doublefactTimeout", 200).toInt());

Index: src/core/InputEngine.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/InputEngine.cpp,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- src/core/InputEngine.cpp    2 Apr 2007 21:05:43 -0000       1.41
+++ src/core/InputEngine.cpp    4 Apr 2007 12:08:57 -0000       1.42
@@ -1118,13 +1118,17 @@
 }
 
 
-int InputEngine::init_map(const QString& mapFilename)
+int InputEngine::init_map(const QString& keymap)
 {
-       PENTER2;
-       PMESG2("INITIALIZING KEYMAP ... ");
+       PENTER;
+       
+       QString filename = ":/keymaps/" + keymap + ".xml";
+       if ( ! QFile::exists(filename)) {
+               filename = QDir::homePath() + "/.traverso/keymaps/" + keymap + 
".xml";
+       }
 
        QDomDocument doc("keymap");
-       QFile file(mapFilename);
+       QFile file(filename);
        if (!file.open(QIODevice::ReadOnly))
                return -1;
        if (!doc.setContent(&file)) {
@@ -1133,6 +1137,15 @@
        }
        file.close();
 
+       PMESG("Using keymap: %s", QS_C(keymap));
+       
+       foreach(IEAction* action, ieActions) {
+               delete action;
+       }
+       
+       ieActions.clear();
+       
+       
        QDomElement root = doc.documentElement();
        
        
@@ -1437,6 +1450,11 @@
        return isHolding;
 }
 
+Command * InputEngine::get_holding_command() const
+{
+       return holdingCommand;
+}
+
 QList< MenuData > InputEngine::create_menudata_for(QObject* item)
 {
        QList<MenuData > list;
@@ -1598,10 +1616,14 @@
        }
 }
 
-
-Command * InputEngine::get_holding_command() const
+IEAction::~ IEAction()
 {
-       return holdingCommand;
+       foreach(Data* data, objects) {
+               delete data;
+       }
+       foreach(Data* data, objectUsingModifierKeys) {
+               delete data;
+       }
 }
 
 //eof

Index: src/core/InputEngine.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/InputEngine.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/core/InputEngine.h      2 Apr 2007 21:05:43 -0000       1.17
+++ src/core/InputEngine.h      4 Apr 2007 12:08:57 -0000       1.18
@@ -75,7 +75,7 @@
 struct IEAction
 {
         void render_key_sequence(const QString& key1, const QString& key2);
-
+       ~IEAction();
         struct Data {
                QStringList modes;
                QVariantList arguments;

Index: src/core/Track.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Track.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -b -r1.46 -r1.47
--- src/core/Track.cpp  4 Apr 2007 00:30:38 -0000       1.46
+++ src/core/Track.cpp  4 Apr 2007 12:08:57 -0000       1.47
@@ -142,7 +142,7 @@
        set_pan( e.attribute( "pan", "" ).toFloat() );
        set_bus_in( e.attribute( "InBus", "" ).toAscii() );
        set_bus_out( e.attribute( "OutBus", "" ).toAscii() );
-       m_id = e.attribute( "id", "").toLongLong();
+       m_id = e.attribute("id", "0").toLongLong();
        if (m_id == 0) {
                m_id = create_id();
        }

Index: src/traverso/dialogs/settings/Pages.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/dialogs/settings/Pages.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/traverso/dialogs/settings/Pages.cpp     3 Apr 2007 21:25:25 -0000       
1.8
+++ src/traverso/dialogs/settings/Pages.cpp     4 Apr 2007 12:08:57 -0000       
1.9
@@ -30,6 +30,7 @@
 #include <Utils.h>
 #include <Themer.h>
 #include <InputEngine.h>
+#include <QDomDocument>
 
 
 /****************************************/
@@ -683,21 +684,35 @@
        
        m_configpage->doubleFactTimeoutSpinBox->setValue(doubleFactTimeout);
        m_configpage->holdTimeoutSpinBox->setValue(holdTimeout);
+       
+       QString defaultkeymap = config().get_property("CCE", "keymap", 
"default").toString();
+       int index = m_configpage->keymapComboBox->findText(defaultkeymap);
+       if (index >= 0) {
+               m_configpage->keymapComboBox->setCurrentIndex(index);
+       }
 }
 
 void KeyboardPage::save_config()
 {
+       QString currentkeymap = config().get_property("CCE", "keymap", 
"default").toString();
+       QString newkeymap = m_configpage->keymapComboBox->currentText();
+       
        config().set_property("CCE", "doublefactTimeout", 
m_configpage->doubleFactTimeoutSpinBox->value());
        config().set_property("CCE", "holdTimeout", 
m_configpage->holdTimeoutSpinBox->value());
+       config().set_property("CCE", "keymap", newkeymap);
        
        
ie().set_double_fact_interval(m_configpage->doubleFactTimeoutSpinBox->value());
        ie().set_hold_sensitiveness(m_configpage->holdTimeoutSpinBox->value());
+       if (currentkeymap != newkeymap) {
+               ie().init_map(newkeymap);
+       }
 }
 
 void KeyboardPage::reset_default_config()
 {
-       config().set_property("CCE", "doublefactTimeout", 200);
-       config().set_property("CCE", "holdTimeout", 200);
+       config().set_property("CCE", "doublefactTimeout", 180);
+       config().set_property("CCE", "holdTimeout", 150);
+       config().set_property("CCE", "keymap", "default");
        
        load_config();
 }
@@ -706,8 +721,51 @@
        : QWidget(parent)
 {
        setupUi(this);
+       connect(keymapComboBox, SIGNAL(currentIndexChanged(const QString)),
+               this, SLOT(keymap_index_changed(const QString)));
+       
+       update_keymap_combo();
+}
+
+void KeyboardConfigPage::keymap_index_changed(const QString& keymap)
+{
+       QString filename = ":/keymaps/" + keymap + ".xml";
+       if ( ! QFile::exists(filename)) {
+               filename = QDir::homePath() + "/.traverso/keymaps/" + keymap + 
".xml";
+       }
+       
+       QDomDocument doc("keymap");
+       QFile file(filename);
+       if (!file.open(QIODevice::ReadOnly))
+               return;
+       if (!doc.setContent(&file)) {
+               file.close();
+               return;
+       }
+       file.close();
+
+       QDomElement root = doc.documentElement();
+       QDomNode mapinfo = root.firstChildElement("KeymapInfo");
+       QDomElement e = mapinfo.toElement();
+       QString description = e.attribute("description", tr("No description set 
for this keymap"));
+       
+       descriptionTextEdit->setHtml(description);
 }
 
+void KeyboardConfigPage::update_keymap_combo()
+{
+       keymapComboBox->clear();
+       
+       QDir keymapdir(":/keymaps");
+       foreach (QString filename, keymapdir.entryList(QDir::Files)) {
+               keymapComboBox->insertItem(0, filename.remove(".xml"));
+       }
+       
+       keymapdir.setPath(QDir::homePath() + "/.traverso/keymaps");
+       foreach (QString filename, keymapdir.entryList(QDir::Files)) {
+               keymapComboBox->insertItem(0, filename.remove(".xml"));
+       }
+}
 
 
 /****************************************/

Index: src/traverso/dialogs/settings/Pages.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/dialogs/settings/Pages.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/traverso/dialogs/settings/Pages.h       3 Apr 2007 21:25:25 -0000       
1.3
+++ src/traverso/dialogs/settings/Pages.h       4 Apr 2007 12:08:57 -0000       
1.4
@@ -80,10 +80,15 @@
 
 class KeyboardConfigPage : public QWidget, private Ui::KeyboardConfigPage
 {
+       Q_OBJECT
 public:
        KeyboardConfigPage(QWidget* parent = 0);
 private:
        friend class KeyboardPage;
+       
+private slots:
+       void keymap_index_changed(const QString& keymap);
+       void update_keymap_combo();
 };
 
 class BehaviorConfigPage : public QWidget, private Ui::BehaviorConfigPage

Index: src/traverso/traverso.qrc
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/traverso.qrc,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/traverso/traverso.qrc   16 Mar 2007 00:10:26 -0000      1.11
+++ src/traverso/traverso.qrc   4 Apr 2007 12:08:58 -0000       1.12
@@ -14,7 +14,7 @@
                <file 
alias="cursorGain">../../resources/images/cursorGain.xpm</file>
                <file 
alias="traverso">../../resources/images/traverso.xpm</file>
                <file 
alias="windowicon">../../resources/images/windowicon.xpm</file>
-               <file alias="keymap">../../resources/keymap.xml</file>
+               <file 
alias="keymaps/default.xml">../../resources/keymap.xml</file>
                <file alias="fadeshapes">../../resources/fadeshapes.xml</file>
                <file 
alias="themes/TraversoLight/traversotheme.xml">../../resources/themes/default/traversotheme.xml</file>
 
                <file alias="helpfile">../../resources/help.text</file>

Index: src/traverso/ui/KeyboardConfigPage.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/KeyboardConfigPage.ui,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- src/traverso/ui/KeyboardConfigPage.ui       27 Feb 2007 19:51:54 -0000      
1.1
+++ src/traverso/ui/KeyboardConfigPage.ui       4 Apr 2007 12:08:58 -0000       
1.2
@@ -5,8 +5,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
-    <height>114</height>
+    <width>341</width>
+    <height>285</height>
    </rect>
   </property>
   <property name="windowTitle" >
@@ -17,7 +17,7 @@
     <number>0</number>
    </property>
    <property name="spacing" >
-    <number>12</number>
+    <number>6</number>
    </property>
    <item>
     <widget class="QLabel" name="keyboardLabel" >
@@ -146,6 +146,76 @@
      </layout>
     </widget>
    </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_2" >
+     <property name="title" >
+      <string>Keymap</string>
+     </property>
+     <layout class="QVBoxLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>9</number>
+      </property>
+      <item>
+       <layout class="QHBoxLayout" >
+        <property name="margin" >
+         <number>0</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="label_2" >
+          <property name="text" >
+           <string>Select keymap</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QComboBox" name="keymapComboBox" />
+        </item>
+       </layout>
+      </item>
+      <item>
+       <widget class="QTextEdit" name="descriptionTextEdit" >
+        <property name="enabled" >
+         <bool>false</bool>
+        </property>
+        <property name="acceptDrops" >
+         <bool>false</bool>
+        </property>
+        <property name="frameShape" >
+         <enum>QFrame::NoFrame</enum>
+        </property>
+        <property name="horizontalScrollBarPolicy" >
+         <enum>Qt::ScrollBarAlwaysOff</enum>
+        </property>
+        <property name="undoRedoEnabled" >
+         <bool>false</bool>
+        </property>
+        <property name="textInteractionFlags" >
+         <enum>Qt::NoTextInteraction</enum>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <spacer>
+     <property name="orientation" >
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" >
+      <size>
+       <width>20</width>
+       <height>16</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
   </layout>
  </widget>
  <resources/>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]