summaryrefslogtreecommitdiff
path: root/plugins/gtkui/prefwin.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gtkui/prefwin.c')
-rw-r--r--plugins/gtkui/prefwin.c86
1 files changed, 76 insertions, 10 deletions
diff --git a/plugins/gtkui/prefwin.c b/plugins/gtkui/prefwin.c
index 81bb49e1..546759a0 100644
--- a/plugins/gtkui/prefwin.c
+++ b/plugins/gtkui/prefwin.c
@@ -151,7 +151,6 @@ on_hk_slot_edited (GtkCellRendererText *renderer, gchar *path, gchar *new_text,
void
on_hk_slot_changed (GtkCellRendererCombo *combo, gchar *path, GtkTreeIter *new_iter, gpointer user_data) {
-
GtkTreeModel *combo_model = NULL;
g_object_get (combo, "model", &combo_model, NULL);
GValue gtitle = {0,}, gname = {0,};
@@ -197,6 +196,37 @@ on_hk_binding_edited (GtkCellRendererAccel *accel, gchar *path, guint accel_key,
strcat (new_value, "Alt ");
}
+ // translate numlock keycodes into non-numlock codes
+ switch (accel_key) {
+ case GDK_KP_0:
+ accel_key = GDK_KP_Insert;
+ break;
+ case GDK_KP_1:
+ accel_key = GDK_KP_End;
+ break;
+ case GDK_KP_2:
+ accel_key = GDK_KP_Down;
+ break;
+ case GDK_KP_3:
+ accel_key = GDK_KP_Page_Down;
+ break;
+ case GDK_KP_4:
+ accel_key = GDK_KP_Left;
+ break;
+ case GDK_KP_6:
+ accel_key = GDK_KP_Right;
+ break;
+ case GDK_KP_7:
+ accel_key = GDK_KP_Home;
+ break;
+ case GDK_KP_8:
+ accel_key = GDK_KP_Up;
+ break;
+ case GDK_KP_9:
+ accel_key = GDK_KP_Page_Up;
+ break;
+ }
+
// find key name from hotkeys plugin
DB_plugin_t *hotkeys = deadbeef->plug_get_for_id ("hotkeys");
if (hotkeys) {
@@ -334,12 +364,11 @@ prefwin_add_hotkeys_tab (GtkWidget *prefwin) {
GLADE_HOOKUP_OBJECT (prefwin, addhotkey, "addhotkey");
GLADE_HOOKUP_OBJECT (prefwin, removehotkey, "removehotkey");
- GtkTreeView *hktree = GTK_TREE_VIEW (lookup_widget (prefwin, "hotkeystree"));
GtkListStore *hkstore = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
GtkCellRenderer *rend_hk_slot = gtk_cell_renderer_combo_new ();
g_signal_connect ((gpointer)addhotkey, "clicked", G_CALLBACK (on_addhotkey_clicked), hkstore);
- g_signal_connect ((gpointer)removehotkey, "clicked", G_CALLBACK (on_removehotkey_clicked), hktree);
+ g_signal_connect ((gpointer)removehotkey, "clicked", G_CALLBACK (on_removehotkey_clicked), GTK_TREE_VIEW (hotkeystree));
GtkListStore *slots_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
// traverse all plugins and collect all exported actions to dropdown
@@ -372,9 +401,6 @@ prefwin_add_hotkeys_tab (GtkWidget *prefwin) {
g_object_set (G_OBJECT (rend_hk_slot), "model", slots_store, NULL);
g_object_set (G_OBJECT (rend_hk_slot), "editable", TRUE, NULL);
-// g_signal_connect ((gpointer)rend_hk_slot, "edited",
-// G_CALLBACK (on_hk_slot_edited),
-// hkstore);
g_signal_connect ((gpointer)rend_hk_slot, "changed",
G_CALLBACK (on_hk_slot_changed),
hkstore);
@@ -387,10 +413,10 @@ prefwin_add_hotkeys_tab (GtkWidget *prefwin) {
hkstore);
- GtkTreeViewColumn *hk_col1 = gtk_tree_view_column_new_with_attributes (_("Slot"), rend_hk_slot, "text", 0, NULL);
+ GtkTreeViewColumn *hk_col1 = gtk_tree_view_column_new_with_attributes (_("Action"), rend_hk_slot, "text", 0, NULL);
GtkTreeViewColumn *hk_col2 = gtk_tree_view_column_new_with_attributes (_("Key combination"), rend_hk_binding, "text", 1, NULL);
- gtk_tree_view_append_column (hktree, hk_col1);
- gtk_tree_view_append_column (hktree, hk_col2);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (hotkeystree), hk_col1);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (hotkeystree), hk_col2);
// fetch hotkeys from config, and add them to list
// model:
@@ -450,7 +476,7 @@ prefwin_add_hotkeys_tab (GtkWidget *prefwin) {
item = deadbeef->conf_find ("hotkeys.", item);
}
}
- gtk_tree_view_set_model (hktree, GTK_TREE_MODEL (hkstore));
+ gtk_tree_view_set_model (GTK_TREE_VIEW (hotkeystree), GTK_TREE_MODEL (hkstore));
}
@@ -550,6 +576,13 @@ on_preferences_activate (GtkMenuItem *menuitem,
// resume last session
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (w, "resume_last_session")), deadbeef->conf_get_int ("resume_last_session", 0));
+ // enable cp1251 recoding
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (w, "enable_cp1251_recoding")), deadbeef->conf_get_int ("junk.enable_cp1251_detection", 1));
+
+ // enable cp936 recoding
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (w, "enable_cp936_recoding")), deadbeef->conf_get_int ("junk.enable_cp936_detection", 0));
+
+
// fill gui plugin list
combobox = GTK_COMBO_BOX (lookup_widget (w, "gui_plugin"));
const char **names = deadbeef->plug_get_gui_names ();
@@ -605,6 +638,10 @@ on_preferences_activate (GtkMenuItem *menuitem,
gtk_entry_set_text (GTK_ENTRY (lookup_widget (w, "proxyuser")), deadbeef->conf_get_str_fast ("network.proxy.username", ""));
gtk_entry_set_text (GTK_ENTRY (lookup_widget (w, "proxypassword")), deadbeef->conf_get_str_fast ("network.proxy.password", ""));
+ char ua[100];
+ deadbeef->conf_get_str ("network.http_user_agent", "deadbeef", ua, sizeof (ua));
+ gtk_entry_set_text (GTK_ENTRY (lookup_widget (w, "useragent")), ua);
+
// list of plugins
GtkTreeView *tree = GTK_TREE_VIEW (lookup_widget (w, "pref_pluginlist"));
GtkCellRenderer *rend_text = gtk_cell_renderer_text_new ();
@@ -1253,6 +1290,25 @@ on_resume_last_session_toggled (GtkToggleButton *togglebutton,
deadbeef->conf_set_int ("resume_last_session", active);
}
+void
+on_enable_cp1251_recoding_toggled (GtkToggleButton *togglebutton,
+ gpointer user_data)
+{
+ int active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton));
+ deadbeef->conf_set_int ("junk.enable_cp1251_detection", active);
+ deadbeef->sendmessage (DB_EV_CONFIGCHANGED, 0, 0, 0);
+}
+
+
+void
+on_enable_cp936_recoding_toggled (GtkToggleButton *togglebutton,
+ gpointer user_data)
+{
+ int active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton));
+ deadbeef->conf_set_int ("junk.enable_cp936_detection", active);
+ deadbeef->sendmessage (DB_EV_CONFIGCHANGED, 0, 0, 0);
+}
+
void
on_auto_name_playlist_from_folder_toggled
@@ -1382,3 +1438,13 @@ on_convert8to16_toggled (GtkToggleButton *togglebutton,
deadbeef->sendmessage (DB_EV_CONFIGCHANGED, 0, 0, 0);
}
+
+
+void
+on_useragent_changed (GtkEditable *editable,
+ gpointer user_data)
+{
+ deadbeef->conf_set_str ("network.http_user_agent", gtk_entry_get_text (GTK_ENTRY (editable)));
+ deadbeef->sendmessage (DB_EV_CONFIGCHANGED, 0, 0, 0);
+}
+