|
Mamoru Tasaka |
7dd7dd0 |
--- alexandria-0.6.9/lib/alexandria/models/library.rb.delbroken 2012-10-25 14:39:40.029847934 +0900
|
|
Mamoru Tasaka |
7dd7dd0 |
+++ alexandria-0.6.9/lib/alexandria/models/library.rb 2012-10-24 13:58:38.445172696 +0900
|
|
Mamoru Tasaka |
7dd7dd0 |
@@ -98,7 +98,7 @@
|
|
Mamoru Tasaka |
7dd7dd0 |
md = /([\dxX]{10,13})#{EXT[:book]}/.match(filename)
|
|
Mamoru Tasaka |
7dd7dd0 |
if md
|
|
Mamoru Tasaka |
7dd7dd0 |
file_isbn = md[1]
|
|
Mamoru Tasaka |
7dd7dd0 |
- ruined_books << [nil, file_isbn, library]
|
|
Mamoru Tasaka |
7dd7dd0 |
+ ruined_books << [nil, file_isbn, library, filename, library.path]
|
|
Mamoru Tasaka |
7dd7dd0 |
else
|
|
Mamoru Tasaka |
7dd7dd0 |
log.warn { "Filename #{filename} does not contain an ISBN"}
|
|
Mamoru Tasaka |
7dd7dd0 |
#TODO delete this file...
|
|
Mamoru Tasaka |
7dd7dd0 |
--- alexandria-0.6.9/lib/alexandria/ui/ui_manager.rb.delbroken 2012-10-25 14:39:40.026847577 +0900
|
|
Mamoru Tasaka |
7dd7dd0 |
+++ alexandria-0.6.9/lib/alexandria/ui/ui_manager.rb 2012-10-24 14:03:49.811462773 +0900
|
|
Mamoru Tasaka |
7dd7dd0 |
@@ -805,6 +805,73 @@
|
|
Mamoru Tasaka |
7dd7dd0 |
false
|
|
Mamoru Tasaka |
7dd7dd0 |
end
|
|
Mamoru Tasaka |
7dd7dd0 |
end
|
|
Mamoru Tasaka |
7dd7dd0 |
+ else ## if response_type == Gtk::Dialog::RESPONSE_OK
|
|
Mamoru Tasaka |
7dd7dd0 |
+ handle_and_delete_ruined_books
|
|
Mamoru Tasaka |
7dd7dd0 |
+ end
|
|
Mamoru Tasaka |
7dd7dd0 |
+ end
|
|
Mamoru Tasaka |
7dd7dd0 |
+ end
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ def handle_and_delete_ruined_books
|
|
Mamoru Tasaka |
7dd7dd0 |
+ title = _("Delete Book Data")
|
|
Mamoru Tasaka |
7dd7dd0 |
+ new_message = _("Or do you wish to delete the data files for the following books are malformed or empty?\n")
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ @libraries.ruined_books.each { |bi|
|
|
Mamoru Tasaka |
7dd7dd0 |
+ new_message += "\n#{bi[1] or bi[1].inspect}"
|
|
Mamoru Tasaka |
7dd7dd0 |
+ }
|
|
Mamoru Tasaka |
7dd7dd0 |
+ recovery_dialog = Gtk::MessageDialog.new(@main_app, Gtk::Dialog::MODAL,
|
|
Mamoru Tasaka |
7dd7dd0 |
+ Gtk::MessageDialog::WARNING,
|
|
Mamoru Tasaka |
7dd7dd0 |
+ Gtk::MessageDialog::BUTTONS_OK_CANCEL,
|
|
Mamoru Tasaka |
7dd7dd0 |
+ new_message ).show
|
|
Mamoru Tasaka |
7dd7dd0 |
+ recovery_dialog.signal_connect('response') do |dialog, response_type|
|
|
Mamoru Tasaka |
7dd7dd0 |
+ recovery_dialog.destroy
|
|
Mamoru Tasaka |
7dd7dd0 |
+ if response_type == Gtk::Dialog::RESPONSE_OK
|
|
Mamoru Tasaka |
7dd7dd0 |
+ books_to_add = []
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ # progress indicator...
|
|
Mamoru Tasaka |
7dd7dd0 |
+ @progressbar.fraction = 0
|
|
Mamoru Tasaka |
7dd7dd0 |
+ @appbar.children.first.visible = true # show the progress bar
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ total_book_count = @libraries.ruined_books.size
|
|
Mamoru Tasaka |
7dd7dd0 |
+ fraction_per_book = 1.0 / total_book_count
|
|
Mamoru Tasaka |
7dd7dd0 |
+ prog_percentage = 0
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ @libraries.ruined_books.reverse!
|
|
Mamoru Tasaka |
7dd7dd0 |
+ Gtk.idle_add do
|
|
Mamoru Tasaka |
7dd7dd0 |
+ ruined_book = @libraries.ruined_books.pop
|
|
Mamoru Tasaka |
7dd7dd0 |
+ if ruined_book
|
|
Mamoru Tasaka |
7dd7dd0 |
+ book, isbn, library, filename, path = ruined_book
|
|
Mamoru Tasaka |
7dd7dd0 |
+ filename_path = File.join(path, filename)
|
|
Mamoru Tasaka |
7dd7dd0 |
+ begin
|
|
Mamoru Tasaka |
7dd7dd0 |
+ File.delete(filename_path)
|
|
Mamoru Tasaka |
7dd7dd0 |
+ set_status_label(_("The file '%s' removed") % filename)
|
|
Mamoru Tasaka |
7dd7dd0 |
+ log.debug {"The maybe-malformed file #{filename} removed"}
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ rescue Exception => ex
|
|
Mamoru Tasaka |
7dd7dd0 |
+ log.error { "Could not delete #{filename_path}: #{ex}" }
|
|
Mamoru Tasaka |
7dd7dd0 |
+ log.error { ex.backtrace.join("\n") }
|
|
Mamoru Tasaka |
7dd7dd0 |
+ end
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ prog_percentage += fraction_per_book
|
|
Mamoru Tasaka |
7dd7dd0 |
+ @progressbar.fraction = prog_percentage
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ true
|
|
Mamoru Tasaka |
7dd7dd0 |
+ else
|
|
Mamoru Tasaka |
7dd7dd0 |
+ ## Totally copied and pasted from refresh_books...
|
|
Mamoru Tasaka |
7dd7dd0 |
+ ## call this the second strike... (CathalMagus)
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ # @iconview.unfreeze
|
|
Mamoru Tasaka |
7dd7dd0 |
+ # @filtered_model.refilter
|
|
Mamoru Tasaka |
7dd7dd0 |
+ # @listview.columns_autosize
|
|
Mamoru Tasaka |
7dd7dd0 |
+
|
|
Mamoru Tasaka |
7dd7dd0 |
+ @progressbar.fraction = 1
|
|
Mamoru Tasaka |
7dd7dd0 |
+ ## Hide the progress bar.
|
|
Mamoru Tasaka |
7dd7dd0 |
+ @appbar.children.first.visible = false
|
|
Mamoru Tasaka |
7dd7dd0 |
+ ## Refresh the status bar.
|
|
Mamoru Tasaka |
7dd7dd0 |
+ set_status_label('')
|
|
Mamoru Tasaka |
7dd7dd0 |
+ # on_books_selection_changed
|
|
Mamoru Tasaka |
7dd7dd0 |
+ false
|
|
Mamoru Tasaka |
7dd7dd0 |
+ end
|
|
Mamoru Tasaka |
7dd7dd0 |
+ end
|
|
Mamoru Tasaka |
7dd7dd0 |
end
|
|
Mamoru Tasaka |
7dd7dd0 |
end
|
|
Mamoru Tasaka |
7dd7dd0 |
end
|