Merge lp:~mblayman/entertainer/less-config into lp:entertainer/future

Proposed by Matt Layman
Status: Merged
Approved by: Paul Hummer
Approved revision: 378
Merged at revision: not available
Proposed branch: lp:~mblayman/entertainer/less-config
Merge into: lp:entertainer/future
Diff against target: None lines
To merge this branch: bzr merge lp:~mblayman/entertainer/less-config
Reviewer Review Type Date Requested Status
Paul Hummer Approve
Review via email: mp+10217@code.launchpad.net

Commit message

Merged preference.conf into content.conf so there is only one config file to deal with.

To post a comment you must log in.
Revision history for this message
Matt Layman (mblayman) wrote :

Here is a branch that eliminates preferences.conf and puts the information that was in it into content.conf. Of course, it also cleans up Configuration to account for these changes. I have more changes coming for Configuration, but I want to keep these branches relatively small.

This branch is smaller than the diff makes it appear. I merged in Paul's dialog-magics branch.

Revision history for this message
Paul Hummer (rockstar) wrote :

Generally this looks good. I think it's going to need some rigorous testing, but I don't think that's a bad thing.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'cfg/content.conf'
--- cfg/content.conf 2009-05-31 17:11:16 +0000
+++ cfg/content.conf 2009-08-16 19:34:38 +0000
@@ -1,26 +1,33 @@
1# Copyright (c) 2009 Entertainer Developers - See COPYING - GPLv21# Copyright (c) 2009 Entertainer Developers - See COPYING - GPLv2
2[Images]2[Media]
3folders = 3download_lyrics = False
4display_hidden_files_folders = False4download_album_art = True
5download_metadata = True
6display_eject_in_menu = False
57
6[Weather]8[Weather]
7location = Bath,England9location = Bath,England
8display_in_menu = True10display_in_menu = True
9metric_units = True
10
11[Music]
12folders =
13download_lyrics = False
14download_album_art = True
15
16[Videos]
17folders =
18download_metadata = True
1911
20[RSS]12[RSS]
21feeds = http://theironlion.net/feeds/blog;http://www.joshuascotton.com/main/archives/tag/entertainer/feed;http://laymanstermsdev.wordpress.com/feed13feeds = http://theironlion.net/blog/feed;http://www.joshuascotton.com/main/archives/tag/entertainer/feed;http://laymanstermsdev.wordpress.com/feed
22fetch_interval = 1514fetch_interval = 15
2315
24[CD]16[CD]
25display_eject_in_menu = False17display_eject_in_menu = False
2618
19[Photographs]
20slideshow_step = 5
21
22[General]
23stage_width = 1366
24stage_height = 768
25show_effects = True
26start_in_fullscreen = True
27theme = Default
28backend_port = 45054
29history_size = 8
30transition_effect = Slide
31start_server_auto = True
32display_icon = False
33
2734
=== removed file 'cfg/preferences.conf'
--- cfg/preferences.conf 2009-05-06 03:40:22 +0000
+++ cfg/preferences.conf 1970-01-01 00:00:00 +0000
@@ -1,16 +0,0 @@
1# Copyright (c) 2009 Entertainer Developers - See COPYING - GPLv2
2[Photographs]
3slideshow_step = 5
4
5[General]
6stage_width = 1366
7stage_height = 768
8show_effects = True
9start_in_fullscreen = True
10theme = Default
11backend_port = 45054
12history_size = 8
13transition_effect = Slide
14start_server_auto = True
15display_icon = False
16
170
=== modified file 'entertainerlib/backend/components/mediacache/image_cache.py'
--- entertainerlib/backend/components/mediacache/image_cache.py 2009-06-30 01:06:01 +0000
+++ entertainerlib/backend/components/mediacache/image_cache.py 2009-08-16 18:51:06 +0000
@@ -117,15 +117,13 @@
117 "Path doesn't exist: " + path)117 "Path doesn't exist: " + path)
118 else:118 else:
119 for root, dirs, files in os.walk(path):119 for root, dirs, files in os.walk(path):
120 if os.path.split(root)[-1][0] == "." and not \120 if os.path.split(root)[-1][0] == ".":
121 self.config.display_hidden_files_folders():
122 continue121 continue
123 if not self.isDirectoryInCache(root):122 if not self.isDirectoryInCache(root):
124 self._addAlbum(root)123 self._addAlbum(root)
125124
126 for name in files:125 for name in files:
127 if os.path.split(name)[-1][0] == "." and not \126 if os.path.split(name)[-1][0] == ".":
128 self.config.display_hidden_files_folders():
129 continue127 continue
130 if self.isSupportedFormat(name):128 if self.isSupportedFormat(name):
131 self.addFile(os.path.join(root, name))129 self.addFile(os.path.join(root, name))
132130
=== modified file 'entertainerlib/backend/components/mediacache/media_cache_manager.py'
--- entertainerlib/backend/components/mediacache/media_cache_manager.py 2009-05-10 17:36:49 +0000
+++ entertainerlib/backend/components/mediacache/media_cache_manager.py 2009-08-16 19:34:38 +0000
@@ -23,11 +23,11 @@
23 self.logger = Logger().getLogger(23 self.logger = Logger().getLogger(
24 'backend.components.mediacache.MediaCacheManager')24 'backend.components.mediacache.MediaCacheManager')
25 self.config = Configuration()25 self.config = Configuration()
26 self.video_folders = self.config.get_video_folders()26 self.video_folders = self.config.get_media_folders()
27 self._index_videos(self.video_folders)27 self._index_videos(self.video_folders)
28 self.music_folders = self.config.get_music_folders()28 self.music_folders = self.config.get_media_folders()
29 self._index_music(self.music_folders)29 self._index_music(self.music_folders)
30 self.image_folders = self.config.get_image_folders()30 self.image_folders = self.config.get_media_folders()
31 self._index_images(self.image_folders)31 self._index_images(self.image_folders)
3232
33 # Should we rebuild to detect files that were removed while backend was33 # Should we rebuild to detect files that were removed while backend was
@@ -104,9 +104,9 @@
104 we need to index them. If folders are removed, we need to remove104 we need to index them. If folders are removed, we need to remove
105 them from the cache and also from FileSystemObeserver.105 them from the cache and also from FileSystemObeserver.
106 """106 """
107 updated_video_folders = self.config.get_video_folders()107 updated_video_folders = self.config.get_media_folders()
108 updated_music_folders = self.config.get_music_folders()108 updated_music_folders = self.config.get_media_folders()
109 updated_image_folders = self.config.get_image_folders()109 updated_image_folders = self.config.get_media_folders()
110110
111 # Handle image folder changes111 # Handle image folder changes
112 current_images = set(self.image_folders)112 current_images = set(self.image_folders)
113113
=== modified file 'entertainerlib/configuration.py'
--- entertainerlib/configuration.py 2009-07-07 01:28:42 +0000
+++ entertainerlib/configuration.py 2009-08-16 20:02:42 +0000
@@ -64,24 +64,7 @@
64 self.ALBUM_ART_DIR = os.path.join(self.cfg_dir, 'cache/album_art')64 self.ALBUM_ART_DIR = os.path.join(self.cfg_dir, 'cache/album_art')
65 self.MOVIE_ART_DIR = os.path.join(self.cfg_dir, 'cache/movie_art')65 self.MOVIE_ART_DIR = os.path.join(self.cfg_dir, 'cache/movie_art')
6666
67 # Preferences file67 self.read_config_files()
68 self.preferences_conf = os.path.join(self.cfg_dir,
69 'preferences.conf')
70
71 # Content file
72 self.content_conf = os.path.join(self.cfg_dir, 'content.conf')
73
74 self.content_config = ConfigParser.ConfigParser()
75 self.preferences = ConfigParser.ConfigParser()
76 try:
77 self.content_config.readfp(open(self.content_conf))
78 self.preferences.readfp(open(self.preferences_conf))
79 except ParsingError:
80 print("ParsingError with configuration file.")
81 sys.exit(1)
82 except IOError:
83 print("IOError: Couldn't read configuration file.")
84 sys.exit(1)
8568
86 self.theme = Theme(self.get_theme_path())69 self.theme = Theme(self.get_theme_path())
8770
@@ -94,6 +77,20 @@
94 'host': 'localhost',77 'host': 'localhost',
95 'port': 55545}78 'port': 55545}
9679
80 def read_config_files(self):
81 '''Read in the config files.'''
82 self.content_conf = os.path.join(self.cfg_dir, 'content.conf')
83
84 self.content = ConfigParser.ConfigParser()
85 try:
86 self.content.readfp(open(self.content_conf))
87 except ParsingError:
88 print("ParsingError with configuration file.")
89 sys.exit(1)
90 except IOError:
91 print("IOError: Couldn't read configuration file.")
92 sys.exit(1)
93
97 def create_cfg_dir(self):94 def create_cfg_dir(self):
98 '''Create a configuration directory and default config files.'''95 '''Create a configuration directory and default config files.'''
9996
@@ -135,8 +132,7 @@
135 Read configuration files again and update this object.132 Read configuration files again and update this object.
136 """133 """
137 try:134 try:
138 self.content_config.readfp(open(self.content_conf))135 self.content.readfp(open(self.content_conf))
139 self.preferences.readfp(open(self.preferences_conf))
140 except ParsingError:136 except ParsingError:
141 raise Exception("Syntax error in configuration file.")137 raise Exception("Syntax error in configuration file.")
142 except IOError:138 except IOError:
@@ -144,33 +140,31 @@
144140
145 def write_content_value(self, section, option, value):141 def write_content_value(self, section, option, value):
146 """Write a new value to the content configuration file."""142 """Write a new value to the content configuration file."""
147 try:143
148 self.content_config.set(section, option, value)144 def write_value(section, option, value):
145 '''Actually write the value to the section and option.'''
146 self.content.set(section, option, value)
149 cfg_file = file(self.content_conf, 'w')147 cfg_file = file(self.content_conf, 'w')
150 self.content_config.write(cfg_file)148 self.content.write(cfg_file)
149
150 try:
151 write_value(section, option, value)
151 except NoSectionError:152 except NoSectionError:
152 raise Exception("No Section to set in content.conf file")153 # Provide an upgrade path to additions of new sections.
154 shutil.rmtree(self.cfg_dir)
155 self.create_cfg_dir()
156 self.read_config_files()
157 write_value(section, option, value)
153 except NoOptionError:158 except NoOptionError:
154 raise Exception("No Option to set in content.conf file")159 raise Exception("No Option to set in content.conf file")
155160
156 def write_preference_value(self, section, option, value):
157 """Write a new value to the preferences configuration file."""
158 try:
159 self.preferences.set(section, option, value)
160 cfg_file = file(self.preferences_conf, 'w')
161 self.preferences.write(cfg_file)
162 except NoSectionError:
163 raise Exception("No Section to set in preferences.conf file")
164 except NoOptionError:
165 raise Exception("No Option to set in preferences.conf file")
166
167 def get_stage_width(self):161 def get_stage_width(self):
168 '''Get the stage width from the preferences'''162 '''Get the stage width from the preferences'''
169 if self.stage_width:163 if self.stage_width:
170 return self.stage_width164 return self.stage_width
171165
172 try:166 try:
173 self.stage_width = self.preferences.getint("General", "stage_width")167 self.stage_width = self.content.getint("General", "stage_width")
174 except (NoSectionError, NoOptionError):168 except (NoSectionError, NoOptionError):
175 self.stage_width = 1366 # Default169 self.stage_width = 1366 # Default
176170
@@ -186,8 +180,7 @@
186 return self.stage_height180 return self.stage_height
187181
188 try:182 try:
189 self.stage_height = self.preferences.getint("General",183 self.stage_height = self.content.getint("General", "stage_height")
190 "stage_height")
191 except (NoSectionError, NoOptionError):184 except (NoSectionError, NoOptionError):
192 self.stage_height = 768 # Default185 self.stage_height = 768 # Default
193186
@@ -204,7 +197,7 @@
204 """197 """
205 theme_path = os.path.join(self.get_cfg_dir(), 'themes')198 theme_path = os.path.join(self.get_cfg_dir(), 'themes')
206 try:199 try:
207 theme = self.preferences.get("General", "theme")200 theme = self.content.get("General", "theme")
208 except (NoSectionError, NoOptionError):201 except (NoSectionError, NoOptionError):
209 return os.path.join(theme_path, "Default")202 return os.path.join(theme_path, "Default")
210203
@@ -219,7 +212,7 @@
219 @return: boolean212 @return: boolean
220 """213 """
221 try:214 try:
222 result = self.preferences.getboolean("General", "display_icon")215 result = self.content.getboolean("General", "display_icon")
223 except (NoSectionError, NoOptionError):216 except (NoSectionError, NoOptionError):
224 return False217 return False
225 return result218 return result
@@ -230,7 +223,7 @@
230 @return: Integer223 @return: Integer
231 """224 """
232 try:225 try:
233 result = self.content_config.getint("RSS", "fetch_interval")226 result = self.content.getint("RSS", "fetch_interval")
234 except (NoSectionError, NoOptionError):227 except (NoSectionError, NoOptionError):
235 return 60 # Default is one hour228 return 60 # Default is one hour
236 return result229 return result
@@ -241,46 +234,18 @@
241 @return: Integer234 @return: Integer
242 """235 """
243 try:236 try:
244 result = self.preferences.getint("General", "backend_port")237 result = self.content.getint("General", "backend_port")
245 except (NoSectionError, NoOptionError):238 except (NoSectionError, NoOptionError):
246 return 45054 # Default port239 return 45054 # Default port
247 return result240 return result
248241
249 def get_video_folders(self):242 def get_media_folders(self):
250 """243 '''Return a list of folders for media.'''
251 Get list of video folders244 try:
252 @return:String Array245 media = self.content.get("Media", "folders")
253 """246 return self._is_valid_media_folder(media.split(';'))
254 try:247 except (NoSectionError, NoOptionError):
255 video_list = self.content_config.get("Videos", "folders")248 return []
256 result = self._is_valid_media_folder(video_list.split(';'))
257 except (NoSectionError, NoOptionError):
258 return []
259 return result
260
261 def get_music_folders(self):
262 """
263 Get list of music folders
264 @return: String Array
265 """
266 try:
267 music_list = self.content_config.get("Music", "folders")
268 result = music_list.split(';')
269 except (NoSectionError, NoOptionError):
270 return []
271 return result
272
273 def get_image_folders(self):
274 """
275 Get list of image folders
276 @return: String Array
277 """
278 try:
279 image_list = self.content_config.get("Images", "folders")
280 result = self._is_valid_media_folder(image_list.split(';'))
281 except (NoSectionError, NoOptionError):
282 return []
283 return result
284249
285 def get_feeds(self):250 def get_feeds(self):
286 """251 """
@@ -288,7 +253,7 @@
288 @return: String Array253 @return: String Array
289 """254 """
290 try:255 try:
291 rss_feeds = self.content_config.get("RSS", "feeds")256 rss_feeds = self.content.get("RSS", "feeds")
292 result = rss_feeds.split(';')257 result = rss_feeds.split(';')
293 except (NoSectionError, NoOptionError):258 except (NoSectionError, NoOptionError):
294 return []259 return []
@@ -300,7 +265,7 @@
300 @return: List of strings265 @return: List of strings
301 """266 """
302 try:267 try:
303 location = self.content_config.get("Weather", "location")268 location = self.content.get("Weather", "location")
304 except (NoSectionError, NoOptionError):269 except (NoSectionError, NoOptionError):
305 location = ''270 location = ''
306 return location271 return location
@@ -311,8 +276,7 @@
311 @return: Boolean276 @return: Boolean
312 """277 """
313 try:278 try:
314 result = self.content_config.getboolean("Weather",279 result = self.content.getboolean("Weather", "display_in_menu")
315 "display_in_menu")
316 except (NoSectionError, NoOptionError):280 except (NoSectionError, NoOptionError):
317 return False281 return False
318 return result282 return result
@@ -323,8 +287,7 @@
323 @return: Boolean287 @return: Boolean
324 """288 """
325 try:289 try:
326 result = self.content_config.getboolean("CD",290 result = self.content.getboolean("CD", "display_eject_in_menu")
327 "display_eject_in_menu")
328 except (NoSectionError, NoOptionError):291 except (NoSectionError, NoOptionError):
329 return False292 return False
330 return result293 return result
@@ -334,8 +297,7 @@
334 Get True if video metadata should be downloaded, otherwise False297 Get True if video metadata should be downloaded, otherwise False
335 """298 """
336 try:299 try:
337 result = self.content_config.getboolean("Videos",300 result = self.content.getboolean("Media", "download_video_metadata")
338 "download_metadata")
339 except (NoSectionError, NoOptionError):301 except (NoSectionError, NoOptionError):
340 return False302 return False
341 return result303 return result
@@ -346,8 +308,7 @@
346 @return: boolean308 @return: boolean
347 """309 """
348 try:310 try:
349 result = self.content_config.getboolean("Music",311 result = self.content.getboolean("Media", "download_album_art")
350 "download_album_art")
351 except (NoSectionError, NoOptionError):312 except (NoSectionError, NoOptionError):
352 return False313 return False
353 return result314 return result
@@ -358,16 +319,7 @@
358 @return: boolean319 @return: boolean
359 """320 """
360 try:321 try:
361 result = self.content_config.getboolean("Music", "download_lyrics")322 result = self.content.getboolean("Media", "download_lyrics")
362 except (NoSectionError, NoOptionError):
363 return False
364 return result
365
366 def display_hidden_files_folders(self):
367 """If True hidden files and folders will be added to image library."""
368 try:
369 result = self.content_config.getboolean("Images",
370 "display_hidden_files_folders")
371 except (NoSectionError, NoOptionError):323 except (NoSectionError, NoOptionError):
372 return False324 return False
373 return result325 return result
@@ -378,7 +330,7 @@
378 @return: boolean330 @return: boolean
379 """331 """
380 try:332 try:
381 result = self.preferences.getboolean("General", "show_effects")333 result = self.content.getboolean("General", "show_effects")
382 except (NoSectionError, NoOptionError):334 except (NoSectionError, NoOptionError):
383 return False335 return False
384 return result336 return result
@@ -389,7 +341,7 @@
389 @return: string (name of the effect)341 @return: string (name of the effect)
390 """342 """
391 try:343 try:
392 result = self.preferences.get("General", "transition_effect")344 result = self.content.get("General", "transition_effect")
393 except (NoSectionError, NoOptionError):345 except (NoSectionError, NoOptionError):
394 return False346 return False
395 return result347 return result
@@ -400,7 +352,7 @@
400 @return: string (theme name)352 @return: string (theme name)
401 """353 """
402 try:354 try:
403 result = self.preferences.get("General", "theme")355 result = self.content.get("General", "theme")
404 except (NoSectionError, NoOptionError):356 except (NoSectionError, NoOptionError):
405 result = "Default"357 result = "Default"
406 return result358 return result
@@ -408,8 +360,7 @@
408 def start_in_fullscreen(self):360 def start_in_fullscreen(self):
409 '''Boolean to determine whether to start in fullscreen mode or not.'''361 '''Boolean to determine whether to start in fullscreen mode or not.'''
410 try:362 try:
411 result = self.preferences.getboolean("General",363 result = self.content.getboolean("General", "start_in_fullscreen")
412 "start_in_fullscreen")
413 except (NoSectionError, NoOptionError):364 except (NoSectionError, NoOptionError):
414 return True365 return True
415 return result366 return result
@@ -420,8 +371,7 @@
420 @return: boolean371 @return: boolean
421 """372 """
422 try:373 try:
423 result = self.preferences.getboolean("General",374 result = self.content.getboolean("General", "start_server_auto")
424 "start_server_auto")
425 except (NoSectionError, NoOptionError):375 except (NoSectionError, NoOptionError):
426 return False376 return False
427 return result377 return result
@@ -433,7 +383,7 @@
433 @return: Integer383 @return: Integer
434 """384 """
435 try:385 try:
436 result = self.preferences.getint("General", "history_size")386 result = self.content.getint("General", "history_size")
437 except (NoSectionError, NoOptionError):387 except (NoSectionError, NoOptionError):
438 return 10388 return 10
439 return result389 return result
@@ -444,7 +394,7 @@
444 @return: Integer394 @return: Integer
445 """395 """
446 try:396 try:
447 result = self.preferences.getint("Photographs", "slideshow_step")397 result = self.content.getint("Photographs", "slideshow_step")
448 except (NoSectionError, NoOptionError):398 except (NoSectionError, NoOptionError):
449 return 5399 return 5
450 return result400 return result
451401
=== modified file 'entertainerlib/dialog.py'
--- entertainerlib/dialog.py 2009-07-14 04:24:07 +0000
+++ entertainerlib/dialog.py 2009-08-16 20:02:42 +0000
@@ -50,33 +50,25 @@
50 self.dialog = self.widgets.get_widget("ContentManagementDialog")50 self.dialog = self.widgets.get_widget("ContentManagementDialog")
51 if (self.dialog):51 if (self.dialog):
52 callback_dic = {52 callback_dic = {
53 # Dialog-wide callbacks
53 "on_button_open_list_clicked" :54 "on_button_open_list_clicked" :
54 self.on_button_open_list_clicked,55 self.on_button_open_list_clicked,
55 "on_close_button_clicked" : self.on_close_button_clicked,56 "on_close_button_clicked" : self.on_close_button_clicked,
56 "on_button_remove_videos_clicked" :57 "on_ContentManagementDialog_destroy" : self.on_dialog_closed,
57 self.on_button_remove_videos_clicked,58
58 "on_button_add_videos_clicked" :59 # Media tab
59 self.on_button_add_videos_clicked,60 "on_button_remove_media_clicked" :
60 "on_button_edit_videos_clicked" :61 self.on_button_remove_media_clicked,
61 self.on_button_edit_videos_clicked,62 "on_button_add_media_clicked" :
63 self.on_button_add_media_clicked,
64 "on_button_edit_media_clicked" :
65 self.on_button_edit_media_clicked,
62 "on_checkbutton_video_metadata_toggled" :66 "on_checkbutton_video_metadata_toggled" :
63 self.on_checkbutton_video_metadata_toggled,67 self.on_checkbutton_video_metadata_toggled,
64 "on_button_add_music_clicked" :
65 self.on_button_add_music_clicked,
66 "on_button_remove_music_clicked" :
67 self.on_button_remove_music_clicked,
68 "on_button_edit_music_clicked" :
69 self.on_button_edit_music_clicked,
70 "on_lyrics_checkbox_toggled" : self.on_lyrics_checkbox_toggled,68 "on_lyrics_checkbox_toggled" : self.on_lyrics_checkbox_toggled,
71 "on_art_checkbox_toggled" : self.on_art_checkbox_toggled,69 "on_art_checkbox_toggled" : self.on_art_checkbox_toggled,
72 "on_button_add_images_clicked" :70
73 self.on_button_add_images_clicked,71 # Feed tab
74 "on_button_remove_images_clicked" :
75 self.on_button_remove_images_clicked,
76 "on_button_edit_images_clicked" :
77 self.on_button_edit_images_clicked,
78 "on_hidden_files_folders_checkbox_toggled" :
79 self.on_hidden_files_folders_checkbox_toggled,
80 "on_button_add_feed_clicked" :72 "on_button_add_feed_clicked" :
81 self.on_button_add_feed_clicked,73 self.on_button_add_feed_clicked,
82 "on_button_remove_feed_clicked" :74 "on_button_remove_feed_clicked" :
@@ -85,20 +77,23 @@
85 self.on_button_edit_feed_clicked,77 self.on_button_edit_feed_clicked,
86 "on_fetch_interval_spinbutton_value_changed" :78 "on_fetch_interval_spinbutton_value_changed" :
87 self.on_fetch_interval_spinbutton_value_changed,79 self.on_fetch_interval_spinbutton_value_changed,
88 "on_ContentManagementDialog_destroy" : self.on_dialog_closed,
89 "on_url_dialog_delete_event" : self.on_url_dialog_delete_event,80 "on_url_dialog_delete_event" : self.on_url_dialog_delete_event,
90 "on_url_dialog_ok_button_clicked" :81 "on_url_dialog_ok_button_clicked" :
91 self.on_url_dialog_ok_button_clicked,82 self.on_url_dialog_ok_button_clicked,
92 "on_url_dialog_cancel_button_clicked" :83 "on_url_dialog_cancel_button_clicked" :
93 self.on_url_dialog_cancel_button_clicked,84 self.on_url_dialog_cancel_button_clicked,
94 "on_button_video_rebuild_clicked" :85
95 self.on_button_video_rebuild_clicked,86 # Reset tab
87 "on_button_media_rebuild_clicked" :
88 self.on_button_media_rebuild_clicked,
96 "on_button_music_rebuild_clicked" :89 "on_button_music_rebuild_clicked" :
97 self.on_button_music_rebuild_clicked,90 self.on_button_music_rebuild_clicked,
98 "on_button_image_rebuild_clicked" :91 "on_button_image_rebuild_clicked" :
99 self.on_button_image_rebuild_clicked,92 self.on_button_image_rebuild_clicked,
100 "on_button_feed_rebuild_clicked" :93 "on_button_feed_rebuild_clicked" :
101 self.on_button_feed_rebuild_clicked,94 self.on_button_feed_rebuild_clicked,
95
96 # Weather tab
102 "on_button_add_weather_clicked" :97 "on_button_add_weather_clicked" :
103 self.on_button_add_weather_clicked,98 self.on_button_add_weather_clicked,
104 "on_button_remove_weather_clicked" :99 "on_button_remove_weather_clicked" :
@@ -112,6 +107,7 @@
112 "on_location_add_button_clicked" :107 "on_location_add_button_clicked" :
113 self.on_location_add_button_clicked,108 self.on_location_add_button_clicked,
114 "on_location_entry_activate" : self.on_location_entry_activate}109 "on_location_entry_activate" : self.on_location_entry_activate}
110
115 self.widgets.signal_autoconnect(callback_dic)111 self.widgets.signal_autoconnect(callback_dic)
116112
117 # Initialize dialog widgets with correct values and show dialog113 # Initialize dialog widgets with correct values and show dialog
@@ -127,8 +123,6 @@
127 column = gtk.TreeViewColumn(_("Location"), cell_renderer, text=0)123 column = gtk.TreeViewColumn(_("Location"), cell_renderer, text=0)
128 result_list.append_column(column)124 result_list.append_column(column)
129125
130# Signal handlers
131
132 def on_dialog_closed(self, widget):126 def on_dialog_closed(self, widget):
133 """Callback function for dialog's close button"""127 """Callback function for dialog's close button"""
134 try:128 try:
@@ -165,12 +159,12 @@
165 self.dialog.hide()159 self.dialog.hide()
166 self.dialog.destroy()160 self.dialog.destroy()
167161
168 def on_button_add_videos_clicked(self, widget):162 def on_button_add_media_clicked(self, widget):
169 """Opens add URL dialog. """163 """Opens add URL dialog. """
170 widget = self.widgets.get_widget("treeview_videos")164 widget = self.widgets.get_widget("treeview_media")
171 model = widget.get_model()165 model = widget.get_model()
172 # Open "Select folder" dialog166 # Open "Select folder" dialog
173 dialog = gtk.FileChooserDialog(_("Select video folder"), None,167 dialog = gtk.FileChooserDialog(_("Select folder"), None,
174 gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,168 gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
175 (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,169 (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,
176 gtk.STOCK_OPEN,gtk.RESPONSE_OK),170 gtk.STOCK_OPEN,gtk.RESPONSE_OK),
@@ -179,25 +173,25 @@
179 # If folder was selected we add it to model and update config file173 # If folder was selected we add it to model and update config file
180 if(status == gtk.RESPONSE_OK):174 if(status == gtk.RESPONSE_OK):
181 self.add_to_model_and_config(dialog.get_current_folder(), model,175 self.add_to_model_and_config(dialog.get_current_folder(), model,
182 self.video_folders, "Videos")176 self.media_folders, "Media")
183 dialog.destroy()177 dialog.destroy()
184178
185 def on_button_remove_videos_clicked(self, widget):179 def on_button_remove_media_clicked(self, widget):
186 """Remove currently selected folder from video folders"""180 """Remove currently selected folder from media folders"""
187 widget = self.widgets.get_widget("treeview_videos")181 widget = self.widgets.get_widget("treeview_media")
188 model = widget.get_model()182 model = widget.get_model()
189 selection = widget.get_selection().get_selected()183 selection = widget.get_selection().get_selected()
190 if selection[1] == None:184 if selection[1] == None:
191 return185 return
192 rm_folder = model.get_value(selection[1], 0)186 rm_folder = model.get_value(selection[1], 0)
193 self.video_folders.remove(rm_folder)187 self.media_folders.remove(rm_folder)
194 str_folders = ";".join(self.video_folders)188 str_folders = ";".join(self.media_folders)
195 self.config.write_content_value("Videos", "folders", str_folders)189 self.config.write_content_value("Media", "folders", str_folders)
196 model.remove(selection[1])190 model.remove(selection[1])
197191
198 def on_button_edit_videos_clicked(self, widget):192 def on_button_edit_media_clicked(self, widget):
199 """Edit currently selected folder"""193 """Edit currently selected folder"""
200 widget = self.widgets.get_widget("treeview_videos")194 widget = self.widgets.get_widget("treeview_media")
201 url_dialog = self.widgets.get_widget("url_dialog")195 url_dialog = self.widgets.get_widget("url_dialog")
202 url_entry = self.widgets.get_widget("url_entry")196 url_entry = self.widgets.get_widget("url_entry")
203 model = widget.get_model()197 model = widget.get_model()
@@ -212,11 +206,11 @@
212 # Update list model206 # Update list model
213 model.set_value(selection[1], 0, self.url)207 model.set_value(selection[1], 0, self.url)
214 # Update configure file208 # Update configure file
215 pos = self.video_folders.index(folder)209 pos = self.media_folders.index(folder)
216 self.video_folders.remove(folder)210 self.media_folders.remove(folder)
217 self.video_folders.insert(pos, self.url)211 self.media_folders.insert(pos, self.url)
218 str_folders = ";".join(self.video_folders)212 str_folders = ";".join(self.media_folders)
219 self.config.write_content_value("Videos", "folders",213 self.config.write_content_value("Media", "folders",
220 str_folders)214 str_folders)
221215
222 def on_checkbutton_video_metadata_toggled(self, widget):216 def on_checkbutton_video_metadata_toggled(self, widget):
@@ -224,124 +218,9 @@
224 Download video file metadata from internet218 Download video file metadata from internet
225 @param widget: GTK-Widget219 @param widget: GTK-Widget
226 """220 """
227 self.config.write_content_value("Videos", "download_metadata",221 self.config.write_content_value("Media", "download_video_metadata",
228 widget.get_active())222 widget.get_active())
229223
230 def on_button_add_music_clicked(self, widget):
231 """
232 Opens add URL dialog
233 @param widget: GTK-Widget
234 """
235 widget = self.widgets.get_widget("treeview_music")
236 model = widget.get_model()
237 # Open "Select folder" dialog
238 dialog = gtk.FileChooserDialog(_("Select music folder"), None,
239 gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
240 (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN,
241 gtk.RESPONSE_OK),
242 None)
243 status = dialog.run()
244 # If folder was selected we add it to model and update config file
245 if(status == gtk.RESPONSE_OK):
246 self.add_to_model_and_config(dialog.get_current_folder(), model,
247 self.music_folders, "Music")
248 dialog.destroy()
249
250 def on_button_remove_music_clicked(self, widget):
251 """Remove currently selected folder from music folders"""
252 widget = self.widgets.get_widget("treeview_music")
253 model = widget.get_model()
254 selection = widget.get_selection().get_selected()
255 if selection[1] == None:
256 return
257 rm_folder = model.get_value(selection[1], 0)
258 self.music_folders.remove(rm_folder)
259 str_folders = ";".join(self.music_folders)
260 self.config.write_content_value("Music", "folders", str_folders)
261 model.remove(selection[1])
262
263 def on_button_edit_music_clicked(self, widget):
264 """Edit currently selected music folder"""
265 widget = self.widgets.get_widget("treeview_music")
266 url_dialog = self.widgets.get_widget("url_dialog")
267 url_entry = self.widgets.get_widget("url_entry")
268 model = widget.get_model()
269 selection = widget.get_selection().get_selected()
270 if selection[1] == None:
271 return
272 folder = model.get_value(selection[1], 0)
273 url_entry.set_text(folder)
274 url_dialog.set_title(_("Edit URL"))
275 status = url_dialog.run()
276 if status == gtk.RESPONSE_OK and os.path.exists(self.url):
277 # Update list model
278 model.set_value(selection[1], 0, self.url)
279 # Update configure file
280 pos = self.music_folders.index(folder)
281 self.music_folders.remove(folder)
282 self.music_folders.insert(pos, self.url)
283 str_folders = ";".join(self.music_folders)
284 self.config.write_content_value("Music", "folders", str_folders)
285
286 def on_button_add_images_clicked(self, widget):
287 """Opens add URL dialog. """
288 widget = self.widgets.get_widget("treeview_images")
289 model = widget.get_model()
290 # Open "Select folder" dialog
291 dialog = gtk.FileChooserDialog(_("Select image folder"), None,
292 gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
293 (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN,
294 gtk.RESPONSE_OK),
295 None)
296 status = dialog.run()
297 # If folder was selected we add it to model and update config file
298 if(status == gtk.RESPONSE_OK):
299 self.add_to_model_and_config(dialog.get_current_folder(), model,
300 self.image_folders, "Images")
301 dialog.destroy()
302
303 def on_button_remove_images_clicked(self, widget):
304 """Remove currently selected folder from images folders"""
305 widget = self.widgets.get_widget("treeview_images")
306 model = widget.get_model()
307 selection = widget.get_selection().get_selected()
308 if selection[1] == None:
309 return
310 rm_folder = model.get_value(selection[1], 0)
311 self.image_folders.remove(rm_folder)
312 str_folders = ";".join(self.image_folders)
313 self.config.write_content_value("Images", "folders", str_folders)
314 model.remove(selection[1])
315
316 def on_button_edit_images_clicked(self, widget):
317 """Edit currently selected music folder"""
318 widget = self.widgets.get_widget("treeview_images")
319 url_dialog = self.widgets.get_widget("url_dialog")
320 url_entry = self.widgets.get_widget("url_entry")
321 model = widget.get_model()
322 selection = widget.get_selection().get_selected()
323 if selection[1] == None:
324 return
325 folder = model.get_value(selection[1], 0)
326 url_entry.set_text(folder)
327 url_dialog.set_title(_("Edit URL"))
328 status = url_dialog.run()
329 if status == gtk.RESPONSE_OK and os.path.exists(self.url):
330 # Update list model
331 model.set_value(selection[1], 0, self.url)
332 # Update configure file
333 pos = self.image_folders.index(folder)
334 self.image_folders.remove(folder)
335 self.image_folders.insert(pos, self.url)
336 str_folders = ";".join(self.image_folders)
337 self.config.write_content_value("Images", "folders",
338 str_folders)
339
340 def on_hidden_files_folders_checkbox_toggled(self, widget):
341 """If True hidden files and folders will be added to image library."""
342 self.config.write_content_value("Images",
343 "display_hidden_files_folders", widget.get_active())
344
345 def on_button_add_feed_clicked(self, widget):224 def on_button_add_feed_clicked(self, widget):
346 """Opens add feed dialog. """225 """Opens add feed dialog. """
347 widget = self.widgets.get_widget("treeview_feeds")226 widget = self.widgets.get_widget("treeview_feeds")
@@ -406,11 +285,11 @@
406 widget.get_value_as_int())285 widget.get_value_as_int())
407286
408 def on_lyrics_checkbox_toggled(self, widget):287 def on_lyrics_checkbox_toggled(self, widget):
409 self.config.write_content_value("Music", "download_lyrics",288 self.config.write_content_value("Media", "download_lyrics",
410 widget.get_active())289 widget.get_active())
411290
412 def on_art_checkbox_toggled(self, widget):291 def on_art_checkbox_toggled(self, widget):
413 self.config.write_content_value("Music", "download_album_art",292 self.config.write_content_value("Media", "download_album_art",
414 widget.get_active())293 widget.get_active())
415294
416 def on_url_dialog_ok_button_clicked(self, widget):295 def on_url_dialog_ok_button_clicked(self, widget):
@@ -555,9 +434,9 @@
555 """434 """
556 self.on_location_find_button_clicked(widget)435 self.on_location_find_button_clicked(widget)
557436
558 def on_button_video_rebuild_clicked(self, widget):437 def on_button_media_rebuild_clicked(self, widget):
559 """438 """
560 Rebuild video cache requested439 Rebuild media cache requested
561 @param widget: GTK-Widget440 @param widget: GTK-Widget
562 """441 """
563 try:442 try:
@@ -648,41 +527,25 @@
648 """Read configuration and set dialog widget values with read values.527 """Read configuration and set dialog widget values with read values.
649 """528 """
650 # == Videos ==529 # == Videos ==
651 videolist_widget = self.widgets.get_widget("treeview_videos")530 medialist_widget = self.widgets.get_widget("treeview_media")
652 videostore = gtk.ListStore(str)531 mediastore = gtk.ListStore(str)
653532
654 cell_renderer = gtk.CellRendererText()533 cell_renderer = gtk.CellRendererText()
655 column = gtk.TreeViewColumn(_("Folders"), cell_renderer, text=0)534 column = gtk.TreeViewColumn(_("Folders"), cell_renderer, text=0)
656 videolist_widget.append_column(column)535 medialist_widget.append_column(column)
657536
658 self.video_folders = self.config.get_video_folders()537 self.media_folders = self.config.get_media_folders()
659538
660 # Fill model with folders read from config file539 # Fill model with folders read from config file
661 self.init_model(videostore, self.video_folders)540 self.init_model(mediastore, self.media_folders)
662541
663 videolist_widget.set_model(videostore)542 medialist_widget.set_model(mediastore)
664543
665 # Checkboxes544 # Checkboxes
666 metadata_checkbox = self.widgets.get_widget("video_metadata_checkbox")545 metadata_checkbox = self.widgets.get_widget("video_metadata_checkbox")
667 md_val = self.config.download_video_metadata()546 md_val = self.config.download_video_metadata()
668 metadata_checkbox.set_active(md_val)547 metadata_checkbox.set_active(md_val)
669548
670 # == Music ==
671 musiclist_widget = self.widgets.get_widget("treeview_music")
672 music_model = gtk.ListStore(str)
673
674 music_cell = gtk.CellRendererText()
675 music_column = gtk.TreeViewColumn(_("Folders"), music_cell, text=0)
676 musiclist_widget.append_column(music_column)
677
678 self.music_folders = self.config.get_music_folders()
679
680 # Fill model with folders read from config file
681 self.init_model(music_model, self.music_folders)
682
683 musiclist_widget.set_model(music_model)
684
685 # Checkboxes
686 art_checkbox = self.widgets.get_widget("art_checkbox")549 art_checkbox = self.widgets.get_widget("art_checkbox")
687 art_val = self.config.download_album_art()550 art_val = self.config.download_album_art()
688 art_checkbox.set_active(art_val)551 art_checkbox.set_active(art_val)
@@ -691,27 +554,6 @@
691 lyrics_val = self.config.download_lyrics()554 lyrics_val = self.config.download_lyrics()
692 lyrics_checkbox.set_active(lyrics_val)555 lyrics_checkbox.set_active(lyrics_val)
693556
694 # == Images ==
695 imagelist_widget = self.widgets.get_widget("treeview_images")
696 images_model = gtk.ListStore(str)
697
698 img_cell = gtk.CellRendererText()
699 img_column = gtk.TreeViewColumn(_("Folders"), img_cell, text=0)
700 imagelist_widget.append_column(img_column)
701
702 self.image_folders = self.config.get_image_folders()
703
704 # Fill model with folders read from config file
705 self.init_model(images_model, self.image_folders)
706
707 imagelist_widget.set_model(images_model)
708
709 # Checkboxes
710 hidden_checkbox = self.widgets.get_widget(
711 "hidden_files_folders_checkbox")
712 hidden_val = self.config.display_hidden_files_folders()
713 hidden_checkbox.set_active(hidden_val)
714
715 # == RSS-feeds ==557 # == RSS-feeds ==
716 feedlist_widget = self.widgets.get_widget("treeview_feeds")558 feedlist_widget = self.widgets.get_widget("treeview_feeds")
717 feed_model = gtk.ListStore(str)559 feed_model = gtk.ListStore(str)
@@ -1230,28 +1072,28 @@
1230 comment = self.widgets.get_widget("comment_label")1072 comment = self.widgets.get_widget("comment_label")
1231 comment.set_text(theme.getComment())1073 comment.set_text(theme.getComment())
12321074
1233 self.config.write_preference_value("General", "theme", name.get_text())1075 self.config.write_content_value("General", "theme", name.get_text())
12341076
1235 def on_checkbutton_autostart_toggled(self, widget):1077 def on_checkbutton_autostart_toggled(self, widget):
1236 """Server Autostart checkbox toggled"""1078 """Server Autostart checkbox toggled"""
1237 self.config.write_preference_value("General", "start_server_auto",1079 self.config.write_content_value("General", "start_server_auto",
1238 widget.get_active())1080 widget.get_active())
12391081
1240 def on_checkbutton_fullscreen_toggled(self, widget):1082 def on_checkbutton_fullscreen_toggled(self, widget):
1241 """Start in fullscreen checkbox toggled"""1083 """Start in fullscreen checkbox toggled"""
1242 self.config.write_preference_value("General", "start_in_fullscreen",1084 self.config.write_content_value("General", "start_in_fullscreen",
1243 widget.get_active())1085 widget.get_active())
12441086
1245 def on_checkbutton_systray_icon_toggled(self, widget):1087 def on_checkbutton_systray_icon_toggled(self, widget):
1246 """System Tray Icon checkbox toggled"""1088 """System Tray Icon checkbox toggled"""
1247 self.config.write_preference_value("General", "display_icon",1089 self.config.write_content_value("General", "display_icon",
1248 widget.get_active())1090 widget.get_active())
12491091
1250 def on_effect_checkbox_toggled(self, widget):1092 def on_effect_checkbox_toggled(self, widget):
1251 """Effect checkbox toggled"""1093 """Effect checkbox toggled"""
1252 combobox = self.widgets.get_widget("effect_combobox")1094 combobox = self.widgets.get_widget("effect_combobox")
1253 combobox.set_sensitive(widget.get_active())1095 combobox.set_sensitive(widget.get_active())
1254 self.config.write_preference_value("General", "show_effects",1096 self.config.write_content_value("General", "show_effects",
1255 widget.get_active())1097 widget.get_active())
12561098
1257 def on_effect_combobox_changed(self, widget):1099 def on_effect_combobox_changed(self, widget):
@@ -1265,12 +1107,12 @@
1265 english_text = "Zoom and fade"1107 english_text = "Zoom and fade"
1266 if text == _("Slide"):1108 if text == _("Slide"):
1267 english_text = "Slide"1109 english_text = "Slide"
1268 self.config.write_preference_value("General", "transition_effect",1110 self.config.write_content_value("General", "transition_effect",
1269 english_text)1111 english_text)
12701112
1271 def on_spinbutton_slideshow_step_value_changed(self, widget):1113 def on_spinbutton_slideshow_step_value_changed(self, widget):
1272 """Activation of slideshow effects"""1114 """Activation of slideshow effects"""
1273 self.config.write_preference_value("Photographs", "slideshow_step",1115 self.config.write_content_value("Photographs", "slideshow_step",
1274 int(widget.get_value()))1116 int(widget.get_value()))
12751117
1276 def on_dialog_closed(self, widget, after):1118 def on_dialog_closed(self, widget, after):
12771119
=== modified file 'entertainerlib/glade/entertainer-content-management.glade'
--- entertainerlib/glade/entertainer-content-management.glade 2009-05-31 16:36:18 +0000
+++ entertainerlib/glade/entertainer-content-management.glade 2009-07-11 21:39:40 +0000
@@ -1,1481 +1,1646 @@
1<?xml version="1.0"?>1<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
2<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
3
2<glade-interface>4<glade-interface>
3 <!-- interface-requires gtk+ 2.16 -->5
4 <!-- interface-naming-policy toplevel-contextual -->6<widget class="GtkDialog" id="ContentManagementDialog">
5 <widget class="GtkDialog" id="ContentManagementDialog">7 <property name="border_width">5</property>
6 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>8 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
7 <property name="border_width">5</property>9 <property name="title" translatable="yes">Content management</property>
8 <property name="title" translatable="yes">Content management</property>10 <property name="type">GTK_WINDOW_TOPLEVEL</property>
9 <property name="modal">True</property>11 <property name="window_position">GTK_WIN_POS_NONE</property>
10 <property name="window_position">center</property>12 <property name="modal">True</property>
11 <property name="icon_name">applications-multimedia</property>13 <property name="resizable">True</property>
12 <property name="type_hint">dialog</property>14 <property name="destroy_with_parent">False</property>
13 <property name="has_separator">False</property>15 <property name="icon_name">applications-multimedia</property>
14 <signal name="destroy" handler="on_ContentManagementDialog_destroy"/>16 <property name="decorated">True</property>
15 <child internal-child="vbox">17 <property name="skip_taskbar_hint">False</property>
16 <widget class="GtkVBox" id="dialog-layout">18 <property name="skip_pager_hint">False</property>
17 <property name="visible">True</property>19 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
18 <property name="spacing">2</property>20 <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
19 <child>21 <property name="focus_on_map">True</property>
20 <widget class="GtkNotebook" id="tabs">22 <property name="urgency_hint">False</property>
21 <property name="visible">True</property>23 <property name="has_separator">False</property>
22 <property name="can_focus">True</property>24 <signal name="destroy" handler="on_ContentManagementDialog_destroy"/>
23 <property name="has_focus">True</property>25
24 <property name="can_default">True</property>26 <child internal-child="vbox">
25 <property name="has_default">True</property>27 <widget class="GtkVBox" id="dialog-layout">
26 <child>28 <property name="visible">True</property>
27 <widget class="GtkVBox" id="vbox_videos">29 <property name="homogeneous">False</property>
28 <property name="visible">True</property>30 <property name="spacing">2</property>
29 <child>31
30 <widget class="GtkVBox" id="vbox1">32 <child internal-child="action_area">
31 <property name="visible">True</property>33 <widget class="GtkHButtonBox" id="dialog-closebutton-area">
32 <child>34 <property name="visible">True</property>
33 <widget class="GtkFrame" id="frame_video_lib1">35 <property name="layout_style">GTK_BUTTONBOX_END</property>
34 <property name="visible">True</property>36
35 <property name="border_width">5</property>37 <child>
36 <property name="label_xalign">0</property>38 <widget class="GtkButton" id="close_button">
37 <property name="shadow_type">none</property>39 <property name="visible">True</property>
38 <child>40 <property name="can_focus">True</property>
39 <widget class="GtkAlignment" id="alignment1">41 <property name="label">gtk-close</property>
40 <property name="visible">True</property>42 <property name="use_stock">True</property>
41 <property name="left_padding">12</property>43 <property name="relief">GTK_RELIEF_NORMAL</property>
42 <child>44 <property name="focus_on_click">True</property>
43 <widget class="GtkVBox" id="vbox2">45 <property name="response_id">0</property>
44 <property name="visible">True</property>46 <signal name="clicked" handler="on_close_button_clicked"/>
45 <child>47 </widget>
46 <widget class="GtkLabel" id="label_video_folder_tip1">48 </child>
47 <property name="visible">True</property>49 </widget>
48 <property name="xalign">0</property>50 <packing>
49 <property name="label" translatable="yes">Entertainer video library scans data from the listed folders.</property>51 <property name="padding">0</property>
50 <property name="single_line_mode">True</property>52 <property name="expand">False</property>
51 </widget>53 <property name="fill">True</property>
52 <packing>54 <property name="pack_type">GTK_PACK_END</property>
53 <property name="expand">False</property>55 </packing>
54 <property name="padding">5</property>56 </child>
55 <property name="position">0</property>57
56 </packing>58 <child>
57 </child>59 <widget class="GtkNotebook" id="tabs">
58 <child>60 <property name="visible">True</property>
59 <widget class="GtkHBox" id="hbox2">61 <property name="can_default">True</property>
60 <property name="visible">True</property>62 <property name="has_default">True</property>
61 <child>63 <property name="can_focus">True</property>
62 <widget class="GtkScrolledWindow" id="scrolledwindow1">64 <property name="has_focus">True</property>
63 <property name="visible">True</property>65 <property name="show_tabs">True</property>
64 <property name="can_focus">True</property>66 <property name="show_border">True</property>
65 <property name="hscrollbar_policy">automatic</property>67 <property name="tab_pos">GTK_POS_TOP</property>
66 <property name="vscrollbar_policy">automatic</property>68 <property name="scrollable">False</property>
67 <property name="shadow_type">in</property>69 <property name="enable_popup">False</property>
68 <child>70
69 <widget class="GtkTreeView" id="treeview_videos">71 <child>
70 <property name="visible">True</property>72 <widget class="GtkVBox" id="vbox_videos">
71 <property name="can_focus">True</property>73 <property name="visible">True</property>
72 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>74 <property name="homogeneous">False</property>
73 <property name="enable_search">False</property>75 <property name="spacing">0</property>
74 </widget>76
75 </child>77 <child>
76 </widget>78 <widget class="GtkVBox" id="vbox1">
77 <packing>79 <property name="visible">True</property>
78 <property name="position">0</property>80 <property name="homogeneous">False</property>
79 </packing>81 <property name="spacing">0</property>
80 </child>82
81 <child>83 <child>
82 <widget class="GtkVButtonBox" id="vbuttonbox1">84 <widget class="GtkFrame" id="frame_video_lib1">
83 <property name="visible">True</property>85 <property name="border_width">5</property>
84 <property name="spacing">5</property>86 <property name="visible">True</property>
85 <property name="layout_style">start</property>87 <property name="label_xalign">0</property>
86 <child>88 <property name="label_yalign">0.5</property>
87 <widget class="GtkButton" id="button_add_videos">89 <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
88 <property name="label">gtk-add</property>90
89 <property name="visible">True</property>91 <child>
90 <property name="can_focus">True</property>92 <widget class="GtkAlignment" id="alignment1">
91 <property name="has_focus">True</property>93 <property name="visible">True</property>
92 <property name="can_default">True</property>94 <property name="xalign">0.5</property>
93 <property name="has_default">True</property>95 <property name="yalign">0.5</property>
94 <property name="receives_default">False</property>96 <property name="xscale">1</property>
95 <property name="use_stock">True</property>97 <property name="yscale">1</property>
96 <signal name="clicked" handler="on_button_add_videos_clicked"/>98 <property name="top_padding">0</property>
97 </widget>99 <property name="bottom_padding">0</property>
98 <packing>100 <property name="left_padding">12</property>
99 <property name="expand">False</property>101 <property name="right_padding">0</property>
100 <property name="fill">False</property>102
101 <property name="position">0</property>103 <child>
102 </packing>104 <widget class="GtkVBox" id="vbox2">
103 </child>105 <property name="visible">True</property>
104 <child>106 <property name="homogeneous">False</property>
105 <widget class="GtkButton" id="button_remove_videos">107 <property name="spacing">0</property>
106 <property name="label">gtk-remove</property>108
107 <property name="visible">True</property>109 <child>
108 <property name="can_focus">True</property>110 <widget class="GtkLabel" id="label_media_folder_tip1">
109 <property name="receives_default">False</property>111 <property name="visible">True</property>
110 <property name="use_stock">True</property>112 <property name="label" translatable="yes">Entertainer will catalog the media in the folders below.</property>
111 <signal name="clicked" handler="on_button_remove_videos_clicked"/>113 <property name="use_underline">False</property>
112 </widget>114 <property name="use_markup">False</property>
113 <packing>115 <property name="justify">GTK_JUSTIFY_LEFT</property>
114 <property name="expand">False</property>116 <property name="wrap">True</property>
115 <property name="fill">False</property>117 <property name="selectable">False</property>
116 <property name="position">1</property>118 <property name="xalign">0</property>
117 </packing>119 <property name="yalign">0</property>
118 </child>120 <property name="xpad">0</property>
119 <child>121 <property name="ypad">0</property>
120 <widget class="GtkButton" id="button_edit_videos">122 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
121 <property name="label">gtk-edit</property>123 <property name="width_chars">-1</property>
122 <property name="visible">True</property>124 <property name="single_line_mode">True</property>
123 <property name="can_focus">True</property>125 <property name="angle">0</property>
124 <property name="receives_default">False</property>126 </widget>
125 <property name="use_stock">True</property>127 <packing>
126 <signal name="clicked" handler="on_button_edit_videos_clicked"/>128 <property name="padding">5</property>
127 </widget>129 <property name="expand">False</property>
128 <packing>130 <property name="fill">True</property>
129 <property name="expand">False</property>131 </packing>
130 <property name="fill">False</property>132 </child>
131 <property name="position">2</property>133
132 </packing>134 <child>
133 </child>135 <widget class="GtkHBox" id="hbox2">
134 </widget>136 <property name="visible">True</property>
135 <packing>137 <property name="homogeneous">False</property>
136 <property name="expand">False</property>138 <property name="spacing">0</property>
137 <property name="padding">5</property>139
138 <property name="position">1</property>140 <child>
139 </packing>141 <widget class="GtkScrolledWindow" id="scrolledwindow1">
140 </child>142 <property name="visible">True</property>
141 </widget>143 <property name="can_focus">True</property>
142 <packing>144 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
143 <property name="position">1</property>145 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
144 </packing>146 <property name="shadow_type">GTK_SHADOW_NONE</property>
145 </child>147 <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
146 </widget>148
147 </child>149 <child>
148 </widget>150 <widget class="GtkTreeView" id="treeview_media">
149 </child>151 <property name="visible">True</property>
150 <child>152 <property name="can_focus">True</property>
151 <widget class="GtkLabel" id="label_video_library1">153 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
152 <property name="visible">True</property>154 <property name="headers_visible">True</property>
153 <property name="label" translatable="yes">&lt;b&gt;Video library&lt;/b&gt;</property>155 <property name="rules_hint">False</property>
154 <property name="use_markup">True</property>156 <property name="reorderable">False</property>
155 </widget>157 <property name="enable_search">False</property>
156 <packing>158 <property name="fixed_height_mode">False</property>
157 <property name="type">label_item</property>159 <property name="hover_selection">False</property>
158 </packing>160 <property name="hover_expand">False</property>
159 </child>161 </widget>
160 </widget>162 </child>
161 <packing>163 </widget>
162 <property name="position">0</property>164 <packing>
163 </packing>165 <property name="padding">0</property>
164 </child>166 <property name="expand">True</property>
165 <child>167 <property name="fill">True</property>
166 <widget class="GtkFrame" id="frame1">168 </packing>
167 <property name="visible">True</property>169 </child>
168 <property name="label_xalign">0</property>170
169 <property name="shadow_type">none</property>171 <child>
170 <child>172 <widget class="GtkVButtonBox" id="vbuttonbox1">
171 <widget class="GtkAlignment" id="alignment2">173 <property name="visible">True</property>
172 <property name="visible">True</property>174 <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
173 <property name="left_padding">12</property>175 <property name="spacing">5</property>
174 <child>176
175 <widget class="GtkCheckButton" id="video_metadata_checkbox">177 <child>
176 <property name="label" translatable="yes">Download movie and TV-series metadata</property>178 <widget class="GtkButton" id="button_add_folder">
177 <property name="visible">True</property>179 <property name="visible">True</property>
178 <property name="can_focus">True</property>180 <property name="can_default">True</property>
179 <property name="receives_default">False</property>181 <property name="has_default">True</property>
180 <property name="use_underline">True</property>182 <property name="can_focus">True</property>
181 <property name="draw_indicator">True</property>183 <property name="has_focus">True</property>
182 <signal name="toggled" handler="on_checkbutton_video_metadata_toggled"/>184 <property name="label">gtk-add</property>
183 </widget>185 <property name="use_stock">True</property>
184 </child>186 <property name="relief">GTK_RELIEF_NORMAL</property>
185 </widget>187 <property name="focus_on_click">True</property>
186 </child>188 <signal name="clicked" handler="on_button_add_media_clicked" last_modification_time="Sat, 11 Jul 2009 19:03:28 GMT"/>
187 <child>189 </widget>
188 <widget class="GtkLabel" id="label2">190 </child>
189 <property name="visible">True</property>191
190 <property name="label" translatable="yes">&lt;b&gt;Video library settings&lt;/b&gt;</property>192 <child>
191 <property name="use_markup">True</property>193 <widget class="GtkButton" id="button_remove_folder">
192 </widget>194 <property name="visible">True</property>
193 <packing>195 <property name="can_focus">True</property>
194 <property name="type">label_item</property>196 <property name="label">gtk-remove</property>
195 </packing>197 <property name="use_stock">True</property>
196 </child>198 <property name="relief">GTK_RELIEF_NORMAL</property>
197 </widget>199 <property name="focus_on_click">True</property>
198 <packing>200 <signal name="clicked" handler="on_button_remove_media_clicked" last_modification_time="Sat, 11 Jul 2009 19:03:39 GMT"/>
199 <property name="position">1</property>201 </widget>
200 </packing>202 </child>
201 </child>203
202 </widget>204 <child>
203 <packing>205 <widget class="GtkButton" id="button_edit_folder">
204 <property name="position">0</property>206 <property name="visible">True</property>
205 </packing>207 <property name="can_focus">True</property>
206 </child>208 <property name="label">gtk-edit</property>
207 </widget>209 <property name="use_stock">True</property>
208 </child>210 <property name="relief">GTK_RELIEF_NORMAL</property>
209 <child>211 <property name="focus_on_click">True</property>
210 <widget class="GtkLabel" id="label_video3">212 <signal name="clicked" handler="on_button_edit_media_clicked" last_modification_time="Sat, 11 Jul 2009 19:03:49 GMT"/>
211 <property name="visible">True</property>213 </widget>
212 <property name="can_focus">True</property>214 </child>
213 <property name="has_focus">True</property>215 </widget>
214 <property name="has_default">True</property>216 <packing>
215 <property name="label" translatable="yes">Videos</property>217 <property name="padding">5</property>
216 </widget>218 <property name="expand">False</property>
217 <packing>219 <property name="fill">True</property>
218 <property name="tab_fill">False</property>220 </packing>
219 <property name="type">tab</property>221 </child>
220 </packing>222 </widget>
221 </child>223 <packing>
222 <child>224 <property name="padding">0</property>
223 <widget class="GtkVBox" id="vbox_music">225 <property name="expand">True</property>
224 <property name="visible">True</property>226 <property name="fill">True</property>
225 <child>227 </packing>
226 <widget class="GtkFrame" id="frame_music_folders3">228 </child>
227 <property name="visible">True</property>229 </widget>
228 <property name="border_width">5</property>230 </child>
229 <property name="label_xalign">0</property>231 </widget>
230 <property name="shadow_type">none</property>232 </child>
231 <child>233
232 <widget class="GtkAlignment" id="alignment9">234 <child>
233 <property name="visible">True</property>235 <widget class="GtkLabel" id="label_media_library">
234 <property name="left_padding">12</property>236 <property name="visible">True</property>
235 <child>237 <property name="label" translatable="yes">&lt;b&gt;Media Library&lt;/b&gt;</property>
236 <widget class="GtkVBox" id="vbox12">238 <property name="use_underline">False</property>
237 <property name="visible">True</property>239 <property name="use_markup">True</property>
238 <child>240 <property name="justify">GTK_JUSTIFY_LEFT</property>
239 <widget class="GtkLabel" id="label8">241 <property name="wrap">False</property>
240 <property name="visible">True</property>242 <property name="selectable">False</property>
241 <property name="xalign">0</property>243 <property name="xalign">0.5</property>
242 <property name="label" translatable="yes">Entertainer music library scans data from the listed folders.</property>244 <property name="yalign">0.5</property>
243 </widget>245 <property name="xpad">0</property>
244 <packing>246 <property name="ypad">0</property>
245 <property name="expand">False</property>247 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
246 <property name="padding">5</property>248 <property name="width_chars">-1</property>
247 <property name="position">0</property>249 <property name="single_line_mode">False</property>
248 </packing>250 <property name="angle">0</property>
249 </child>251 </widget>
250 <child>252 <packing>
251 <widget class="GtkHBox" id="hbox12">253 <property name="type">label_item</property>
252 <property name="visible">True</property>254 </packing>
253 <child>255 </child>
254 <widget class="GtkScrolledWindow" id="scrolledwindow5">256 </widget>
255 <property name="visible">True</property>257 <packing>
256 <property name="can_focus">True</property>258 <property name="padding">0</property>
257 <property name="hscrollbar_policy">automatic</property>259 <property name="expand">True</property>
258 <property name="vscrollbar_policy">automatic</property>260 <property name="fill">True</property>
259 <property name="shadow_type">in</property>261 </packing>
260 <child>262 </child>
261 <widget class="GtkTreeView" id="treeview_music">263
262 <property name="visible">True</property>264 <child>
263 <property name="can_focus">True</property>265 <widget class="GtkHBox" id="hbox20">
264 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>266 <property name="visible">True</property>
265 <property name="enable_search">False</property>267 <property name="homogeneous">False</property>
266 </widget>268 <property name="spacing">0</property>
267 </child>269
268 </widget>270 <child>
269 <packing>271 <widget class="GtkVBox" id="vbox23">
270 <property name="position">0</property>272 <property name="visible">True</property>
271 </packing>273 <property name="homogeneous">False</property>
272 </child>274 <property name="spacing">0</property>
273 <child>275
274 <widget class="GtkVButtonBox" id="vbuttonbox6">276 <child>
275 <property name="visible">True</property>277 <widget class="GtkCheckButton" id="video_metadata_checkbox">
276 <property name="spacing">5</property>278 <property name="visible">True</property>
277 <property name="layout_style">start</property>279 <property name="can_focus">True</property>
278 <child>280 <property name="label" translatable="yes">Download movie and TV-series metadata</property>
279 <widget class="GtkButton" id="button_add_music">281 <property name="use_underline">True</property>
280 <property name="label">gtk-add</property>282 <property name="relief">GTK_RELIEF_NORMAL</property>
281 <property name="visible">True</property>283 <property name="focus_on_click">True</property>
282 <property name="can_focus">True</property>284 <property name="active">False</property>
283 <property name="receives_default">False</property>285 <property name="inconsistent">False</property>
284 <property name="use_stock">True</property>286 <property name="draw_indicator">True</property>
285 <signal name="clicked" handler="on_button_add_music_clicked"/>287 <signal name="toggled" handler="on_checkbutton_video_metadata_toggled" last_modification_time="Sat, 11 Jul 2009 19:09:32 GMT"/>
286 </widget>288 </widget>
287 <packing>289 <packing>
288 <property name="expand">False</property>290 <property name="padding">1</property>
289 <property name="fill">False</property>291 <property name="expand">False</property>
290 <property name="position">0</property>292 <property name="fill">False</property>
291 </packing>293 </packing>
292 </child>294 </child>
293 <child>295
294 <widget class="GtkButton" id="button_remove_music">296 <child>
295 <property name="label">gtk-remove</property>297 <widget class="GtkCheckButton" id="art_checkbox">
296 <property name="visible">True</property>298 <property name="visible">True</property>
297 <property name="can_focus">True</property>299 <property name="can_focus">True</property>
298 <property name="receives_default">False</property>300 <property name="label" translatable="yes">Download album cover art</property>
299 <property name="use_stock">True</property>301 <property name="use_underline">True</property>
300 <signal name="clicked" handler="on_button_remove_music_clicked"/>302 <property name="relief">GTK_RELIEF_NORMAL</property>
301 </widget>303 <property name="focus_on_click">True</property>
302 <packing>304 <property name="active">False</property>
303 <property name="expand">False</property>305 <property name="inconsistent">False</property>
304 <property name="fill">False</property>306 <property name="draw_indicator">True</property>
305 <property name="position">1</property>307 <signal name="toggled" handler="on_art_checkbox_toggled"/>
306 </packing>308 </widget>
307 </child>309 <packing>
308 <child>310 <property name="padding">1</property>
309 <widget class="GtkButton" id="button_edit_music">311 <property name="expand">False</property>
310 <property name="label">gtk-edit</property>312 <property name="fill">False</property>
311 <property name="visible">True</property>313 </packing>
312 <property name="can_focus">True</property>314 </child>
313 <property name="receives_default">False</property>315
314 <property name="use_stock">True</property>316 <child>
315 <signal name="clicked" handler="on_button_edit_music_clicked"/>317 <widget class="GtkCheckButton" id="lyrics_checkbox">
316 </widget>318 <property name="visible">True</property>
317 <packing>319 <property name="can_focus">True</property>
318 <property name="expand">False</property>320 <property name="label" translatable="yes">Download song lyrics</property>
319 <property name="fill">False</property>321 <property name="use_underline">True</property>
320 <property name="position">2</property>322 <property name="relief">GTK_RELIEF_NORMAL</property>
321 </packing>323 <property name="focus_on_click">True</property>
322 </child>324 <property name="active">False</property>
323 </widget>325 <property name="inconsistent">False</property>
324 <packing>326 <property name="draw_indicator">True</property>
325 <property name="expand">False</property>327 <signal name="toggled" handler="on_lyrics_checkbox_toggled"/>
326 <property name="padding">5</property>328 </widget>
327 <property name="position">1</property>329 <packing>
328 </packing>330 <property name="padding">1</property>
329 </child>331 <property name="expand">False</property>
330 </widget>332 <property name="fill">False</property>
331 <packing>333 </packing>
332 <property name="position">1</property>334 </child>
333 </packing>335 </widget>
334 </child>336 <packing>
335 </widget>337 <property name="padding">15</property>
336 </child>338 <property name="expand">True</property>
337 </widget>339 <property name="fill">True</property>
338 </child>340 </packing>
339 <child>341 </child>
340 <widget class="GtkLabel" id="label_music_folders3">342 </widget>
341 <property name="visible">True</property>343 <packing>
342 <property name="label" translatable="yes">&lt;b&gt;Music library&lt;/b&gt;</property>344 <property name="padding">10</property>
343 <property name="use_markup">True</property>345 <property name="expand">True</property>
344 </widget>346 <property name="fill">True</property>
345 <packing>347 </packing>
346 <property name="type">label_item</property>348 </child>
347 </packing>349 </widget>
348 </child>350 <packing>
349 </widget>351 <property name="padding">0</property>
350 <packing>352 <property name="expand">True</property>
351 <property name="position">0</property>353 <property name="fill">True</property>
352 </packing>354 </packing>
353 </child>355 </child>
354 <child>356 </widget>
355 <widget class="GtkFrame" id="frame_music_lib_settings3">357 <packing>
356 <property name="visible">True</property>358 <property name="tab_expand">False</property>
357 <property name="border_width">5</property>359 <property name="tab_fill">True</property>
358 <property name="label_xalign">0</property>360 </packing>
359 <property name="shadow_type">none</property>361 </child>
360 <child>362
361 <widget class="GtkAlignment" id="alignment10">363 <child>
362 <property name="visible">True</property>364 <widget class="GtkLabel" id="label_media">
363 <property name="left_padding">12</property>365 <property name="visible">True</property>
364 <child>366 <property name="has_default">True</property>
365 <widget class="GtkVBox" id="vbox13">367 <property name="can_focus">True</property>
366 <property name="visible">True</property>368 <property name="has_focus">True</property>
367 <property name="homogeneous">True</property>369 <property name="label" translatable="yes">Media</property>
368 <child>370 <property name="use_underline">False</property>
369 <widget class="GtkCheckButton" id="art_checkbox">371 <property name="use_markup">False</property>
370 <property name="label" translatable="yes">Download album cover art</property>372 <property name="justify">GTK_JUSTIFY_LEFT</property>
371 <property name="visible">True</property>373 <property name="wrap">False</property>
372 <property name="can_focus">True</property>374 <property name="selectable">False</property>
373 <property name="receives_default">False</property>375 <property name="xalign">0.5</property>
374 <property name="use_underline">True</property>376 <property name="yalign">0.5</property>
375 <property name="draw_indicator">True</property>377 <property name="xpad">0</property>
376 <signal name="toggled" handler="on_art_checkbox_toggled"/>378 <property name="ypad">0</property>
377 </widget>379 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
378 <packing>380 <property name="width_chars">-1</property>
379 <property name="padding">5</property>381 <property name="single_line_mode">False</property>
380 <property name="position">0</property>382 <property name="angle">0</property>
381 </packing>383 </widget>
382 </child>384 <packing>
383 <child>385 <property name="type">tab</property>
384 <widget class="GtkCheckButton" id="lyrics_checkbox">386 </packing>
385 <property name="label" translatable="yes">Download song lyrics</property>387 </child>
386 <property name="visible">True</property>388
387 <property name="can_focus">True</property>389 <child>
388 <property name="receives_default">False</property>390 <widget class="GtkVBox" id="vbox_feeds">
389 <property name="use_underline">True</property>391 <property name="visible">True</property>
390 <property name="draw_indicator">True</property>392 <property name="homogeneous">False</property>
391 <signal name="toggled" handler="on_lyrics_checkbox_toggled"/>393 <property name="spacing">0</property>
392 </widget>394
393 <packing>395 <child>
394 <property name="padding">5</property>396 <widget class="GtkFrame" id="frame_rss_feeds3">
395 <property name="position">1</property>397 <property name="border_width">5</property>
396 </packing>398 <property name="visible">True</property>
397 </child>399 <property name="label_xalign">0</property>
398 </widget>400 <property name="label_yalign">0.5</property>
399 </child>401 <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
400 </widget>402
401 </child>403 <child>
402 <child>404 <widget class="GtkAlignment" id="alignment13">
403 <widget class="GtkLabel" id="label9">405 <property name="visible">True</property>
404 <property name="visible">True</property>406 <property name="xalign">0.5</property>
405 <property name="label" translatable="yes">&lt;b&gt;Music library settings&lt;/b&gt;</property>407 <property name="yalign">0.5</property>
406 <property name="use_markup">True</property>408 <property name="xscale">1</property>
407 </widget>409 <property name="yscale">1</property>
408 <packing>410 <property name="top_padding">0</property>
409 <property name="type">label_item</property>411 <property name="bottom_padding">0</property>
410 </packing>412 <property name="left_padding">12</property>
411 </child>413 <property name="right_padding">0</property>
412 </widget>414
413 <packing>415 <child>
414 <property name="expand">False</property>416 <widget class="GtkVBox" id="vbox17">
415 <property name="position">1</property>417 <property name="visible">True</property>
416 </packing>418 <property name="homogeneous">False</property>
417 </child>419 <property name="spacing">0</property>
418 </widget>420
419 <packing>421 <child>
420 <property name="position">1</property>422 <widget class="GtkLabel" id="label_rss_tip3">
421 </packing>423 <property name="visible">True</property>
422 </child>424 <property name="label" translatable="yes">Below is a list of RSS feeds that are displayd in Entertainer.</property>
423 <child>425 <property name="use_underline">False</property>
424 <widget class="GtkLabel" id="label10">426 <property name="use_markup">False</property>
425 <property name="visible">True</property>427 <property name="justify">GTK_JUSTIFY_LEFT</property>
426 <property name="label" translatable="yes">Music</property>428 <property name="wrap">False</property>
427 </widget>429 <property name="selectable">False</property>
428 <packing>430 <property name="xalign">0</property>
429 <property name="position">1</property>431 <property name="yalign">0.5</property>
430 <property name="tab_fill">False</property>432 <property name="xpad">0</property>
431 <property name="type">tab</property>433 <property name="ypad">0</property>
432 </packing>434 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
433 </child>435 <property name="width_chars">-1</property>
434 <child>436 <property name="single_line_mode">False</property>
435 <widget class="GtkVBox" id="vbox14">437 <property name="angle">0</property>
436 <property name="visible">True</property>438 </widget>
437 <child>439 <packing>
438 <widget class="GtkFrame" id="frame_image_folders3">440 <property name="padding">5</property>
439 <property name="visible">True</property>441 <property name="expand">False</property>
440 <property name="border_width">5</property>442 <property name="fill">True</property>
441 <property name="label_xalign">0</property>443 </packing>
442 <property name="shadow_type">none</property>444 </child>
443 <child>445
444 <widget class="GtkAlignment" id="alignment11">446 <child>
445 <property name="visible">True</property>447 <widget class="GtkHBox" id="hbox16">
446 <property name="left_padding">12</property>448 <property name="visible">True</property>
447 <child>449 <property name="homogeneous">False</property>
448 <widget class="GtkVBox" id="vbox15">450 <property name="spacing">0</property>
449 <property name="visible">True</property>451
450 <child>452 <child>
451 <widget class="GtkLabel" id="label_music_tip3">453 <widget class="GtkScrolledWindow" id="scrolledwindow_rss3">
452 <property name="visible">True</property>454 <property name="visible">True</property>
453 <property name="xalign">0</property>455 <property name="can_focus">True</property>
454 <property name="label" translatable="yes">Entertainer image library scans data from the listed folders.</property>456 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
455 </widget>457 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
456 <packing>458 <property name="shadow_type">GTK_SHADOW_NONE</property>
457 <property name="expand">False</property>459 <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
458 <property name="padding">5</property>460
459 <property name="position">0</property>461 <child>
460 </packing>462 <widget class="GtkTreeView" id="treeview_feeds">
461 </child>463 <property name="visible">True</property>
462 <child>464 <property name="can_focus">True</property>
463 <widget class="GtkHBox" id="hbox14">465 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
464 <property name="visible">True</property>466 <property name="headers_visible">True</property>
465 <child>467 <property name="rules_hint">False</property>
466 <widget class="GtkScrolledWindow" id="scrolledwindow6">468 <property name="reorderable">False</property>
467 <property name="visible">True</property>469 <property name="enable_search">False</property>
468 <property name="can_focus">True</property>470 <property name="fixed_height_mode">False</property>
469 <property name="hscrollbar_policy">automatic</property>471 <property name="hover_selection">False</property>
470 <property name="vscrollbar_policy">automatic</property>472 <property name="hover_expand">False</property>
471 <property name="shadow_type">in</property>473 </widget>
472 <child>474 </child>
473 <widget class="GtkTreeView" id="treeview_images">475 </widget>
474 <property name="visible">True</property>476 <packing>
475 <property name="can_focus">True</property>477 <property name="padding">0</property>
476 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>478 <property name="expand">True</property>
477 <property name="enable_search">False</property>479 <property name="fill">True</property>
478 </widget>480 </packing>
479 </child>481 </child>
480 </widget>482
481 <packing>483 <child>
482 <property name="position">0</property>484 <widget class="GtkVButtonBox" id="vbuttonbox8">
483 </packing>485 <property name="visible">True</property>
484 </child>486 <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
485 <child>487 <property name="spacing">5</property>
486 <widget class="GtkVButtonBox" id="vbuttonbox7">488
487 <property name="visible">True</property>489 <child>
488 <property name="spacing">5</property>490 <widget class="GtkButton" id="button_add_feed">
489 <property name="layout_style">start</property>491 <property name="visible">True</property>
490 <child>492 <property name="tooltip" translatable="yes">Add RSS Feed</property>
491 <widget class="GtkButton" id="button_add_images">493 <property name="can_focus">True</property>
492 <property name="label">gtk-add</property>494 <property name="label">gtk-add</property>
493 <property name="visible">True</property>495 <property name="use_stock">True</property>
494 <property name="can_focus">True</property>496 <property name="relief">GTK_RELIEF_NORMAL</property>
495 <property name="receives_default">False</property>497 <property name="focus_on_click">True</property>
496 <property name="use_stock">True</property>498 <signal name="clicked" handler="on_button_add_feed_clicked"/>
497 <signal name="clicked" handler="on_button_add_images_clicked"/>499 </widget>
498 </widget>500 </child>
499 <packing>501
500 <property name="expand">False</property>502 <child>
501 <property name="fill">False</property>503 <widget class="GtkButton" id="button_remove_feed">
502 <property name="position">0</property>504 <property name="visible">True</property>
503 </packing>505 <property name="tooltip" translatable="yes">Remove RSS Feed</property>
504 </child>506 <property name="can_focus">True</property>
505 <child>507 <property name="label">gtk-remove</property>
506 <widget class="GtkButton" id="button_remove_images">508 <property name="use_stock">True</property>
507 <property name="label">gtk-remove</property>509 <property name="relief">GTK_RELIEF_NORMAL</property>
508 <property name="visible">True</property>510 <property name="focus_on_click">True</property>
509 <property name="can_focus">True</property>511 <signal name="clicked" handler="on_button_remove_feed_clicked"/>
510 <property name="receives_default">False</property>512 </widget>
511 <property name="use_stock">True</property>513 </child>
512 <signal name="clicked" handler="on_button_remove_images_clicked"/>514
513 </widget>515 <child>
514 <packing>516 <widget class="GtkButton" id="button_edit_feed">
515 <property name="expand">False</property>517 <property name="visible">True</property>
516 <property name="fill">False</property>518 <property name="tooltip" translatable="yes">Edit current item</property>
517 <property name="position">1</property>519 <property name="can_focus">True</property>
518 </packing>520 <property name="label">gtk-edit</property>
519 </child>521 <property name="use_stock">True</property>
520 <child>522 <property name="relief">GTK_RELIEF_NORMAL</property>
521 <widget class="GtkButton" id="button_edit_images">523 <property name="focus_on_click">True</property>
522 <property name="label">gtk-edit</property>524 <signal name="clicked" handler="on_button_edit_feed_clicked"/>
523 <property name="visible">True</property>525 </widget>
524 <property name="can_focus">True</property>526 </child>
525 <property name="receives_default">False</property>527
526 <property name="use_stock">True</property>528 <child>
527 <signal name="clicked" handler="on_button_edit_images_clicked"/>529 <widget class="GtkButton" id="button_open_list">
528 </widget>530 <property name="visible">True</property>
529 <packing>531 <property name="tooltip" translatable="yes">Add feeds from a datasource</property>
530 <property name="expand">False</property>532 <property name="can_focus">True</property>
531 <property name="fill">False</property>533 <property name="label">gtk-open</property>
532 <property name="position">2</property>534 <property name="use_stock">True</property>
533 </packing>535 <property name="relief">GTK_RELIEF_NORMAL</property>
534 </child>536 <property name="focus_on_click">True</property>
535 </widget>537 <signal name="clicked" handler="on_button_open_list_clicked"/>
536 <packing>538 </widget>
537 <property name="expand">False</property>539 </child>
538 <property name="padding">5</property>540 </widget>
539 <property name="position">1</property>541 <packing>
540 </packing>542 <property name="padding">5</property>
541 </child>543 <property name="expand">False</property>
542 </widget>544 <property name="fill">True</property>
543 <packing>545 </packing>
544 <property name="position">1</property>546 </child>
545 </packing>547 </widget>
546 </child>548 <packing>
547 </widget>549 <property name="padding">0</property>
548 </child>550 <property name="expand">True</property>
549 </widget>551 <property name="fill">True</property>
550 </child>552 </packing>
551 <child>553 </child>
552 <widget class="GtkLabel" id="label11">554 </widget>
553 <property name="visible">True</property>555 </child>
554 <property name="label" translatable="yes">&lt;b&gt;Image library&lt;/b&gt;</property>556 </widget>
555 <property name="use_markup">True</property>557 </child>
556 </widget>558
557 <packing>559 <child>
558 <property name="type">label_item</property>560 <widget class="GtkLabel" id="label_rss_sources3">
559 </packing>561 <property name="visible">True</property>
560 </child>562 <property name="label" translatable="yes">&lt;b&gt;RSS feeds&lt;/b&gt;</property>
561 </widget>563 <property name="use_underline">False</property>
562 <packing>564 <property name="use_markup">True</property>
563 <property name="position">0</property>565 <property name="justify">GTK_JUSTIFY_LEFT</property>
564 </packing>566 <property name="wrap">False</property>
565 </child>567 <property name="selectable">False</property>
566 <child>568 <property name="xalign">0.5</property>
567 <widget class="GtkFrame" id="frame_image_lib_settings3">569 <property name="yalign">0.5</property>
568 <property name="visible">True</property>570 <property name="xpad">0</property>
569 <property name="border_width">5</property>571 <property name="ypad">0</property>
570 <property name="label_xalign">0</property>572 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
571 <property name="shadow_type">none</property>573 <property name="width_chars">-1</property>
572 <child>574 <property name="single_line_mode">False</property>
573 <widget class="GtkAlignment" id="alignment12">575 <property name="angle">0</property>
574 <property name="visible">True</property>576 </widget>
575 <property name="left_padding">12</property>577 <packing>
576 <child>578 <property name="type">label_item</property>
577 <widget class="GtkVBox" id="vbox16">579 </packing>
578 <property name="visible">True</property>580 </child>
579 <child>581 </widget>
580 <placeholder/>582 <packing>
581 </child>583 <property name="padding">0</property>
582 <child>584 <property name="expand">True</property>
583 <widget class="GtkCheckButton" id="hidden_files_folders_checkbox">585 <property name="fill">True</property>
584 <property name="label" translatable="yes">Display hidden files and folders in image library</property>586 </packing>
585 <property name="visible">True</property>587 </child>
586 <property name="can_focus">True</property>588
587 <property name="receives_default">False</property>589 <child>
588 <property name="use_underline">True</property>590 <widget class="GtkFrame" id="frame_feed_settings3">
589 <property name="draw_indicator">True</property>591 <property name="border_width">5</property>
590 <signal name="toggled" handler="on_hidden_files_folders_checkbox_toggled"/>592 <property name="visible">True</property>
591 </widget>593 <property name="label_xalign">0</property>
592 <packing>594 <property name="label_yalign">0.5</property>
593 <property name="padding">5</property>595 <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
594 <property name="position">1</property>596
595 </packing>597 <child>
596 </child>598 <widget class="GtkAlignment" id="alignment14">
597 </widget>599 <property name="visible">True</property>
598 </child>600 <property name="xalign">0.5</property>
599 </widget>601 <property name="yalign">0.5</property>
600 </child>602 <property name="xscale">1</property>
601 <child>603 <property name="yscale">1</property>
602 <widget class="GtkLabel" id="label_image_lib_settings3">604 <property name="top_padding">0</property>
603 <property name="visible">True</property>605 <property name="bottom_padding">0</property>
604 <property name="label" translatable="yes">&lt;b&gt;Image library settings&lt;/b&gt;</property>606 <property name="left_padding">12</property>
605 <property name="use_markup">True</property>607 <property name="right_padding">0</property>
606 </widget>608
607 <packing>609 <child>
608 <property name="type">label_item</property>610 <widget class="GtkVBox" id="vbox18">
609 </packing>611 <property name="visible">True</property>
610 </child>612 <property name="homogeneous">False</property>
611 </widget>613 <property name="spacing">0</property>
612 <packing>614
613 <property name="expand">False</property>615 <child>
614 <property name="position">1</property>616 <widget class="GtkHBox" id="hbox17">
615 </packing>617 <property name="visible">True</property>
616 </child>618 <property name="homogeneous">False</property>
617 </widget>619 <property name="spacing">0</property>
618 <packing>620
619 <property name="position">2</property>621 <child>
620 </packing>622 <widget class="GtkLabel" id="label12">
621 </child>623 <property name="visible">True</property>
622 <child>624 <property name="label" translatable="yes">Update all feeds every</property>
623 <widget class="GtkLabel" id="label_images3">625 <property name="use_underline">False</property>
624 <property name="visible">True</property>626 <property name="use_markup">False</property>
625 <property name="label" translatable="yes">Images</property>627 <property name="justify">GTK_JUSTIFY_LEFT</property>
626 </widget>628 <property name="wrap">False</property>
627 <packing>629 <property name="selectable">False</property>
628 <property name="position">2</property>630 <property name="xalign">0.5</property>
629 <property name="tab_fill">False</property>631 <property name="yalign">0.5</property>
630 <property name="type">tab</property>632 <property name="xpad">0</property>
631 </packing>633 <property name="ypad">0</property>
632 </child>634 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
633 <child>635 <property name="width_chars">-1</property>
634 <widget class="GtkVBox" id="vbox_feeds">636 <property name="single_line_mode">False</property>
635 <property name="visible">True</property>637 <property name="angle">0</property>
636 <child>638 </widget>
637 <widget class="GtkFrame" id="frame_rss_feeds3">639 <packing>
638 <property name="visible">True</property>640 <property name="padding">0</property>
639 <property name="border_width">5</property>641 <property name="expand">False</property>
640 <property name="label_xalign">0</property>642 <property name="fill">True</property>
641 <property name="shadow_type">none</property>643 </packing>
642 <child>644 </child>
643 <widget class="GtkAlignment" id="alignment13">645
644 <property name="visible">True</property>646 <child>
645 <property name="left_padding">12</property>647 <widget class="GtkSpinButton" id="fetch_interval_spinbutton">
646 <child>648 <property name="visible">True</property>
647 <widget class="GtkVBox" id="vbox17">649 <property name="can_focus">True</property>
648 <property name="visible">True</property>650 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
649 <child>651 <property name="climb_rate">1</property>
650 <widget class="GtkLabel" id="label_rss_tip3">652 <property name="digits">0</property>
651 <property name="visible">True</property>653 <property name="numeric">True</property>
652 <property name="xalign">0</property>654 <property name="update_policy">GTK_UPDATE_ALWAYS</property>
653 <property name="label" translatable="yes">Below is a list of RSS feeds that are displayd in Entertainer.</property>655 <property name="snap_to_ticks">False</property>
654 </widget>656 <property name="wrap">False</property>
655 <packing>657 <property name="adjustment">60 15 900 1 10 0</property>
656 <property name="expand">False</property>658 <signal name="value_changed" handler="on_fetch_interval_spinbutton_value_changed"/>
657 <property name="padding">5</property>659 </widget>
658 <property name="position">0</property>660 <packing>
659 </packing>661 <property name="padding">5</property>
660 </child>662 <property name="expand">False</property>
661 <child>663 <property name="fill">True</property>
662 <widget class="GtkHBox" id="hbox16">664 </packing>
663 <property name="visible">True</property>665 </child>
664 <child>666
665 <widget class="GtkScrolledWindow" id="scrolledwindow_rss3">667 <child>
666 <property name="visible">True</property>668 <widget class="GtkLabel" id="label13">
667 <property name="can_focus">True</property>669 <property name="visible">True</property>
668 <property name="hscrollbar_policy">automatic</property>670 <property name="label" translatable="yes">minutes.</property>
669 <property name="vscrollbar_policy">automatic</property>671 <property name="use_underline">False</property>
670 <property name="shadow_type">in</property>672 <property name="use_markup">False</property>
671 <child>673 <property name="justify">GTK_JUSTIFY_LEFT</property>
672 <widget class="GtkTreeView" id="treeview_feeds">674 <property name="wrap">False</property>
673 <property name="visible">True</property>675 <property name="selectable">False</property>
674 <property name="can_focus">True</property>676 <property name="xalign">0.5</property>
675 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>677 <property name="yalign">0.5</property>
676 <property name="enable_search">False</property>678 <property name="xpad">0</property>
677 </widget>679 <property name="ypad">0</property>
678 </child>680 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
679 </widget>681 <property name="width_chars">-1</property>
680 <packing>682 <property name="single_line_mode">False</property>
681 <property name="position">0</property>683 <property name="angle">0</property>
682 </packing>684 </widget>
683 </child>685 <packing>
684 <child>686 <property name="padding">0</property>
685 <widget class="GtkVButtonBox" id="vbuttonbox8">687 <property name="expand">False</property>
686 <property name="visible">True</property>688 <property name="fill">True</property>
687 <property name="spacing">5</property>689 </packing>
688 <property name="layout_style">start</property>690 </child>
689 <child>691 </widget>
690 <widget class="GtkButton" id="button_add_feed">692 <packing>
691 <property name="label">gtk-add</property>693 <property name="padding">10</property>
692 <property name="visible">True</property>694 <property name="expand">False</property>
693 <property name="can_focus">True</property>695 <property name="fill">True</property>
694 <property name="receives_default">False</property>696 </packing>
695 <property name="tooltip" translatable="yes">Add RSS Feed</property>697 </child>
696 <property name="use_stock">True</property>698 </widget>
697 <signal name="clicked" handler="on_button_add_feed_clicked"/>699 </child>
698 </widget>700 </widget>
699 <packing>701 </child>
700 <property name="expand">False</property>702
701 <property name="fill">False</property>703 <child>
702 <property name="position">0</property>704 <widget class="GtkLabel" id="label_rss_settings3">
703 </packing>705 <property name="visible">True</property>
704 </child>706 <property name="label" translatable="yes">&lt;b&gt;Feed settings&lt;/b&gt;</property>
705 <child>707 <property name="use_underline">False</property>
706 <widget class="GtkButton" id="button_remove_feed">708 <property name="use_markup">True</property>
707 <property name="label">gtk-remove</property>709 <property name="justify">GTK_JUSTIFY_LEFT</property>
708 <property name="visible">True</property>710 <property name="wrap">False</property>
709 <property name="can_focus">True</property>711 <property name="selectable">False</property>
710 <property name="receives_default">False</property>712 <property name="xalign">0.5</property>
711 <property name="tooltip" translatable="yes">Remove RSS Feed</property>713 <property name="yalign">0.5</property>
712 <property name="use_stock">True</property>714 <property name="xpad">0</property>
713 <signal name="clicked" handler="on_button_remove_feed_clicked"/>715 <property name="ypad">0</property>
714 </widget>716 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
715 <packing>717 <property name="width_chars">-1</property>
716 <property name="expand">False</property>718 <property name="single_line_mode">False</property>
717 <property name="fill">False</property>719 <property name="angle">0</property>
718 <property name="position">1</property>720 </widget>
719 </packing>721 <packing>
720 </child>722 <property name="type">label_item</property>
721 <child>723 </packing>
722 <widget class="GtkButton" id="button_edit_feed">724 </child>
723 <property name="label">gtk-edit</property>725 </widget>
724 <property name="visible">True</property>726 <packing>
725 <property name="can_focus">True</property>727 <property name="padding">0</property>
726 <property name="receives_default">False</property>728 <property name="expand">False</property>
727 <property name="tooltip" translatable="yes">Edit current item</property>729 <property name="fill">True</property>
728 <property name="use_stock">True</property>730 </packing>
729 <signal name="clicked" handler="on_button_edit_feed_clicked"/>731 </child>
730 </widget>732 </widget>
731 <packing>733 <packing>
732 <property name="expand">False</property>734 <property name="tab_expand">False</property>
733 <property name="fill">False</property>735 <property name="tab_fill">True</property>
734 <property name="position">2</property>736 </packing>
735 </packing>737 </child>
736 </child>738
737 <child>739 <child>
738 <widget class="GtkButton" id="button_open_list">740 <widget class="GtkLabel" id="label_rss3">
739 <property name="label">gtk-open</property>741 <property name="visible">True</property>
740 <property name="visible">True</property>742 <property name="label" translatable="yes">RSS feeds</property>
741 <property name="can_focus">True</property>743 <property name="use_underline">False</property>
742 <property name="receives_default">False</property>744 <property name="use_markup">False</property>
743 <property name="tooltip" translatable="yes">Add feeds from a datasource</property>745 <property name="justify">GTK_JUSTIFY_LEFT</property>
744 <property name="use_stock">True</property>746 <property name="wrap">False</property>
745 <signal name="clicked" handler="on_button_open_list_clicked"/>747 <property name="selectable">False</property>
746 </widget>748 <property name="xalign">0.5</property>
747 <packing>749 <property name="yalign">0.5</property>
748 <property name="expand">False</property>750 <property name="xpad">0</property>
749 <property name="fill">False</property>751 <property name="ypad">0</property>
750 <property name="position">3</property>752 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
751 </packing>753 <property name="width_chars">-1</property>
752 </child>754 <property name="single_line_mode">False</property>
753 </widget>755 <property name="angle">0</property>
754 <packing>756 </widget>
755 <property name="expand">False</property>757 <packing>
756 <property name="padding">5</property>758 <property name="type">tab</property>
757 <property name="position">1</property>759 </packing>
758 </packing>760 </child>
759 </child>761
760 </widget>762 <child>
761 <packing>763 <widget class="GtkVBox" id="vbox5">
762 <property name="position">1</property>764 <property name="visible">True</property>
763 </packing>765 <property name="homogeneous">False</property>
764 </child>766 <property name="spacing">0</property>
765 </widget>767
766 </child>768 <child>
767 </widget>769 <widget class="GtkFrame" id="frame_video_lib3">
768 </child>770 <property name="border_width">5</property>
769 <child>771 <property name="visible">True</property>
770 <widget class="GtkLabel" id="label_rss_sources3">772 <property name="label_xalign">0</property>
771 <property name="visible">True</property>773 <property name="label_yalign">0.5</property>
772 <property name="label" translatable="yes">&lt;b&gt;RSS feeds&lt;/b&gt;</property>774 <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
773 <property name="use_markup">True</property>775
774 </widget>776 <child>
775 <packing>777 <widget class="GtkAlignment" id="alignment5">
776 <property name="type">label_item</property>778 <property name="visible">True</property>
777 </packing>779 <property name="xalign">0.5</property>
778 </child>780 <property name="yalign">0.5</property>
779 </widget>781 <property name="xscale">1</property>
780 <packing>782 <property name="yscale">1</property>
781 <property name="position">0</property>783 <property name="top_padding">0</property>
782 </packing>784 <property name="bottom_padding">0</property>
783 </child>785 <property name="left_padding">12</property>
784 <child>786 <property name="right_padding">0</property>
785 <widget class="GtkFrame" id="frame_feed_settings3">787
786 <property name="visible">True</property>788 <child>
787 <property name="border_width">5</property>789 <widget class="GtkVBox" id="weather_location_list_area">
788 <property name="label_xalign">0</property>790 <property name="visible">True</property>
789 <property name="shadow_type">none</property>791 <property name="homogeneous">False</property>
790 <child>792 <property name="spacing">0</property>
791 <widget class="GtkAlignment" id="alignment14">793
792 <property name="visible">True</property>794 <child>
793 <property name="left_padding">12</property>795 <widget class="GtkLabel" id="label_weather_tip">
794 <child>796 <property name="visible">True</property>
795 <widget class="GtkVBox" id="vbox18">797 <property name="label" translatable="yes">Get weather conditions from the locations listed below.</property>
796 <property name="visible">True</property>798 <property name="use_underline">False</property>
797 <child>799 <property name="use_markup">False</property>
798 <widget class="GtkHBox" id="hbox17">800 <property name="justify">GTK_JUSTIFY_LEFT</property>
799 <property name="visible">True</property>801 <property name="wrap">False</property>
800 <child>802 <property name="selectable">False</property>
801 <widget class="GtkLabel" id="label12">803 <property name="xalign">0</property>
802 <property name="visible">True</property>804 <property name="yalign">0.5</property>
803 <property name="label" translatable="yes">Update all feeds every</property>805 <property name="xpad">0</property>
804 </widget>806 <property name="ypad">0</property>
805 <packing>807 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
806 <property name="expand">False</property>808 <property name="width_chars">-1</property>
807 <property name="position">0</property>809 <property name="single_line_mode">True</property>
808 </packing>810 <property name="angle">0</property>
809 </child>811 </widget>
810 <child>812 <packing>
811 <widget class="GtkSpinButton" id="fetch_interval_spinbutton">813 <property name="padding">5</property>
812 <property name="visible">True</property>814 <property name="expand">False</property>
813 <property name="can_focus">True</property>815 <property name="fill">True</property>
814 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>816 </packing>
815 <property name="adjustment">60 15 900 1 10 0</property>817 </child>
816 <property name="climb_rate">1</property>818
817 <property name="numeric">True</property>819 <child>
818 <signal name="value_changed" handler="on_fetch_interval_spinbutton_value_changed"/>820 <widget class="GtkHBox" id="hbox4">
819 </widget>821 <property name="visible">True</property>
820 <packing>822 <property name="homogeneous">False</property>
821 <property name="expand">False</property>823 <property name="spacing">0</property>
822 <property name="padding">5</property>824
823 <property name="position">1</property>825 <child>
824 </packing>826 <widget class="GtkScrolledWindow" id="scrolledwindow3">
825 </child>827 <property name="visible">True</property>
826 <child>828 <property name="can_focus">True</property>
827 <widget class="GtkLabel" id="label13">829 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
828 <property name="visible">True</property>830 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
829 <property name="label" translatable="yes">minutes.</property>831 <property name="shadow_type">GTK_SHADOW_NONE</property>
830 </widget>832 <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
831 <packing>833
832 <property name="expand">False</property>834 <child>
833 <property name="position">2</property>835 <widget class="GtkTreeView" id="treeview_locations">
834 </packing>836 <property name="visible">True</property>
835 </child>837 <property name="can_focus">True</property>
836 </widget>838 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
837 <packing>839 <property name="headers_visible">True</property>
838 <property name="expand">False</property>840 <property name="rules_hint">False</property>
839 <property name="padding">10</property>841 <property name="reorderable">False</property>
840 <property name="position">0</property>842 <property name="enable_search">False</property>
841 </packing>843 <property name="fixed_height_mode">False</property>
842 </child>844 <property name="hover_selection">False</property>
843 </widget>845 <property name="hover_expand">False</property>
844 </child>846 </widget>
845 </widget>847 </child>
846 </child>848 </widget>
847 <child>849 <packing>
848 <widget class="GtkLabel" id="label_rss_settings3">850 <property name="padding">0</property>
849 <property name="visible">True</property>851 <property name="expand">True</property>
850 <property name="label" translatable="yes">&lt;b&gt;Feed settings&lt;/b&gt;</property>852 <property name="fill">True</property>
851 <property name="use_markup">True</property>853 </packing>
852 </widget>854 </child>
853 <packing>855
854 <property name="type">label_item</property>856 <child>
855 </packing>857 <widget class="GtkVButtonBox" id="vbuttonbox3">
856 </child>858 <property name="visible">True</property>
857 </widget>859 <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
858 <packing>860 <property name="spacing">5</property>
859 <property name="expand">False</property>861
860 <property name="position">1</property>862 <child>
861 </packing>863 <widget class="GtkButton" id="button_add_weather">
862 </child>864 <property name="visible">True</property>
863 </widget>865 <property name="can_default">True</property>
864 <packing>866 <property name="has_default">True</property>
865 <property name="position">3</property>867 <property name="can_focus">True</property>
866 </packing>868 <property name="has_focus">True</property>
867 </child>869 <property name="label">gtk-new</property>
868 <child>870 <property name="use_stock">True</property>
869 <widget class="GtkLabel" id="label_rss3">871 <property name="relief">GTK_RELIEF_NORMAL</property>
870 <property name="visible">True</property>872 <property name="focus_on_click">True</property>
871 <property name="label" translatable="yes">RSS feeds</property>873 <signal name="clicked" handler="on_button_add_weather_clicked"/>
872 </widget>874 </widget>
873 <packing>875 </child>
874 <property name="position">3</property>876
875 <property name="tab_fill">False</property>877 <child>
876 <property name="type">tab</property>878 <widget class="GtkButton" id="button_remove_weather">
877 </packing>879 <property name="visible">True</property>
878 </child>880 <property name="can_focus">True</property>
879 <child>881 <property name="label">gtk-clear</property>
880 <widget class="GtkVBox" id="vbox5">882 <property name="use_stock">True</property>
881 <property name="visible">True</property>883 <property name="relief">GTK_RELIEF_NORMAL</property>
882 <child>884 <property name="focus_on_click">True</property>
883 <widget class="GtkFrame" id="frame_video_lib3">885 <signal name="clicked" handler="on_button_remove_weather_clicked"/>
884 <property name="visible">True</property>886 </widget>
885 <property name="border_width">5</property>887 </child>
886 <property name="label_xalign">0</property>888 </widget>
887 <property name="shadow_type">none</property>889 <packing>
888 <child>890 <property name="padding">5</property>
889 <widget class="GtkAlignment" id="alignment5">891 <property name="expand">False</property>
890 <property name="visible">True</property>892 <property name="fill">True</property>
891 <property name="left_padding">12</property>893 </packing>
892 <child>894 </child>
893 <widget class="GtkVBox" id="weather_location_list_area">895 </widget>
894 <property name="visible">True</property>896 <packing>
895 <child>897 <property name="padding">0</property>
896 <widget class="GtkLabel" id="label_weather_tip">898 <property name="expand">True</property>
897 <property name="visible">True</property>899 <property name="fill">True</property>
898 <property name="xalign">0</property>900 </packing>
899 <property name="label" translatable="yes">Get weather conditions from the locations listed below.</property>901 </child>
900 <property name="single_line_mode">True</property>902 </widget>
901 </widget>903 </child>
902 <packing>904 </widget>
903 <property name="expand">False</property>905 </child>
904 <property name="padding">5</property>906
905 <property name="position">0</property>907 <child>
906 </packing>908 <widget class="GtkLabel" id="label_weather_options">
907 </child>909 <property name="visible">True</property>
908 <child>910 <property name="label" translatable="yes">&lt;b&gt;Weather locations&lt;/b&gt;</property>
909 <widget class="GtkHBox" id="hbox4">911 <property name="use_underline">False</property>
910 <property name="visible">True</property>912 <property name="use_markup">True</property>
911 <child>913 <property name="justify">GTK_JUSTIFY_LEFT</property>
912 <widget class="GtkScrolledWindow" id="scrolledwindow3">914 <property name="wrap">False</property>
913 <property name="visible">True</property>915 <property name="selectable">False</property>
914 <property name="can_focus">True</property>916 <property name="xalign">0.5</property>
915 <property name="hscrollbar_policy">automatic</property>917 <property name="yalign">0.5</property>
916 <property name="vscrollbar_policy">automatic</property>918 <property name="xpad">0</property>
917 <property name="shadow_type">in</property>919 <property name="ypad">0</property>
918 <child>920 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
919 <widget class="GtkTreeView" id="treeview_locations">921 <property name="width_chars">-1</property>
920 <property name="visible">True</property>922 <property name="single_line_mode">False</property>
921 <property name="can_focus">True</property>923 <property name="angle">0</property>
922 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>924 </widget>
923 <property name="enable_search">False</property>925 <packing>
924 </widget>926 <property name="type">label_item</property>
925 </child>927 </packing>
926 </widget>928 </child>
927 <packing>929 </widget>
928 <property name="position">0</property>930 <packing>
929 </packing>931 <property name="padding">0</property>
930 </child>932 <property name="expand">True</property>
931 <child>933 <property name="fill">True</property>
932 <widget class="GtkVButtonBox" id="vbuttonbox3">934 </packing>
933 <property name="visible">True</property>935 </child>
934 <property name="spacing">5</property>936
935 <property name="layout_style">start</property>937 <child>
936 <child>938 <widget class="GtkFrame" id="frame4">
937 <widget class="GtkButton" id="button_add_weather">939 <property name="visible">True</property>
938 <property name="label">gtk-new</property>940 <property name="label_xalign">0</property>
939 <property name="visible">True</property>941 <property name="label_yalign">0.5</property>
940 <property name="can_focus">True</property>942 <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
941 <property name="has_focus">True</property>943
942 <property name="can_default">True</property>944 <child>
943 <property name="has_default">True</property>945 <widget class="GtkAlignment" id="alignment7">
944 <property name="receives_default">False</property>946 <property name="visible">True</property>
945 <property name="use_stock">True</property>947 <property name="xalign">0.5</property>
946 <signal name="clicked" handler="on_button_add_weather_clicked"/>948 <property name="yalign">0.5</property>
947 </widget>949 <property name="xscale">1</property>
948 <packing>950 <property name="yscale">1</property>
949 <property name="expand">False</property>951 <property name="top_padding">0</property>
950 <property name="fill">False</property>952 <property name="bottom_padding">0</property>
951 <property name="position">0</property>953 <property name="left_padding">12</property>
952 </packing>954 <property name="right_padding">0</property>
953 </child>955
954 <child>956 <child>
955 <widget class="GtkButton" id="button_remove_weather">957 <widget class="GtkVBox" id="vbox7">
956 <property name="label">gtk-clear</property>958 <property name="visible">True</property>
957 <property name="visible">True</property>959 <property name="homogeneous">False</property>
958 <property name="can_focus">True</property>960 <property name="spacing">0</property>
959 <property name="receives_default">False</property>961
960 <property name="use_stock">True</property>962 <child>
961 <signal name="clicked" handler="on_button_remove_weather_clicked"/>963 <widget class="GtkCheckButton" id="weather_display_checkbox">
962 </widget>964 <property name="visible">True</property>
963 <packing>965 <property name="can_focus">True</property>
964 <property name="expand">False</property>966 <property name="label" translatable="yes">Display weather option in main menu</property>
965 <property name="fill">False</property>967 <property name="use_underline">True</property>
966 <property name="position">1</property>968 <property name="relief">GTK_RELIEF_NORMAL</property>
967 </packing>969 <property name="focus_on_click">True</property>
968 </child>970 <property name="active">True</property>
969 </widget>971 <property name="inconsistent">False</property>
970 <packing>972 <property name="draw_indicator">True</property>
971 <property name="expand">False</property>973 <signal name="toggled" handler="on_weather_display_checkbox_toggled"/>
972 <property name="padding">5</property>974 </widget>
973 <property name="position">1</property>975 <packing>
974 </packing>976 <property name="padding">0</property>
975 </child>977 <property name="expand">True</property>
976 </widget>978 <property name="fill">False</property>
977 <packing>979 </packing>
978 <property name="position">1</property>980 </child>
979 </packing>981 </widget>
980 </child>982 </child>
981 </widget>983 </widget>
982 </child>984 </child>
983 </widget>985
984 </child>986 <child>
985 <child>987 <widget class="GtkLabel" id="label7">
986 <widget class="GtkLabel" id="label_weather_options">988 <property name="visible">True</property>
987 <property name="visible">True</property>989 <property name="label" translatable="yes">&lt;b&gt;Weather settings&lt;/b&gt;</property>
988 <property name="label" translatable="yes">&lt;b&gt;Weather locations&lt;/b&gt;</property>990 <property name="use_underline">False</property>
989 <property name="use_markup">True</property>991 <property name="use_markup">True</property>
990 </widget>992 <property name="justify">GTK_JUSTIFY_LEFT</property>
991 <packing>993 <property name="wrap">False</property>
992 <property name="type">label_item</property>994 <property name="selectable">False</property>
993 </packing>995 <property name="xalign">0.5</property>
994 </child>996 <property name="yalign">0.5</property>
995 </widget>997 <property name="xpad">0</property>
996 <packing>998 <property name="ypad">0</property>
997 <property name="position">0</property>999 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
998 </packing>1000 <property name="width_chars">-1</property>
999 </child>1001 <property name="single_line_mode">False</property>
1000 <child>1002 <property name="angle">0</property>
1001 <widget class="GtkFrame" id="frame4">1003 </widget>
1002 <property name="visible">True</property>1004 <packing>
1003 <property name="label_xalign">0</property>1005 <property name="type">label_item</property>
1004 <property name="shadow_type">none</property>1006 </packing>
1005 <child>1007 </child>
1006 <widget class="GtkAlignment" id="alignment7">1008 </widget>
1007 <property name="visible">True</property>1009 <packing>
1008 <property name="left_padding">12</property>1010 <property name="padding">0</property>
1009 <child>1011 <property name="expand">True</property>
1010 <widget class="GtkVBox" id="vbox7">1012 <property name="fill">True</property>
1011 <property name="visible">True</property>1013 </packing>
1012 <child>1014 </child>
1013 <widget class="GtkCheckButton" id="weather_display_checkbox">1015 </widget>
1014 <property name="label" translatable="yes">Display weather option in main menu</property>1016 <packing>
1015 <property name="visible">True</property>1017 <property name="tab_expand">False</property>
1016 <property name="can_focus">True</property>1018 <property name="tab_fill">True</property>
1017 <property name="receives_default">False</property>1019 </packing>
1018 <property name="use_underline">True</property>1020 </child>
1019 <property name="active">True</property>1021
1020 <property name="draw_indicator">True</property>1022 <child>
1021 <signal name="toggled" handler="on_weather_display_checkbox_toggled"/>1023 <widget class="GtkLabel" id="label_weather">
1022 </widget>1024 <property name="visible">True</property>
1023 <packing>1025 <property name="label" translatable="yes">Weather</property>
1024 <property name="fill">False</property>1026 <property name="use_underline">False</property>
1025 <property name="position">0</property>1027 <property name="use_markup">False</property>
1026 </packing>1028 <property name="justify">GTK_JUSTIFY_LEFT</property>
1027 </child>1029 <property name="wrap">False</property>
1028 </widget>1030 <property name="selectable">False</property>
1029 </child>1031 <property name="xalign">0.5</property>
1030 </widget>1032 <property name="yalign">0.409999996424</property>
1031 </child>1033 <property name="xpad">0</property>
1032 <child>1034 <property name="ypad">0</property>
1033 <widget class="GtkLabel" id="label7">1035 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1034 <property name="visible">True</property>1036 <property name="width_chars">-1</property>
1035 <property name="label" translatable="yes">&lt;b&gt;Weather settings&lt;/b&gt;</property>1037 <property name="single_line_mode">False</property>
1036 <property name="use_markup">True</property>1038 <property name="angle">0</property>
1037 </widget>1039 </widget>
1038 <packing>1040 <packing>
1039 <property name="type">label_item</property>1041 <property name="type">tab</property>
1040 </packing>1042 </packing>
1041 </child>1043 </child>
1042 </widget>1044
1043 <packing>1045 <child>
1044 <property name="position">1</property>1046 <widget class="GtkFrame" id="frame2">
1045 </packing>1047 <property name="border_width">5</property>
1046 </child>1048 <property name="visible">True</property>
1047 </widget>1049 <property name="label_xalign">0</property>
1048 <packing>1050 <property name="label_yalign">0.5</property>
1049 <property name="position">4</property>1051 <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
1050 </packing>1052
1051 </child>1053 <child>
1052 <child>1054 <widget class="GtkAlignment" id="alignment3">
1053 <widget class="GtkLabel" id="label_weather">1055 <property name="visible">True</property>
1054 <property name="visible">True</property>1056 <property name="xalign">0.5</property>
1055 <property name="yalign">0.40999999642372131</property>1057 <property name="yalign">0.5</property>
1056 <property name="label" translatable="yes">Weather</property>1058 <property name="xscale">1</property>
1057 </widget>1059 <property name="yscale">1</property>
1058 <packing>1060 <property name="top_padding">0</property>
1059 <property name="position">4</property>1061 <property name="bottom_padding">0</property>
1060 <property name="tab_fill">False</property>1062 <property name="left_padding">12</property>
1061 <property name="type">tab</property>1063 <property name="right_padding">0</property>
1062 </packing>1064
1063 </child>1065 <child>
1064 <child>1066 <widget class="GtkVBox" id="vbox3">
1065 <widget class="GtkFrame" id="frame2">1067 <property name="visible">True</property>
1066 <property name="visible">True</property>1068 <property name="homogeneous">False</property>
1067 <property name="border_width">5</property>1069 <property name="spacing">0</property>
1068 <property name="label_xalign">0</property>1070
1069 <property name="shadow_type">none</property>1071 <child>
1070 <child>1072 <widget class="GtkLabel" id="label5">
1071 <widget class="GtkAlignment" id="alignment3">1073 <property name="visible">True</property>
1072 <property name="visible">True</property>1074 <property name="label" translatable="yes">Rebuilding cache means that all data is removed and then
1073 <property name="left_padding">12</property>
1074 <child>
1075 <widget class="GtkVBox" id="vbox3">
1076 <property name="visible">True</property>
1077 <child>
1078 <widget class="GtkLabel" id="label5">
1079 <property name="visible">True</property>
1080 <property name="xpad">7</property>
1081 <property name="ypad">7</property>
1082 <property name="label" translatable="yes">Rebuilding cache means that all data is removed and then
1083folders are indexed again. This fixes broken media cache.</property>1075folders are indexed again. This fixes broken media cache.</property>
1084 </widget>1076 <property name="use_underline">False</property>
1085 <packing>1077 <property name="use_markup">False</property>
1086 <property name="position">0</property>1078 <property name="justify">GTK_JUSTIFY_LEFT</property>
1087 </packing>1079 <property name="wrap">False</property>
1088 </child>1080 <property name="selectable">False</property>
1089 <child>1081 <property name="xalign">0.5</property>
1090 <widget class="GtkButton" id="button_video_rebuild">1082 <property name="yalign">0.5</property>
1091 <property name="label" translatable="yes">Rebuild video cache</property>1083 <property name="xpad">7</property>
1092 <property name="visible">True</property>1084 <property name="ypad">7</property>
1093 <property name="can_focus">True</property>1085 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1094 <property name="receives_default">False</property>1086 <property name="width_chars">-1</property>
1095 <property name="border_width">5</property>1087 <property name="single_line_mode">False</property>
1096 <property name="use_underline">True</property>1088 <property name="angle">0</property>
1097 <signal name="clicked" handler="on_button_video_rebuild_clicked"/>1089 </widget>
1098 </widget>1090 <packing>
1099 <packing>1091 <property name="padding">0</property>
1100 <property name="position">1</property>1092 <property name="expand">True</property>
1101 </packing>1093 <property name="fill">True</property>
1102 </child>1094 </packing>
1103 <child>1095 </child>
1104 <widget class="GtkButton" id="button_music_rebuild">1096
1105 <property name="label" translatable="yes">Rebuild music cache</property>1097 <child>
1106 <property name="visible">True</property>1098 <widget class="GtkButton" id="button_video_rebuild">
1107 <property name="can_focus">True</property>1099 <property name="border_width">5</property>
1108 <property name="receives_default">False</property>1100 <property name="visible">True</property>
1109 <property name="border_width">5</property>1101 <property name="can_focus">True</property>
1110 <property name="use_underline">True</property>1102 <property name="label" translatable="yes">Rebuild video cache</property>
1111 <signal name="clicked" handler="on_button_music_rebuild_clicked"/>1103 <property name="use_underline">True</property>
1112 </widget>1104 <property name="relief">GTK_RELIEF_NORMAL</property>
1113 <packing>1105 <property name="focus_on_click">True</property>
1114 <property name="position">2</property>1106 <signal name="clicked" handler="on_button_video_rebuild_clicked"/>
1115 </packing>1107 </widget>
1116 </child>1108 <packing>
1117 <child>1109 <property name="padding">0</property>
1118 <widget class="GtkButton" id="button_image_rebuild">1110 <property name="expand">True</property>
1119 <property name="label" translatable="yes">Rebuild image cache</property>1111 <property name="fill">True</property>
1120 <property name="visible">True</property>1112 </packing>
1121 <property name="can_focus">True</property>1113 </child>
1122 <property name="receives_default">False</property>1114
1123 <property name="border_width">5</property>1115 <child>
1124 <property name="use_underline">True</property>1116 <widget class="GtkButton" id="button_music_rebuild">
1125 <signal name="clicked" handler="on_button_image_rebuild_clicked"/>1117 <property name="border_width">5</property>
1126 </widget>1118 <property name="visible">True</property>
1127 <packing>1119 <property name="can_focus">True</property>
1128 <property name="position">3</property>1120 <property name="label" translatable="yes">Rebuild music cache</property>
1129 </packing>1121 <property name="use_underline">True</property>
1130 </child>1122 <property name="relief">GTK_RELIEF_NORMAL</property>
1131 <child>1123 <property name="focus_on_click">True</property>
1132 <widget class="GtkButton" id="button_feed_rebuild">1124 <signal name="clicked" handler="on_button_music_rebuild_clicked"/>
1133 <property name="label" translatable="yes">Rebuild RSS-feed cache</property>1125 </widget>
1134 <property name="visible">True</property>1126 <packing>
1135 <property name="can_focus">True</property>1127 <property name="padding">0</property>
1136 <property name="receives_default">False</property>1128 <property name="expand">True</property>
1137 <property name="border_width">5</property>1129 <property name="fill">True</property>
1138 <property name="use_underline">True</property>1130 </packing>
1139 <property name="focus_on_click">False</property>1131 </child>
1140 <signal name="clicked" handler="on_button_feed_rebuild_clicked"/>1132
1141 </widget>1133 <child>
1142 <packing>1134 <widget class="GtkButton" id="button_image_rebuild">
1143 <property name="position">4</property>1135 <property name="border_width">5</property>
1144 </packing>1136 <property name="visible">True</property>
1145 </child>1137 <property name="can_focus">True</property>
1146 </widget>1138 <property name="label" translatable="yes">Rebuild image cache</property>
1147 </child>1139 <property name="use_underline">True</property>
1148 </widget>1140 <property name="relief">GTK_RELIEF_NORMAL</property>
1149 </child>1141 <property name="focus_on_click">True</property>
1150 <child>1142 <signal name="clicked" handler="on_button_image_rebuild_clicked"/>
1151 <widget class="GtkLabel" id="label4">1143 </widget>
1152 <property name="visible">True</property>1144 <packing>
1153 <property name="label" translatable="yes">&lt;b&gt;Media cache management&lt;/b&gt;</property>1145 <property name="padding">0</property>
1154 <property name="use_markup">True</property>1146 <property name="expand">True</property>
1155 </widget>1147 <property name="fill">True</property>
1156 <packing>1148 </packing>
1157 <property name="type">label_item</property>1149 </child>
1158 </packing>1150
1159 </child>1151 <child>
1160 </widget>1152 <widget class="GtkButton" id="button_feed_rebuild">
1161 <packing>1153 <property name="border_width">5</property>
1162 <property name="position">5</property>1154 <property name="visible">True</property>
1163 </packing>1155 <property name="can_focus">True</property>
1164 </child>1156 <property name="label" translatable="yes">Rebuild RSS-feed cache</property>
1165 <child>1157 <property name="use_underline">True</property>
1166 <widget class="GtkLabel" id="label3">1158 <property name="relief">GTK_RELIEF_NORMAL</property>
1167 <property name="visible">True</property>1159 <property name="focus_on_click">False</property>
1168 <property name="label" translatable="yes">Reset</property>1160 <signal name="clicked" handler="on_button_feed_rebuild_clicked"/>
1169 </widget>1161 </widget>
1170 <packing>1162 <packing>
1171 <property name="position">5</property>1163 <property name="padding">0</property>
1172 <property name="tab_fill">False</property>1164 <property name="expand">True</property>
1173 <property name="type">tab</property>1165 <property name="fill">True</property>
1174 </packing>1166 </packing>
1175 </child>1167 </child>
1176 </widget>1168 </widget>
1177 <packing>1169 </child>
1178 <property name="position">1</property>1170 </widget>
1179 </packing>1171 </child>
1180 </child>1172
1181 <child internal-child="action_area">1173 <child>
1182 <widget class="GtkHButtonBox" id="dialog-closebutton-area">1174 <widget class="GtkLabel" id="label4">
1183 <property name="visible">True</property>1175 <property name="visible">True</property>
1184 <property name="layout_style">end</property>1176 <property name="label" translatable="yes">&lt;b&gt;Media cache management&lt;/b&gt;</property>
1185 <child>1177 <property name="use_underline">False</property>
1186 <widget class="GtkButton" id="close_button">1178 <property name="use_markup">True</property>
1187 <property name="label">gtk-close</property>1179 <property name="justify">GTK_JUSTIFY_LEFT</property>
1188 <property name="visible">True</property>1180 <property name="wrap">False</property>
1189 <property name="can_focus">True</property>1181 <property name="selectable">False</property>
1190 <property name="receives_default">False</property>1182 <property name="xalign">0.5</property>
1191 <property name="use_stock">True</property>1183 <property name="yalign">0.5</property>
1192 <signal name="clicked" handler="on_close_button_clicked"/>1184 <property name="xpad">0</property>
1193 </widget>1185 <property name="ypad">0</property>
1194 <packing>1186 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1195 <property name="expand">False</property>1187 <property name="width_chars">-1</property>
1196 <property name="fill">False</property>1188 <property name="single_line_mode">False</property>
1197 <property name="position">0</property>1189 <property name="angle">0</property>
1198 </packing>1190 </widget>
1199 </child>1191 <packing>
1200 </widget>1192 <property name="type">label_item</property>
1201 <packing>1193 </packing>
1202 <property name="expand">False</property>1194 </child>
1203 <property name="pack_type">end</property>1195 </widget>
1204 <property name="position">0</property>1196 <packing>
1205 </packing>1197 <property name="tab_expand">False</property>
1206 </child>1198 <property name="tab_fill">True</property>
1207 </widget>1199 </packing>
1208 </child>1200 </child>
1209 </widget>1201
1210 <widget class="GtkDialog" id="url_dialog">1202 <child>
1211 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>1203 <widget class="GtkLabel" id="label3">
1212 <property name="border_width">5</property>1204 <property name="visible">True</property>
1213 <property name="resizable">False</property>1205 <property name="label" translatable="yes">Reset</property>
1214 <property name="modal">True</property>1206 <property name="use_underline">False</property>
1215 <property name="window_position">center-on-parent</property>1207 <property name="use_markup">False</property>
1216 <property name="destroy_with_parent">True</property>1208 <property name="justify">GTK_JUSTIFY_LEFT</property>
1217 <property name="icon_name">gtk-edit</property>1209 <property name="wrap">False</property>
1218 <property name="type_hint">normal</property>1210 <property name="selectable">False</property>
1219 <property name="skip_taskbar_hint">True</property>1211 <property name="xalign">0.5</property>
1220 <property name="has_separator">False</property>1212 <property name="yalign">0.5</property>
1221 <signal name="delete_event" handler="on_url_dialog_delete_event"/>1213 <property name="xpad">0</property>
1222 <child internal-child="vbox">1214 <property name="ypad">0</property>
1223 <widget class="GtkVBox" id="dialog-vbox2">1215 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1224 <property name="visible">True</property>1216 <property name="width_chars">-1</property>
1225 <property name="spacing">2</property>1217 <property name="single_line_mode">False</property>
1226 <child>1218 <property name="angle">0</property>
1227 <widget class="GtkHBox" id="hbox1">1219 </widget>
1228 <property name="visible">True</property>1220 <packing>
1229 <child>1221 <property name="type">tab</property>
1230 <widget class="GtkLabel" id="label1">1222 </packing>
1231 <property name="visible">True</property>1223 </child>
1232 <property name="label" translatable="yes">URL:</property>1224 </widget>
1233 </widget>1225 <packing>
1234 <packing>1226 <property name="padding">0</property>
1235 <property name="expand">False</property>1227 <property name="expand">True</property>
1236 <property name="padding">5</property>1228 <property name="fill">True</property>
1237 <property name="position">0</property>1229 </packing>
1238 </packing>1230 </child>
1239 </child>1231 </widget>
1240 <child>1232 </child>
1241 <widget class="GtkEntry" id="url_entry">1233</widget>
1242 <property name="visible">True</property>1234
1243 <property name="can_focus">True</property>1235<widget class="GtkDialog" id="url_dialog">
1244 <property name="has_focus">True</property>1236 <property name="border_width">5</property>
1245 <property name="can_default">True</property>1237 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1246 <property name="has_default">True</property>1238 <property name="title" translatable="yes"></property>
1247 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>1239 <property name="type">GTK_WINDOW_TOPLEVEL</property>
1248 </widget>1240 <property name="window_position">GTK_WIN_POS_NONE</property>
1249 <packing>1241 <property name="modal">True</property>
1250 <property name="position">1</property>1242 <property name="resizable">False</property>
1251 </packing>1243 <property name="destroy_with_parent">True</property>
1252 </child>1244 <property name="icon_name">gtk-edit</property>
1253 </widget>1245 <property name="decorated">True</property>
1254 <packing>1246 <property name="skip_taskbar_hint">True</property>
1255 <property name="position">1</property>1247 <property name="skip_pager_hint">False</property>
1256 </packing>1248 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
1257 </child>1249 <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
1258 <child internal-child="action_area">1250 <property name="focus_on_map">True</property>
1259 <widget class="GtkHButtonBox" id="dialog-action_area2">1251 <property name="urgency_hint">False</property>
1260 <property name="visible">True</property>1252 <property name="has_separator">False</property>
1261 <property name="layout_style">end</property>1253 <signal name="delete_event" handler="on_url_dialog_delete_event"/>
1262 <child>1254
1263 <widget class="GtkButton" id="url_dialog_cancel_button">1255 <child internal-child="vbox">
1264 <property name="label">gtk-cancel</property>1256 <widget class="GtkVBox" id="dialog-vbox2">
1265 <property name="visible">True</property>1257 <property name="visible">True</property>
1266 <property name="can_focus">True</property>1258 <property name="homogeneous">False</property>
1267 <property name="receives_default">False</property>1259 <property name="spacing">2</property>
1268 <property name="use_stock">True</property>1260
1269 <signal name="clicked" handler="on_url_dialog_cancel_button_clicked"/>1261 <child internal-child="action_area">
1270 </widget>1262 <widget class="GtkHButtonBox" id="dialog-action_area2">
1271 <packing>1263 <property name="visible">True</property>
1272 <property name="expand">False</property>1264 <property name="layout_style">GTK_BUTTONBOX_END</property>
1273 <property name="fill">False</property>1265
1274 <property name="position">0</property>1266 <child>
1275 </packing>1267 <widget class="GtkButton" id="url_dialog_cancel_button">
1276 </child>1268 <property name="visible">True</property>
1277 <child>1269 <property name="can_focus">True</property>
1278 <widget class="GtkButton" id="url_dialog_ok_button">1270 <property name="label">gtk-cancel</property>
1279 <property name="label">gtk-ok</property>1271 <property name="use_stock">True</property>
1280 <property name="visible">True</property>1272 <property name="relief">GTK_RELIEF_NORMAL</property>
1281 <property name="can_focus">True</property>1273 <property name="focus_on_click">True</property>
1282 <property name="receives_default">False</property>1274 <property name="response_id">0</property>
1283 <property name="use_stock">True</property>1275 <signal name="clicked" handler="on_url_dialog_cancel_button_clicked"/>
1284 <signal name="clicked" handler="on_url_dialog_ok_button_clicked"/>1276 </widget>
1285 </widget>1277 </child>
1286 <packing>1278
1287 <property name="expand">False</property>1279 <child>
1288 <property name="fill">False</property>1280 <widget class="GtkButton" id="url_dialog_ok_button">
1289 <property name="position">1</property>1281 <property name="visible">True</property>
1290 </packing>1282 <property name="can_focus">True</property>
1291 </child>1283 <property name="label">gtk-ok</property>
1292 </widget>1284 <property name="use_stock">True</property>
1293 <packing>1285 <property name="relief">GTK_RELIEF_NORMAL</property>
1294 <property name="expand">False</property>1286 <property name="focus_on_click">True</property>
1295 <property name="pack_type">end</property>1287 <property name="response_id">0</property>
1296 <property name="position">0</property>1288 <signal name="clicked" handler="on_url_dialog_ok_button_clicked"/>
1297 </packing>1289 </widget>
1298 </child>1290 </child>
1299 </widget>1291 </widget>
1300 </child>1292 <packing>
1301 </widget>1293 <property name="padding">0</property>
1302 <widget class="GtkDialog" id="weather_search_dialog">1294 <property name="expand">False</property>
1303 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>1295 <property name="fill">True</property>
1304 <property name="border_width">5</property>1296 <property name="pack_type">GTK_PACK_END</property>
1305 <property name="window_position">center-on-parent</property>1297 </packing>
1306 <property name="type_hint">dialog</property>1298 </child>
1307 <property name="has_separator">False</property>1299
1308 <child internal-child="vbox">1300 <child>
1309 <widget class="GtkVBox" id="vbox20">1301 <widget class="GtkHBox" id="hbox1">
1310 <property name="visible">True</property>1302 <property name="visible">True</property>
1311 <property name="spacing">2</property>1303 <property name="homogeneous">False</property>
1312 <child>1304 <property name="spacing">0</property>
1313 <widget class="GtkVBox" id="vbox21">1305
1314 <property name="visible">True</property>1306 <child>
1315 <child>1307 <widget class="GtkLabel" id="label1">
1316 <widget class="GtkFrame" id="frame6">1308 <property name="visible">True</property>
1317 <property name="visible">True</property>1309 <property name="label" translatable="yes">URL:</property>
1318 <property name="label_xalign">0</property>1310 <property name="use_underline">False</property>
1319 <property name="shadow_type">none</property>1311 <property name="use_markup">False</property>
1320 <child>1312 <property name="justify">GTK_JUSTIFY_LEFT</property>
1321 <widget class="GtkAlignment" id="alignment16">1313 <property name="wrap">False</property>
1322 <property name="visible">True</property>1314 <property name="selectable">False</property>
1323 <property name="top_padding">5</property>1315 <property name="xalign">0.5</property>
1324 <property name="left_padding">12</property>1316 <property name="yalign">0.5</property>
1325 <child>1317 <property name="xpad">0</property>
1326 <widget class="GtkHBox" id="hbox18">1318 <property name="ypad">0</property>
1327 <property name="visible">True</property>1319 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1328 <child>1320 <property name="width_chars">-1</property>
1329 <widget class="GtkLabel" id="label19">1321 <property name="single_line_mode">False</property>
1330 <property name="visible">True</property>1322 <property name="angle">0</property>
1331 <property name="label" translatable="yes">City:</property>1323 </widget>
1332 </widget>1324 <packing>
1333 <packing>1325 <property name="padding">5</property>
1334 <property name="expand">False</property>1326 <property name="expand">False</property>
1335 <property name="position">0</property>1327 <property name="fill">True</property>
1336 </packing>1328 </packing>
1337 </child>1329 </child>
1338 <child>1330
1339 <widget class="GtkEntry" id="location_entry">1331 <child>
1340 <property name="visible">True</property>1332 <widget class="GtkEntry" id="url_entry">
1341 <property name="can_focus">True</property>1333 <property name="visible">True</property>
1342 <property name="has_focus">True</property>1334 <property name="can_default">True</property>
1343 <property name="can_default">True</property>1335 <property name="has_default">True</property>
1344 <property name="has_default">True</property>1336 <property name="can_focus">True</property>
1345 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>1337 <property name="has_focus">True</property>
1346 <signal name="activate" handler="on_location_entry_activate"/>1338 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1347 </widget>1339 <property name="editable">True</property>
1348 <packing>1340 <property name="visibility">True</property>
1349 <property name="padding">5</property>1341 <property name="max_length">0</property>
1350 <property name="position">1</property>1342 <property name="text" translatable="yes"></property>
1351 </packing>1343 <property name="has_frame">True</property>
1352 </child>1344 <property name="invisible_char">●</property>
1353 <child>1345 <property name="activates_default">False</property>
1354 <widget class="GtkButton" id="location_find_button">1346 </widget>
1355 <property name="label">gtk-find</property>1347 <packing>
1356 <property name="visible">True</property>1348 <property name="padding">0</property>
1357 <property name="can_focus">True</property>1349 <property name="expand">True</property>
1358 <property name="receives_default">False</property>1350 <property name="fill">True</property>
1359 <property name="use_stock">True</property>1351 </packing>
1360 <signal name="clicked" handler="on_location_find_button_clicked"/>1352 </child>
1361 </widget>1353 </widget>
1362 <packing>1354 <packing>
1363 <property name="padding">5</property>1355 <property name="padding">0</property>
1364 <property name="position">2</property>1356 <property name="expand">True</property>
1365 </packing>1357 <property name="fill">True</property>
1366 </child>1358 </packing>
1367 </widget>1359 </child>
1368 </child>1360 </widget>
1369 </widget>1361 </child>
1370 </child>1362</widget>
1371 <child>1363
1372 <widget class="GtkLabel" id="label20">1364<widget class="GtkDialog" id="weather_search_dialog">
1373 <property name="visible">True</property>1365 <property name="border_width">5</property>
1374 <property name="label" translatable="yes">&lt;b&gt;Search for location&lt;/b&gt;</property>1366 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1375 <property name="use_markup">True</property>1367 <property name="title" translatable="yes"></property>
1376 </widget>1368 <property name="type">GTK_WINDOW_TOPLEVEL</property>
1377 <packing>1369 <property name="window_position">GTK_WIN_POS_NONE</property>
1378 <property name="type">label_item</property>1370 <property name="modal">False</property>
1379 </packing>1371 <property name="resizable">True</property>
1380 </child>1372 <property name="destroy_with_parent">False</property>
1381 </widget>1373 <property name="decorated">True</property>
1382 <packing>1374 <property name="skip_taskbar_hint">False</property>
1383 <property name="expand">False</property>1375 <property name="skip_pager_hint">False</property>
1384 <property name="padding">5</property>1376 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
1385 <property name="position">0</property>1377 <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
1386 </packing>1378 <property name="focus_on_map">True</property>
1387 </child>1379 <property name="urgency_hint">False</property>
1388 <child>1380 <property name="has_separator">False</property>
1389 <widget class="GtkFrame" id="frame7">1381
1390 <property name="visible">True</property>1382 <child internal-child="vbox">
1391 <property name="label_xalign">0</property>1383 <widget class="GtkVBox" id="vbox20">
1392 <property name="shadow_type">none</property>1384 <property name="visible">True</property>
1393 <child>1385 <property name="homogeneous">False</property>
1394 <widget class="GtkAlignment" id="alignment17">1386 <property name="spacing">2</property>
1395 <property name="visible">True</property>1387
1396 <property name="left_padding">12</property>1388 <child internal-child="action_area">
1397 <child>1389 <widget class="GtkHButtonBox" id="hbuttonbox1">
1398 <widget class="GtkScrolledWindow" id="scrolledwindow7">1390 <property name="visible">True</property>
1399 <property name="visible">True</property>1391 <property name="layout_style">GTK_BUTTONBOX_END</property>
1400 <property name="can_focus">True</property>1392
1401 <property name="border_width">5</property>1393 <child>
1402 <property name="hscrollbar_policy">never</property>1394 <widget class="GtkButton" id="location_button_cancel">
1403 <property name="vscrollbar_policy">automatic</property>1395 <property name="visible">True</property>
1404 <property name="shadow_type">etched-in</property>1396 <property name="can_focus">True</property>
1405 <child>1397 <property name="label">gtk-cancel</property>
1406 <widget class="GtkTreeView" id="location_results_treeview">1398 <property name="use_stock">True</property>
1407 <property name="visible">True</property>1399 <property name="relief">GTK_RELIEF_NORMAL</property>
1408 <property name="can_focus">True</property>1400 <property name="focus_on_click">True</property>
1409 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>1401 <property name="response_id">0</property>
1410 </widget>1402 <signal name="clicked" handler="on_location_cancel_button_clicked"/>
1411 </child>1403 </widget>
1412 </widget>1404 </child>
1413 </child>1405
1414 </widget>1406 <child>
1415 </child>1407 <widget class="GtkButton" id="location_add_button">
1416 <child>1408 <property name="visible">True</property>
1417 <widget class="GtkLabel" id="label21">1409 <property name="can_focus">True</property>
1418 <property name="visible">True</property>1410 <property name="label">gtk-add</property>
1419 <property name="label" translatable="yes">&lt;b&gt;Search result&lt;/b&gt;</property>1411 <property name="use_stock">True</property>
1420 <property name="use_markup">True</property>1412 <property name="relief">GTK_RELIEF_NORMAL</property>
1421 </widget>1413 <property name="focus_on_click">True</property>
1422 <packing>1414 <property name="response_id">0</property>
1423 <property name="type">label_item</property>1415 <signal name="clicked" handler="on_location_add_button_clicked"/>
1424 </packing>1416 </widget>
1425 </child>1417 </child>
1426 </widget>1418 </widget>
1427 <packing>1419 <packing>
1428 <property name="padding">5</property>1420 <property name="padding">0</property>
1429 <property name="position">1</property>1421 <property name="expand">False</property>
1430 </packing>1422 <property name="fill">True</property>
1431 </child>1423 <property name="pack_type">GTK_PACK_END</property>
1432 </widget>1424 </packing>
1433 <packing>1425 </child>
1434 <property name="position">1</property>1426
1435 </packing>1427 <child>
1436 </child>1428 <widget class="GtkVBox" id="vbox21">
1437 <child internal-child="action_area">1429 <property name="visible">True</property>
1438 <widget class="GtkHButtonBox" id="hbuttonbox1">1430 <property name="homogeneous">False</property>
1439 <property name="visible">True</property>1431 <property name="spacing">0</property>
1440 <property name="layout_style">end</property>1432
1441 <child>1433 <child>
1442 <widget class="GtkButton" id="location_button_cancel">1434 <widget class="GtkFrame" id="frame6">
1443 <property name="label">gtk-cancel</property>1435 <property name="visible">True</property>
1444 <property name="visible">True</property>1436 <property name="label_xalign">0</property>
1445 <property name="can_focus">True</property>1437 <property name="label_yalign">0.5</property>
1446 <property name="receives_default">False</property>1438 <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
1447 <property name="use_stock">True</property>1439
1448 <signal name="clicked" handler="on_location_cancel_button_clicked"/>1440 <child>
1449 </widget>1441 <widget class="GtkAlignment" id="alignment16">
1450 <packing>1442 <property name="visible">True</property>
1451 <property name="expand">False</property>1443 <property name="xalign">0.5</property>
1452 <property name="fill">False</property>1444 <property name="yalign">0.5</property>
1453 <property name="position">0</property>1445 <property name="xscale">1</property>
1454 </packing>1446 <property name="yscale">1</property>
1455 </child>1447 <property name="top_padding">5</property>
1456 <child>1448 <property name="bottom_padding">0</property>
1457 <widget class="GtkButton" id="location_add_button">1449 <property name="left_padding">12</property>
1458 <property name="label">gtk-add</property>1450 <property name="right_padding">0</property>
1459 <property name="visible">True</property>1451
1460 <property name="can_focus">True</property>1452 <child>
1461 <property name="receives_default">False</property>1453 <widget class="GtkHBox" id="hbox18">
1462 <property name="use_stock">True</property>1454 <property name="visible">True</property>
1463 <signal name="clicked" handler="on_location_add_button_clicked"/>1455 <property name="homogeneous">False</property>
1464 </widget>1456 <property name="spacing">0</property>
1465 <packing>1457
1466 <property name="expand">False</property>1458 <child>
1467 <property name="fill">False</property>1459 <widget class="GtkLabel" id="label19">
1468 <property name="position">1</property>1460 <property name="visible">True</property>
1469 </packing>1461 <property name="label" translatable="yes">City:</property>
1470 </child>1462 <property name="use_underline">False</property>
1471 </widget>1463 <property name="use_markup">False</property>
1472 <packing>1464 <property name="justify">GTK_JUSTIFY_LEFT</property>
1473 <property name="expand">False</property>1465 <property name="wrap">False</property>
1474 <property name="pack_type">end</property>1466 <property name="selectable">False</property>
1475 <property name="position">0</property>1467 <property name="xalign">0.5</property>
1476 </packing>1468 <property name="yalign">0.5</property>
1477 </child>1469 <property name="xpad">0</property>
1478 </widget>1470 <property name="ypad">0</property>
1479 </child>1471 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1480 </widget>1472 <property name="width_chars">-1</property>
1473 <property name="single_line_mode">False</property>
1474 <property name="angle">0</property>
1475 </widget>
1476 <packing>
1477 <property name="padding">0</property>
1478 <property name="expand">False</property>
1479 <property name="fill">True</property>
1480 </packing>
1481 </child>
1482
1483 <child>
1484 <widget class="GtkEntry" id="location_entry">
1485 <property name="visible">True</property>
1486 <property name="can_default">True</property>
1487 <property name="has_default">True</property>
1488 <property name="can_focus">True</property>
1489 <property name="has_focus">True</property>
1490 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1491 <property name="editable">True</property>
1492 <property name="visibility">True</property>
1493 <property name="max_length">0</property>
1494 <property name="text" translatable="yes"></property>
1495 <property name="has_frame">True</property>
1496 <property name="invisible_char">●</property>
1497 <property name="activates_default">False</property>
1498 <signal name="activate" handler="on_location_entry_activate"/>
1499 </widget>
1500 <packing>
1501 <property name="padding">5</property>
1502 <property name="expand">True</property>
1503 <property name="fill">True</property>
1504 </packing>
1505 </child>
1506
1507 <child>
1508 <widget class="GtkButton" id="location_find_button">
1509 <property name="visible">True</property>
1510 <property name="can_focus">True</property>
1511 <property name="label">gtk-find</property>
1512 <property name="use_stock">True</property>
1513 <property name="relief">GTK_RELIEF_NORMAL</property>
1514 <property name="focus_on_click">True</property>
1515 <signal name="clicked" handler="on_location_find_button_clicked"/>
1516 </widget>
1517 <packing>
1518 <property name="padding">5</property>
1519 <property name="expand">True</property>
1520 <property name="fill">True</property>
1521 </packing>
1522 </child>
1523 </widget>
1524 </child>
1525 </widget>
1526 </child>
1527
1528 <child>
1529 <widget class="GtkLabel" id="label20">
1530 <property name="visible">True</property>
1531 <property name="label" translatable="yes">&lt;b&gt;Search for location&lt;/b&gt;</property>
1532 <property name="use_underline">False</property>
1533 <property name="use_markup">True</property>
1534 <property name="justify">GTK_JUSTIFY_LEFT</property>
1535 <property name="wrap">False</property>
1536 <property name="selectable">False</property>
1537 <property name="xalign">0.5</property>
1538 <property name="yalign">0.5</property>
1539 <property name="xpad">0</property>
1540 <property name="ypad">0</property>
1541 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1542 <property name="width_chars">-1</property>
1543 <property name="single_line_mode">False</property>
1544 <property name="angle">0</property>
1545 </widget>
1546 <packing>
1547 <property name="type">label_item</property>
1548 </packing>
1549 </child>
1550 </widget>
1551 <packing>
1552 <property name="padding">5</property>
1553 <property name="expand">False</property>
1554 <property name="fill">True</property>
1555 </packing>
1556 </child>
1557
1558 <child>
1559 <widget class="GtkFrame" id="frame7">
1560 <property name="visible">True</property>
1561 <property name="label_xalign">0</property>
1562 <property name="label_yalign">0.5</property>
1563 <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
1564
1565 <child>
1566 <widget class="GtkAlignment" id="alignment17">
1567 <property name="visible">True</property>
1568 <property name="xalign">0.5</property>
1569 <property name="yalign">0.5</property>
1570 <property name="xscale">1</property>
1571 <property name="yscale">1</property>
1572 <property name="top_padding">0</property>
1573 <property name="bottom_padding">0</property>
1574 <property name="left_padding">12</property>
1575 <property name="right_padding">0</property>
1576
1577 <child>
1578 <widget class="GtkScrolledWindow" id="scrolledwindow7">
1579 <property name="border_width">5</property>
1580 <property name="visible">True</property>
1581 <property name="can_focus">True</property>
1582 <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
1583 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
1584 <property name="shadow_type">GTK_SHADOW_NONE</property>
1585 <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
1586
1587 <child>
1588 <widget class="GtkTreeView" id="location_results_treeview">
1589 <property name="visible">True</property>
1590 <property name="can_focus">True</property>
1591 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
1592 <property name="headers_visible">True</property>
1593 <property name="rules_hint">False</property>
1594 <property name="reorderable">False</property>
1595 <property name="enable_search">True</property>
1596 <property name="fixed_height_mode">False</property>
1597 <property name="hover_selection">False</property>
1598 <property name="hover_expand">False</property>
1599 </widget>
1600 </child>
1601 </widget>
1602 </child>
1603 </widget>
1604 </child>
1605
1606 <child>
1607 <widget class="GtkLabel" id="label21">
1608 <property name="visible">True</property>
1609 <property name="label" translatable="yes">&lt;b&gt;Search result&lt;/b&gt;</property>
1610 <property name="use_underline">False</property>
1611 <property name="use_markup">True</property>
1612 <property name="justify">GTK_JUSTIFY_LEFT</property>
1613 <property name="wrap">False</property>
1614 <property name="selectable">False</property>
1615 <property name="xalign">0.5</property>
1616 <property name="yalign">0.5</property>
1617 <property name="xpad">0</property>
1618 <property name="ypad">0</property>
1619 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1620 <property name="width_chars">-1</property>
1621 <property name="single_line_mode">False</property>
1622 <property name="angle">0</property>
1623 </widget>
1624 <packing>
1625 <property name="type">label_item</property>
1626 </packing>
1627 </child>
1628 </widget>
1629 <packing>
1630 <property name="padding">5</property>
1631 <property name="expand">True</property>
1632 <property name="fill">True</property>
1633 </packing>
1634 </child>
1635 </widget>
1636 <packing>
1637 <property name="padding">0</property>
1638 <property name="expand">True</property>
1639 <property name="fill">True</property>
1640 </packing>
1641 </child>
1642 </widget>
1643 </child>
1644</widget>
1645
1481</glade-interface>1646</glade-interface>
14821647
=== modified file 'entertainerlib/tests/test_configuration.py'
--- entertainerlib/tests/test_configuration.py 2009-07-02 20:58:37 +0000
+++ entertainerlib/tests/test_configuration.py 2009-08-16 20:02:42 +0000
@@ -65,14 +65,6 @@
65 self.configuration.update_configuration()65 self.configuration.update_configuration()
66 self.assertEqual(self.configuration.get_weather_location(), new_value)66 self.assertEqual(self.configuration.get_weather_location(), new_value)
6767
68 def test_write_preference_value(self):
69 """Test writing a value to the preference configuration file"""
70 new_value = True
71 self.configuration.write_preference_value(
72 "General", "display_icon", new_value)
73 self.configuration.update_configuration()
74 self.assertEqual(self.configuration.tray_icon_enabled(), new_value)
75
76 def testGetThemeName(self):68 def testGetThemeName(self):
77 """Test getting the current theme name"""69 """Test getting the current theme name"""
78 current_name = "Default"70 current_name = "Default"
@@ -85,9 +77,3 @@
85 def testGetSlideshowStep(self):77 def testGetSlideshowStep(self):
86 '''Test getting the slideshow step'''78 '''Test getting the slideshow step'''
87 self.assertEqual(self.configuration.get_slideshow_step(), 5)79 self.assertEqual(self.configuration.get_slideshow_step(), 5)
88
89 def test_hidden_files_folders(self):
90 """Test getting the `display_hidden_files_folders` setting."""
91 self.assertEqual(self.configuration.display_hidden_files_folders(),
92 False)
93
9480
=== modified file 'entertainerlib/tests/test_scrollarea.py'
--- entertainerlib/tests/test_scrollarea.py 2009-08-04 01:09:03 +0000
+++ entertainerlib/tests/test_scrollarea.py 2009-08-16 20:02:42 +0000
@@ -1,9 +1,6 @@
1# Copyright (c) 2009 Entertainer Developers - See COPYING - GPLv21# Copyright (c) 2009 Entertainer Developers - See COPYING - GPLv2
2"""Tests ScrollArea"""2"""Tests ScrollArea"""
33
4import clutter
5
6from entertainerlib.gui.widgets.base import Base
7from entertainerlib.gui.widgets.label import Label4from entertainerlib.gui.widgets.label import Label
8from entertainerlib.gui.widgets.scroll_area import ScrollArea5from entertainerlib.gui.widgets.scroll_area import ScrollArea
9from entertainerlib.tests import EntertainerTest6from entertainerlib.tests import EntertainerTest
107
=== modified file 'entertainerlib/tests/test_transitionfactory.py'
--- entertainerlib/tests/test_transitionfactory.py 2009-05-10 17:36:49 +0000
+++ entertainerlib/tests/test_transitionfactory.py 2009-08-16 20:02:42 +0000
@@ -59,14 +59,14 @@
59 }59 }
60 # Test all possible transitions60 # Test all possible transitions
61 for key in values_to_test.keys():61 for key in values_to_test.keys():
62 self.config.write_preference_value('General', 'transition_effect',62 self.config.write_content_value('General', 'transition_effect',
63 key)63 key)
64 self.config.update_configuration()64 self.config.update_configuration()
65 transition = self.factory.generate_transition()65 transition = self.factory.generate_transition()
66 self.assertTrue(isinstance(transition, values_to_test[key]))66 self.assertTrue(isinstance(transition, values_to_test[key]))
6767
68 # Test the path when the user doesn't have effects68 # Test the path when the user doesn't have effects
69 self.config.write_preference_value('General', 'show_effects', 'False')69 self.config.write_content_value('General', 'show_effects', 'False')
70 self.config.update_configuration()70 self.config.update_configuration()
71 transition = self.factory.generate_transition()71 transition = self.factory.generate_transition()
72 self.assertTrue(isinstance(transition, NoEffect))72 self.assertTrue(isinstance(transition, NoEffect))

Subscribers

People subscribed via source and target branches