diff --git a/data/interface/wmain.ui b/data/interface/wmain.ui
index dc17c92..a0e634c 100644
--- a/data/interface/wmain.ui
+++ b/data/interface/wmain.ui
@@ -1,5 +1,5 @@
-
+
-
-
-
diff --git a/data/interface/wmenu.ui b/data/interface/wmenu.ui
index 65fd87a..4b53e0f 100644
--- a/data/interface/wmenu.ui
+++ b/data/interface/wmenu.ui
@@ -22,6 +22,17 @@
1
10
+
+ -100
+ 100
+ 1
+ 10
+
+
+ 100
+ 1
+ 10
+
@@ -1168,15 +1331,10 @@
-
- -100
- 100
- 1
- 10
-
-
- 100
- 1
- 10
+
+
+
+
+
diff --git a/src/devedeng/dvd_menu.py b/src/devedeng/dvd_menu.py
index 320040f..a646d91 100644
--- a/src/devedeng/dvd_menu.py
+++ b/src/devedeng/dvd_menu.py
@@ -39,13 +39,13 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
self.add_colorbutton("title_color", (0, 0, 0, 1), self.update_preview)
self.add_colorbutton("title_shadow", (0, 0, 0, 0), self.update_preview)
- self.add_colorbutton("unselected_color",
- (1, 1, 1, 1), self.update_preview)
+ self.add_colorbutton("unselected_color", (1, 1, 1, 1), self.update_preview)
self.add_colorbutton("shadow_color", (0, 0, 0, 0), self.update_preview)
- self.add_colorbutton(
- "selected_color", (0, 1, 1, 1), self.update_preview)
- self.add_colorbutton("background_color",
- (0, 0, 0, 0.75), self.update_preview)
+ self.add_colorbutton("selected_color", (0, 1, 1, 1), self.update_preview)
+ self.add_colorbutton("background_color", (0, 0, 0, 0.75), self.update_preview)
+ self.add_colorbutton("separator_color", (0, 0, 0, 1), self.update_preview)
+ self.add_colorbutton("separator_shadow", (0, 0, 0, 0), self.update_preview)
+ self.add_colorbutton("separator_background", (1, 1, 1, 0.75), self.update_preview)
self.add_text("title_text", None, self.update_preview)
@@ -79,17 +79,13 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
self.audio_rate = 224
def on_help_clicked(self, b):
-
help_file = devedeng.help.help("menu.html")
def get_estimated_size(self):
-
- estimated_size = ((self.video_rate + self.audio_rate)
- * self.sound_length) / 8
+ estimated_size = ((self.video_rate + self.audio_rate) * self.sound_length) / 8
return estimated_size
def update_music(self, b=None):
-
self.store_ui(self.builder)
cv = devedeng.converter.converter.get_converter()
film_analizer = (cv.get_film_analizer())()
@@ -104,25 +100,21 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
self.sound_length = film_analizer.original_length
def update_preview(self, b=None):
-
self.store_ui(self.builder)
self.sf = None # force to repaint the menu
self.wdrawing_area.queue_draw()
def on_default_background_clicked(self, b):
-
self.background_picture = self.default_background
self.update_ui(self.builder)
self.update_preview()
def on_no_sound_clicked(self, b):
-
self.background_music = self.default_sound
self.sound_length = 30
self.update_ui(self.builder)
def show_configuration(self, file_list):
-
self.builder = Gtk.Builder()
self.builder.set_translation_domain(self.config.gettext_domain)
self.file_list = file_list
@@ -177,17 +169,14 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
self.save_ui()
def on_accept_clicked(self, b):
-
self.store_ui(self.builder)
self.wmenu.destroy()
def on_cancel_clicked(self, b):
-
self.restore_ui()
self.wmenu.destroy()
def get_font_params(self, font_name):
-
font_elements = font_name.split(" ")
if (len(font_elements)) < 2:
@@ -257,12 +246,16 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
if text is None:
return
-
if text_type == "title":
fgcolor = self.title_color
bgcolor = self.title_shadow
hard_borders = False
font = self.title_font
+ elif text_type == "menu_separator":
+ fgcolor = self.separator_color
+ bgcolor = self.separator_shadow
+ hard_borders = False
+ font = self.entry_font
elif text_type == "menu_entry":
fgcolor = self.unselected_color
bgcolor = self.shadow_color
@@ -274,8 +267,7 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
hard_borders = True
font = self.entry_font
elif text_type == "menu_entry_activated":
- fgcolor = (1.0 - self.selected_color[0], 1.0 - self.selected_color[
- 1], 1.0 - self.selected_color[2], self.selected_color[3])
+ fgcolor = (1.0 - self.selected_color[0], 1.0 - self.selected_color[1], 1.0 - self.selected_color[2], self.selected_color[3])
bgcolor = None
hard_borders = True
font = self.entry_font
@@ -330,15 +322,17 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
counter = 0
for element in self.file_list:
if element.show_in_menu:
- self.title_list.append((element, counter))
- counter += 1
+ if element.element_type == "file_movie":
+ self.title_list.append((element, counter))
+ counter += 1
+ else:
+ self.title_list.append((element, None))
self.sf = None
self.current_shown_page = 0
self.wcurrent_page = None
def paint_menu(self, paint_background, paint_selected, paint_activated, page_number):
-
coordinates = []
if self.sf is None:
@@ -408,13 +402,13 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
height = (self.cached_menu_size + self.entry_vertical_margin) / 2.0
if (self.play_all_c):
- coordinates.append([xl, y - height, xr, y + height, "play_all"])
+ coordinates.append([xl, y - height, xr, y + height, _("Play_all")])
if self.playall_text == "":
- playalltext = "Play all"
+ playalltext = _("Play all")
else:
playalltext = self.playall_text
if paint_background:
- self.paint_base(xl, xr, y, 0)
+ self.paint_base(xl, xr, y, 0, self.background_color)
self.write_text(playalltext, "menu_entry", xl,
xr, y, self.position_horizontal)
if paint_selected:
@@ -426,25 +420,27 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
y += entry_height
for entry in self.title_list[page_number * entries_per_page:(page_number + 1) * entries_per_page]:
- coordinates.append([xl, y - height, xr, y + height, "entry"])
- text = entry[0].title_name
+ if entry[0].element_type == "file_movie":
+ text = entry[0].title_name
+ is_movie = True
+ coordinates.append([xl, y - height, xr, y + height, "entry"])
+ else:
+ text = entry[0].separator_name
+ is_movie = False
if paint_background:
- self.paint_base(xl, xr, y, 0)
- self.write_text(text, "menu_entry", xl, xr,
- y, self.position_horizontal)
- if paint_selected:
- self.write_text(text, "menu_entry_selected", xl,
- xr, y, self.position_horizontal)
- if paint_activated:
- self.write_text(text, "menu_entry_activated",
- xl, xr, y, self.position_horizontal)
+ self.paint_base(xl, xr, y, 0, self.background_color if is_movie else self.separator_background)
+ self.write_text(text, "menu_entry" if is_movie else "menu_separator", xl, xr, y, self.position_horizontal)
+ if paint_selected and is_movie:
+ self.write_text(text, "menu_entry_selected", xl, xr, y, self.position_horizontal)
+ if paint_activated and is_movie:
+ self.write_text(text, "menu_entry_activated", xl, xr, y, self.position_horizontal)
y += entry_height
if paint_arrows:
if page_number == 0:
coordinates.append([xl, y - height, xr, y + height, "right"])
if paint_background:
- self.paint_base(xl, xr, y, 0)
+ self.paint_base(xl, xr, y, 0, self.background_color)
self.paint_arrow(xl, xr, y, "menu_entry", False)
if paint_selected:
self.paint_arrow(xl, xr, y, "menu_entry_selected", False)
@@ -453,7 +449,7 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
elif page_number == (self.pages - 1):
coordinates.append([xl, y - height, xr, y + height, "left"])
if paint_background:
- self.paint_base(xl, xr, y, 0)
+ self.paint_base(xl, xr, y, 0, self.background_color)
self.paint_arrow(xl, xr, y, "menu_entry", True)
if paint_selected:
self.paint_arrow(xl, xr, y, "menu_entry_selected", True)
@@ -464,8 +460,8 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
coordinates.append([xl, y - height, med, y + height, "left"])
coordinates.append([med, y - height, xr, y + height, "right"])
if paint_background:
- self.paint_base(xl, xr, y, 1)
- self.paint_base(xl, xr, y, 2)
+ self.paint_base(xl, xr, y, 1, self.background_color)
+ self.paint_base(xl, xr, y, 2, self.background_color)
self.paint_arrow(med, xr, y, "menu_entry", False)
self.paint_arrow(xl, med, y, "menu_entry", True)
if paint_selected:
@@ -476,7 +472,7 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
self.paint_arrow(xl, med, y, "menu_entry_activated", True)
return coordinates
- def paint_base(self, xl, xr, y, type_b):
+ def paint_base(self, xl, xr, y, type_b, color):
height = self.cached_menu_size + self.entry_vertical_margin
radius = (height) / 2.0
@@ -489,8 +485,7 @@ class dvd_menu(devedeng.interface_manager.interface_manager):
xl = (xl + xr) / 2.0
xl += radius
- self.cr.set_source_rgba(self.background_color[0], self.background_color[
- 1], self.background_color[2], self.background_color[3])
+ self.cr.set_source_rgba(color[0], color[1], color[2], color[3])
self.cr.move_to(xl, y)
self.cr.line_to(xr, y)
self.cr.curve_to(xr + radius, y, xr + radius,
diff --git a/src/devedeng/dvdauthor_converter.py b/src/devedeng/dvdauthor_converter.py
index a30bf7b..697dd78 100644
--- a/src/devedeng/dvdauthor_converter.py
+++ b/src/devedeng/dvdauthor_converter.py
@@ -56,8 +56,15 @@ class dvdauthor_converter(devedeng.executor.executor):
self.progress_bar[1].set_text(data[0])
return
- def create_dvdauthor_xml(self, movie_folder, file_movies, menu_entries, start_with_menu, play_all_opt, menuWide):
+ def create_dvdauthor_xml(self, movie_folder, file_movies_in, menu_entries, start_with_menu, play_all_opt, menuWide):
+ file_movies = []
+ for element in file_movies_in:
+ if element.element_type != "file_movie":
+ continue
+ file_movies.append(element)
+
+ print(file_movies)
xmlpath = os.path.join(movie_folder, "xml_data")
xml_file_path = os.path.join(xmlpath, "dvdauthor.xml")
datapath = os.path.join(movie_folder, "dvd_tree")
@@ -243,16 +250,14 @@ class dvdauthor_converter(devedeng.executor.executor):
xml_file.write('\t\t\t\t\tg0=1;\n')
xml_file.write('\t\t\t\t\tjump vmgm menu;\n')
else:
- xml_file.write(
- '\t\t\t\t\tg0=' + str(title_list[title_counter]) + ';\n')
+ xml_file.write('\t\t\t\t\tg0={:};\n'.format(str(title_list[title_counter])))
xml_file.write('\t\t\t\t\tjump vmgm menu;\n')
title_counter += 1
button_counter += 1
xml_file.write('\t\t\t\t\n')
if (menu_page["left"] is not None):
- xml_file.write('\t\t\t\t