[Top][All Lists]
[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/>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso resources/keymap.xml src/core/Config.c...,
Remon Sijrier <=