mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-17 04:06:26 +01:00
change suffix of keybinding files to ".keys" to avoid conflict with earlier versions.
Move some code around that should never have been inside libs/ardour to begin with.
This commit is contained in:
parent
9b9a7beb13
commit
589f2a1ab8
11 changed files with 64 additions and 45 deletions
|
|
@ -5295,7 +5295,7 @@ ARDOUR_UI::key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey
|
|||
|
||||
DEBUG_TRACE (DEBUG::Accelerators, "\tnot yet handled, try global bindings\n");
|
||||
|
||||
if (global_bindings->activate (k, Bindings::Press)) {
|
||||
if (global_bindings && global_bindings->activate (k, Bindings::Press)) {
|
||||
DEBUG_TRACE (DEBUG::Accelerators, "\t\thandled\n");
|
||||
return true;
|
||||
}
|
||||
|
|
@ -5335,7 +5335,7 @@ ARDOUR_UI::key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey
|
|||
|
||||
DEBUG_TRACE (DEBUG::Accelerators, "\tnot yet handled, try global bindings\n");
|
||||
|
||||
if (global_bindings->activate (k, Bindings::Press)) {
|
||||
if (global_bindings && global_bindings->activate (k, Bindings::Press)) {
|
||||
DEBUG_TRACE (DEBUG::Accelerators, "\t\thandled\n");
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -478,9 +478,17 @@ ARDOUR_UI::create_key_editor ()
|
|||
{
|
||||
KeyEditor* kedit = new KeyEditor;
|
||||
|
||||
kedit->add_tab (_("Global"), *global_bindings);
|
||||
kedit->add_tab (_("Editing"), *editor->bindings);
|
||||
kedit->add_tab (_("Mixing"), *mixer->bindings);
|
||||
if (global_bindings) {
|
||||
kedit->add_tab (_("Global"), *global_bindings);
|
||||
}
|
||||
|
||||
if (editor->bindings) {
|
||||
kedit->add_tab (_("Editing"), *editor->bindings);
|
||||
}
|
||||
|
||||
if (mixer->bindings) {
|
||||
kedit->add_tab (_("Mixing"), *mixer->bindings);
|
||||
}
|
||||
|
||||
return kedit;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#include "pbd/convert.h"
|
||||
#include "pbd/error.h"
|
||||
#include "pbd/file_utils.h"
|
||||
#include "pbd/basename.h"
|
||||
|
||||
#include "ardour/filesystem_paths.h"
|
||||
|
||||
|
|
@ -27,6 +28,7 @@
|
|||
#include "public_editor.h"
|
||||
#include "keyboard.h"
|
||||
#include "opts.h"
|
||||
#include "ui_config.h"
|
||||
|
||||
#include "i18n.h"
|
||||
|
||||
|
|
@ -35,7 +37,7 @@ using namespace Gtk;
|
|||
using namespace PBD;
|
||||
using namespace ARDOUR;
|
||||
using Gtkmm2ext::Keyboard;
|
||||
|
||||
|
||||
#ifdef GTKOSX
|
||||
guint ArdourKeyboard::constraint_mod = Keyboard::PrimaryModifier;
|
||||
#else
|
||||
|
|
@ -48,22 +50,47 @@ guint ArdourKeyboard::fine_adjust_mod = Keyboard::SecondaryModifier;
|
|||
guint ArdourKeyboard::push_points_mod = Keyboard::PrimaryModifier;
|
||||
guint ArdourKeyboard::note_size_relative_mod = Keyboard::PrimaryModifier;
|
||||
|
||||
void
|
||||
ArdourKeyboard::find_bindings_files (map<string,string>& files)
|
||||
{
|
||||
vector<std::string> found;
|
||||
Searchpath spath = ardour_config_search_path();
|
||||
|
||||
if (getenv ("ARDOUR_SAE")) {
|
||||
find_files_matching_pattern (found, spath, string_compose ("*SAE-*.%1", Keyboard::binding_filename_suffix));
|
||||
} else {
|
||||
find_files_matching_pattern (found, spath, string_compose ("*.%1", Keyboard::binding_filename_suffix));
|
||||
}
|
||||
|
||||
if (found.empty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (vector<std::string>::iterator x = found.begin(); x != found.end(); ++x) {
|
||||
std::string path(*x);
|
||||
pair<string,string> namepath;
|
||||
namepath.second = path;
|
||||
namepath.first = PBD::basename_nosuffix (path);
|
||||
files.insert (namepath);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ArdourKeyboard::setup_keybindings ()
|
||||
{
|
||||
using namespace ARDOUR_COMMAND_LINE;
|
||||
string default_bindings = "us.bindings";
|
||||
string default_bindings = string_compose ("%1%2", UIConfiguration::instance().get_default_bindings(), Keyboard::binding_filename_suffix);
|
||||
vector<string> strs;
|
||||
|
||||
binding_files.clear ();
|
||||
|
||||
ARDOUR::find_bindings_files (binding_files);
|
||||
find_bindings_files (binding_files);
|
||||
|
||||
/* set up the per-user bindings path */
|
||||
|
||||
string lowercase_program_name = downcase (string(PROGRAM_NAME));
|
||||
|
||||
user_keybindings_path = Glib::build_filename (user_config_directory(), lowercase_program_name + ".bindings");
|
||||
user_keybindings_path = Glib::build_filename (user_config_directory(), lowercase_program_name + binding_filename_suffix);
|
||||
|
||||
if (Glib::file_test (user_keybindings_path, Glib::FILE_TEST_EXISTS)) {
|
||||
std::pair<string,string> newpair;
|
||||
|
|
@ -76,7 +103,7 @@ ArdourKeyboard::setup_keybindings ()
|
|||
an actual filename (*.bindings)
|
||||
*/
|
||||
|
||||
if (!keybindings_path.empty() && keybindings_path.find (".bindings") == string::npos) {
|
||||
if (!keybindings_path.empty() && keybindings_path.find (binding_filename_suffix) == string::npos) {
|
||||
|
||||
// just a style name - allow user to
|
||||
// specify the layout type.
|
||||
|
|
@ -97,7 +124,7 @@ ArdourKeyboard::setup_keybindings ()
|
|||
keybindings_path += "-us";
|
||||
}
|
||||
|
||||
keybindings_path += ".bindings";
|
||||
keybindings_path += binding_filename_suffix;
|
||||
}
|
||||
|
||||
if (keybindings_path.empty()) {
|
||||
|
|
@ -120,6 +147,8 @@ ArdourKeyboard::setup_keybindings ()
|
|||
keybindings_path = default_bindings;
|
||||
}
|
||||
|
||||
cerr << "KP is " << keybindings_path << endl;
|
||||
|
||||
while (true) {
|
||||
|
||||
if (!Glib::path_is_absolute (keybindings_path)) {
|
||||
|
|
@ -127,7 +156,7 @@ ArdourKeyboard::setup_keybindings ()
|
|||
/* not absolute - look in the usual places */
|
||||
std::string keybindings_file;
|
||||
|
||||
if ( ! find_file (ardour_config_search_path(), keybindings_path, keybindings_file)) {
|
||||
if (!find_file (ardour_config_search_path(), keybindings_path, keybindings_file)) {
|
||||
|
||||
if (keybindings_path == default_bindings) {
|
||||
error << string_compose (_("Default keybindings not found - %1 will be hard to use!"), PROGRAM_NAME) << endmsg;
|
||||
|
|
@ -166,8 +195,10 @@ ArdourKeyboard::setup_keybindings ()
|
|||
}
|
||||
}
|
||||
|
||||
info << string_compose (_("Loading keybindings from %1"), keybindings_path) << endmsg;
|
||||
|
||||
load_keybindings (keybindings_path);
|
||||
|
||||
|
||||
/* catch changes made via some GTK mechanism */
|
||||
|
||||
// GtkAccelMap* accelmap = gtk_accel_map_get();
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@
|
|||
#ifndef __ardour_keyboard_h__
|
||||
#define __ardour_keyboard_h__
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
#include "ardour/types.h"
|
||||
#include "gtkmm2ext/keyboard.h"
|
||||
|
||||
|
|
@ -93,6 +96,8 @@ private:
|
|||
static guint fine_adjust_mod;
|
||||
static guint push_points_mod;
|
||||
static guint note_size_relative_mod;
|
||||
|
||||
void find_bindings_files (std::map<std::string,std::string>& files);
|
||||
};
|
||||
|
||||
#endif /* __ardour_keyboard_h__ */
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ UI_CONFIG_VARIABLE (uint32_t, lock_gui_after_seconds, "lock-gui-after-seconds",
|
|||
UI_CONFIG_VARIABLE (bool, draggable_playhead, "draggable-playhead", true)
|
||||
UI_CONFIG_VARIABLE (std::string, keyboard_layout, "keyboard-layout", "ansi")
|
||||
UI_CONFIG_VARIABLE (std::string, keyboard_layout_name, "keyboard-layout-name", "ansi")
|
||||
UI_CONFIG_VARIABLE (std::string, default_bindings, "default-bindings", "ardour")
|
||||
UI_CONFIG_VARIABLE (std::string, default_bindings, "default-bindings", "us")
|
||||
UI_CONFIG_VARIABLE (bool, only_copy_imported_files, "only-copy-imported-files", false)
|
||||
UI_CONFIG_VARIABLE (bool, default_narrow_ms, "default-narrow_ms", false)
|
||||
UI_CONFIG_VARIABLE (bool, name_new_markers, "name-new-markers", false)
|
||||
|
|
|
|||
|
|
@ -719,10 +719,10 @@ def build(bld):
|
|||
# explicitly state the use of perl here so that it works on windows too
|
||||
#
|
||||
a_rule = 'perl ../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap ${SRC} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] )
|
||||
for b in [ 'us' ] :
|
||||
for b in [ 'ardour' ] :
|
||||
obj = bld(
|
||||
target = b + '.bindings',
|
||||
source = b + '.bindings.in',
|
||||
target = b + '.keys',
|
||||
source = b + '.keys.in',
|
||||
rule = a_rule
|
||||
)
|
||||
obj.install_path = bld.env['CONFDIR']
|
||||
|
|
|
|||
|
|
@ -72,8 +72,6 @@ namespace ARDOUR {
|
|||
|
||||
extern LIBARDOUR_API const char* const ardour_config_info;
|
||||
|
||||
LIBARDOUR_API void find_bindings_files (std::map<std::string,std::string>&);
|
||||
|
||||
/* these only impact bundled installations */
|
||||
LIBARDOUR_API std::string translation_enable_path ();
|
||||
LIBARDOUR_API bool translations_are_enabled ();
|
||||
|
|
|
|||
|
|
@ -80,7 +80,6 @@
|
|||
#include "pbd/fpu.h"
|
||||
#include "pbd/file_utils.h"
|
||||
#include "pbd/enumwriter.h"
|
||||
#include "pbd/basename.h"
|
||||
|
||||
#include "midi++/port.h"
|
||||
#include "midi++/mmc.h"
|
||||
|
|
@ -608,31 +607,6 @@ ARDOUR::cleanup ()
|
|||
return;
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR::find_bindings_files (map<string,string>& files)
|
||||
{
|
||||
vector<std::string> found;
|
||||
Searchpath spath = ardour_config_search_path();
|
||||
|
||||
if (getenv ("ARDOUR_SAE")) {
|
||||
find_files_matching_pattern (found, spath, "*SAE-*.bindings");
|
||||
} else {
|
||||
find_files_matching_pattern (found, spath, "*.bindings");
|
||||
}
|
||||
|
||||
if (found.empty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (vector<std::string>::iterator x = found.begin(); x != found.end(); ++x) {
|
||||
std::string path(*x);
|
||||
pair<string,string> namepath;
|
||||
namepath.second = path;
|
||||
namepath.first = PBD::basename_nosuffix (path);
|
||||
files.insert (namepath);
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
ARDOUR::no_auto_connect()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -173,6 +173,8 @@ class LIBGTKMM2EXT_API Keyboard : public sigc::trackable, PBD::Stateful
|
|||
static bool load_keybindings (std::string const& path);
|
||||
static void save_keybindings (std::string const& path);
|
||||
|
||||
static std::string binding_filename_suffix;
|
||||
|
||||
int reset_bindings ();
|
||||
|
||||
sigc::signal0<void> ZoomVerticalModifierReleased;
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ bool Keyboard::can_save_keybindings = false;
|
|||
bool Keyboard::bindings_changed_after_save_became_legal = false;
|
||||
map<string,string> Keyboard::binding_files;
|
||||
string Keyboard::_current_binding_name;
|
||||
string Keyboard::binding_filename_suffix = X_(".keys");
|
||||
|
||||
/* set this to initially contain the modifiers we care about, then track changes in ::set_edit_modifier() etc. */
|
||||
GdkModifierType Keyboard::RelevantModifierKeyMask;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue