end
def delete_current_subalbum
+ $modified = true
+ sel = $albums_tv.selection.selected_rows
$xmldir.elements.each { |e|
if e.name == 'image' || e.name == 'video'
e.add_attribute('deleted', 'true')
break
end
end
+ sel[0].up!
end
save_changes('forced')
- populate_subalbums_treeview
+ populate_subalbums_treeview(false)
+ $albums_tv.selection.select_path(sel[0])
+end
+
+def restore_deleted
+ $modified = true
+ save_changes
+ $current_path = nil #- prevent save_changes from being rerun again
+ sel = $albums_tv.selection.selected_rows
+ restore_one = proc { |xmldir|
+ xmldir.elements.each { |e|
+ if e.name == 'dir' && e.attributes['deleted']
+ restore_one.call(e)
+ end
+ e.delete_attribute('deleted')
+ }
+ }
+ restore_one.call($xmldir)
+ populate_subalbums_treeview(false)
+ $albums_tv.selection.select_path(sel[0])
end
def add_thumbnail(autotable, filename, type, thumbnail_img, caption)
examine_dir_elem.call(nil, $xmldoc.elements['//dir'], false)
end
-def populate_subalbums_treeview
+def populate_subalbums_treeview(select_first)
$albums_ts.clear
$autotable.clear
$albums_iters = {}
show_password_protections
$albums_tv.expand_all
- $albums_tv.selection.select_iter($albums_ts.iter_first)
+ if select_first
+ $albums_tv.selection.select_iter($albums_ts.iter_first)
+ end
end
def open_file(filename)
$albums_thumbnail_size =~ /(.*)x(.*)/
$default_albums_thumbnails = { :x => $1.to_i, :y => $2.to_i }
- populate_subalbums_treeview
+ populate_subalbums_treeview(true)
$save.sensitive = $save_as.sensitive = $merge_current.sensitive = $merge_newsubs.sensitive = $merge.sensitive = $generate.sensitive = $view_wa.sensitive = $properties.sensitive = $remove_all_captions.sensitive = true
return nil
menu.append(passprotect = Gtk::ImageMenuItem.new(utf8(_("Password protect"))))
passprotect.image = Gtk::Image.new("#{$FPATH}/images/galeon-secure.png")
passprotect.signal_connect('activate') { ask_password_protect }
+ menu.append(restore = Gtk::ImageMenuItem.new(utf8(_("Restore deleted images/videos/subalbums"))))
+ restore.image = Gtk::Image.new("#{$FPATH}/images/restore.png")
+ restore.signal_connect('activate') { restore_deleted }
menu.append(Gtk::SeparatorMenuItem.new)
menu.append(delete = Gtk::ImageMenuItem.new(Gtk::Stock::DELETE))
delete.signal_connect('activate') {