[rygel/config: 20/25] Handle 'Folders' textview
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: svn-commits-list gnome org
- Subject: [rygel/config: 20/25] Handle 'Folders' textview
- Date: Wed, 27 May 2009 13:05:03 -0400 (EDT)
commit 54c98f4f09c6399b86bb9201c1d544ac396e1f8c
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Wed May 27 17:56:51 2009 +0300
Handle 'Folders' textview
Get/Set folders from/to configuration to/from 'Folders' textview
---
src/ui/Makefile.am | 7 ++-
src/ui/rygel-folder-pref-section.vala | 77 +++++++++++++++++++++++++++++++++
src/ui/rygel-plugin-pref-section.vala | 3 +-
src/ui/rygel-preferences-dialog.vala | 5 +-
4 files changed, 86 insertions(+), 6 deletions(-)
diff --git a/src/ui/Makefile.am b/src/ui/Makefile.am
index f9fa45a..ec8a302 100644
--- a/src/ui/Makefile.am
+++ b/src/ui/Makefile.am
@@ -23,7 +23,8 @@ bin_PROGRAMS = rygel-preferences
BUILT_SOURCES = rygel-preferences-dialog.c \
rygel-preferences-section.c \
rygel-general-pref-section.c \
- rygel-plugin-pref-section.c
+ rygel-plugin-pref-section.c \
+ rygel-folder-pref-section.c
$(BUILT_SOURCES) : rygel.stamp
@@ -34,7 +35,9 @@ rygel_preferences_SOURCES = rygel-preferences-dialog.c \
rygel-general-pref-section.c \
rygel-general-pref-section.vala \
rygel-plugin-pref-section.c \
- rygel-plugin-pref-section.vala
+ rygel-plugin-pref-section.vala \
+ rygel-folder-pref-section.c \
+ rygel-folder-pref-section.vala
rygel.stamp: $(filter %.vala,$(rygel_preferences_SOURCES))
$(VALAC) -C --vapidir=$(rygeldir) \
diff --git a/src/ui/rygel-folder-pref-section.vala b/src/ui/rygel-folder-pref-section.vala
new file mode 100644
index 0000000..2948380
--- /dev/null
+++ b/src/ui/rygel-folder-pref-section.vala
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2009 Nokia Corporation, all rights reserved.
+ *
+ * Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
+ * <zeeshan ali nokia com>
+ *
+ * This file is part of Rygel.
+ *
+ * Rygel is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Rygel is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+using Gtk;
+using Gee;
+
+public class Rygel.FolderPrefSection : Rygel.PluginPrefSection {
+ const string NAME = "Folder";
+ const string FOLDERS_KEY = "folders";
+ const string FOLDERS_TEXTVIEW = FOLDERS_KEY + "-textview";
+ const string FOLDERS_TEXTBUFFER = FOLDERS_KEY + "-textbuffer";
+
+ private TextView text_view;
+ private TextBuffer text_buffer;
+
+ public FolderPrefSection (Builder builder,
+ Configuration config) {
+ base (builder, config, NAME);
+
+ this.text_view = (TextView) builder.get_object (FOLDERS_TEXTVIEW);
+ assert (this.text_view != null);
+ this.text_buffer = (TextBuffer) builder.get_object (FOLDERS_TEXTBUFFER);
+ assert (this.text_buffer != null);
+
+ var folders = config.get_string_list (this.name, FOLDERS_KEY);
+ string text = "";
+ foreach (var folder in folders) {
+ text += folder + "\n";
+ }
+ this.text_buffer.set_text (text, -1);
+ }
+
+ public override void save () {
+ TextIter start;
+ TextIter end;
+
+ this.text_buffer.get_start_iter (out start);
+ this.text_buffer.get_end_iter (out end);
+
+ var text = this.text_buffer.get_text (start, end, false);
+
+ var folders = text.split ("\n", -1);
+ var folder_list = new ArrayList<string> ();
+
+ foreach (var folder in folders) {
+ folder_list.add (folder);
+ }
+
+ this.config.set_string_list (this.name, FOLDERS_KEY, folder_list);
+ }
+
+ protected override void on_enabled_check_toggled (
+ CheckButton enabled_check) {
+ base.on_enabled_check_toggled (enabled_check);
+
+ this.text_view.sensitive = enabled_check.active;
+ }
+}
diff --git a/src/ui/rygel-plugin-pref-section.vala b/src/ui/rygel-plugin-pref-section.vala
index 27451d1..4c4f61f 100644
--- a/src/ui/rygel-plugin-pref-section.vala
+++ b/src/ui/rygel-plugin-pref-section.vala
@@ -62,7 +62,8 @@ public class Rygel.PluginPrefSection : PreferencesSection {
this.config.set_string (this.name, Configuration.TITLE_KEY, title);
}
- private void on_enabled_check_toggled (CheckButton enabled_check) {
+ protected virtual void on_enabled_check_toggled (
+ CheckButton enabled_check) {
this.title_entry.sensitive = enabled_check.active;
}
}
diff --git a/src/ui/rygel-preferences-dialog.vala b/src/ui/rygel-preferences-dialog.vala
index a940848..c14fe9c 100644
--- a/src/ui/rygel-preferences-dialog.vala
+++ b/src/ui/rygel-preferences-dialog.vala
@@ -49,10 +49,9 @@ public class Rygel.PreferencesDialog : GLib.Object {
"Tracker"));
this.sections.add (new PluginPrefSection (this.builder,
config,
- "Folder"));
- this.sections.add (new PluginPrefSection (this.builder,
- config,
"DVB"));
+ this.sections.add (new FolderPrefSection (this.builder,
+ config));
this.dialog.response += this.on_response;
this.dialog.delete_event += (dialog, event) => {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]