Add menu entries to delete local data.

This commit is contained in:
luxick
2017-08-01 20:22:39 +02:00
parent 68f927c2f1
commit e5e99bba7c
3 changed files with 72 additions and 63 deletions

View File

@@ -387,6 +387,12 @@ class Application:
self.set_online(True) self.set_online(True)
util.log("Done", util.LogLevel.Info) util.log("Done", util.LogLevel.Info)
def db_delete_user_data(self):
"""Delete all user data"""
util.log("Clearing all user data", util.LogLevel.Info)
self.db.db_clear_data_user()
util.log("Done", util.LogLevel.Info)
def get_all_sets(self) -> dict: def get_all_sets(self) -> dict:
if not self.is_online(): if not self.is_online():
l = self.db.set_get_all() l = self.db.set_get_all()

View File

@@ -26,7 +26,7 @@
<object class="GtkMenuItem" id="Main"> <object class="GtkMenuItem" id="Main">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="label" translatable="yes">_Main</property> <property name="label" translatable="yes">_Data</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<child type="submenu"> <child type="submenu">
<object class="GtkMenu" id="mainMenu"> <object class="GtkMenu" id="mainMenu">
@@ -38,6 +38,7 @@
<property name="label">gtk-save</property> <property name="label">gtk-save</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Save library to disk</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<signal name="activate" handler="do_save_library" swapped="no"/> <signal name="activate" handler="do_save_library" swapped="no"/>
@@ -54,7 +55,7 @@
<object class="GtkMenuItem" id="exportLibrary"> <object class="GtkMenuItem" id="exportLibrary">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="label" translatable="yes">Export Library</property> <property name="label" translatable="yes">Export Library Data</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<signal name="activate" handler="do_export_library" swapped="no"/> <signal name="activate" handler="do_export_library" swapped="no"/>
</object> </object>
@@ -63,7 +64,7 @@
<object class="GtkMenuItem" id="importLibrary"> <object class="GtkMenuItem" id="importLibrary">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="label" translatable="yes">Import Library</property> <property name="label" translatable="yes">Import Library Data</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<signal name="activate" handler="do_import_library" swapped="no"/> <signal name="activate" handler="do_import_library" swapped="no"/>
</object> </object>
@@ -78,11 +79,44 @@
<object class="GtkMenuItem" id="main_load_data"> <object class="GtkMenuItem" id="main_load_data">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Download card data to hard drive</property>
<property name="label" translatable="yes">Download Card Data</property> <property name="label" translatable="yes">Download Card Data</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<signal name="activate" handler="do_download_card_data" swapped="no"/> <signal name="activate" handler="do_download_card_data" swapped="no"/>
</object> </object>
</child> </child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Clear Data</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuItem" id="main_clr_usr_data">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Clear User Data</property>
<property name="use_underline">True</property>
<signal name="activate" handler="do_card_data_user" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="main_clr_crd_data">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Clear Card Data</property>
<property name="use_underline">True</property>
<signal name="activate" handler="do_card_data_card" swapped="no"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child> <child>
<object class="GtkSeparatorMenuItem"> <object class="GtkSeparatorMenuItem">
<property name="visible">True</property> <property name="visible">True</property>
@@ -171,52 +205,6 @@
</child> </child>
</object> </object>
</child> </child>
<child>
<object class="GtkMenuItem" id="debug">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">DEBUG</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Clear DB Data</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuItem" id="del_data">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Clear Library Data</property>
<property name="use_underline">True</property>
<signal name="activate" handler="do_clear_data" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="del_cards">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Clear Card Data</property>
<property name="use_underline">True</property>
<signal name="activate" handler="do_clear_card_data" swapped="no"/>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>

View File

@@ -75,6 +75,29 @@ class Handlers(SearchHandlers, LibraryHandlers, WantsHandlers):
self.app.current_page.emit('show') self.app.current_page.emit('show')
dialog.destroy() dialog.destroy()
def do_card_data_user(self, menu_item):
"""
Handler for Clear User Data menu item.
"""
response = self.app.show_dialog_yn("Deleting All User Data", "You are about to delete all data in the "
"library.\nThis can not be undone.\nProceed?")
if response == Gtk.ResponseType.YES:
util.log("Deleting all local card data", util.LogLevel.Info)
self.app.db_delete_user_data()
util.log("Done", util.LogLevel.Info)
self.app.push_status("Library deleted")
def do_card_data_card(self, item):
"""Handler for Clear Card Data menu item"""
response = self.app.show_dialog_yn("Deleting All Card Data", "You are about to delete all local card data.\n"
"Further searches will use the internet to search "
"for cards.\nProceed?")
if response == Gtk.ResponseType.YES:
util.log("Deleting all library data", util.LogLevel.Info)
self.app.db_delete_card_data()
util.log("Done", util.LogLevel.Info)
self.app.push_status("Local card data deleted. Switching to online mode.")
def on_view_changed(self, item): def on_view_changed(self, item):
if item.get_active(): if item.get_active():
container = self.app.ui.get_object("contentPage") container = self.app.ui.get_object("contentPage")
@@ -158,6 +181,11 @@ class Handlers(SearchHandlers, LibraryHandlers, WantsHandlers):
# Download from mtgjson.com # Download from mtgjson.com
GObject.idle_add(self.load_show_insert_ui, "Downloading...") GObject.idle_add(self.load_show_insert_ui, "Downloading...")
# Waiting in case a canceled thread is still running.
while self.cancel_token:
continue
util.log("Starting download", util.LogLevel.Info) util.log("Starting download", util.LogLevel.Info)
s = time.time() s = time.time()
all_json = util.net_all_cards_mtgjson() all_json = util.net_all_cards_mtgjson()
@@ -173,7 +201,7 @@ class Handlers(SearchHandlers, LibraryHandlers, WantsHandlers):
GObject.idle_add(self.load_show_insert_ui, "Saving data to disk...") GObject.idle_add(self.load_show_insert_ui, "Saving data to disk...")
util.log("Saving to sqlite", util.LogLevel.Info) util.log("Saving to sqlite", util.LogLevel.Info)
s = time.time() s = time.time()
self.app.db.db_insert_data_card(all_json) GObject.idle_add(self.app.db.db_insert_data_card, all_json)
e = time.time() e = time.time()
util.log("Finished in {}s".format(round(e - s, 3)), util.LogLevel.Info) util.log("Finished in {}s".format(round(e - s, 3)), util.LogLevel.Info)
@@ -231,16 +259,3 @@ class Handlers(SearchHandlers, LibraryHandlers, WantsHandlers):
self.app.ui.get_object("dl_spinner").set_visible(True) self.app.ui.get_object("dl_spinner").set_visible(True)
self.app.ui.get_object("dl_progress_bar").set_visible(False) self.app.ui.get_object("dl_progress_bar").set_visible(False)
self.app.ui.get_object("dl_progress_label").set_visible(False) self.app.ui.get_object("dl_progress_label").set_visible(False)
# ---------------------- Debug actions -------------------------------
def do_clear_card_data(self, menu_item):
util.log("Deleting all local card data", util.LogLevel.Info)
self.app.db.db_clear_data_card()
self.app.set_online(True)
util.log("Done", util.LogLevel.Info)
def do_clear_data(self, item):
util.log("Deleting all library data", util.LogLevel.Info)
self.app.db.db_clear_data_user()
util.log("Done", util.LogLevel.Info)