diff --git a/cardvault/application.py b/cardvault/application.py index 3ee1e5b..d7575f3 100644 --- a/cardvault/application.py +++ b/cardvault/application.py @@ -182,10 +182,19 @@ class Application: self.push_status("Library saved") def load_library(self): + all_existing = True # Load library file self.library = util.load_file(util.get_root_filename("library")) + if not self.library: + all_existing = False + self.library = {} # Load tags file self.tags = util.load_file(util.get_root_filename("tags")) + if not self.tags: + all_existing = False + self.tags = {} + if not all_existing: + self.save_library() self.push_status("Library loaded") def get_untagged_cards(self): diff --git a/cardvault/handlers.py b/cardvault/handlers.py index d1f7943..3520379 100644 --- a/cardvault/handlers.py +++ b/cardvault/handlers.py @@ -31,7 +31,7 @@ class Handlers: if response == Gtk.ResponseType.OK: # prepare export file file = {"library": self.app.library, "tags": self.app.tags} - util.export_library(dialog.get_filename, file) + util.export_library(dialog.get_filename(), file) dialog.destroy() @@ -54,6 +54,7 @@ class Handlers: self.app.tags = tags # Cause current page to reload with imported data self.app.current_page.emit('show') + self.app.unsaved_changes = True dialog.destroy() def on_view_changed(self, item): diff --git a/cardvault/lib_funct.py b/cardvault/lib_funct.py index 4958aa5..389b00a 100644 --- a/cardvault/lib_funct.py +++ b/cardvault/lib_funct.py @@ -11,7 +11,6 @@ def init_library_view(app): card_list.list.connect("row-activated", app.handlers.on_library_card_selected) container.add(card_list) container.add_overlay(app.ui.get_object("noResults")) - container.add_overlay(app.ui.get_object("libEmpty")) container.show_all() app.ui.get_object("noResults").set_visible(False) @@ -26,7 +25,6 @@ def reload_library(app, tag=None): reload_tag_list(app, tag) card_tree = app.ui.get_object("libraryContainer").get_child() if lib: - app.ui.get_object("libEmpty").set_visible(False) app.ui.get_object("noResults").set_visible(False) card_tree.update(lib) else: diff --git a/cardvault/search_funct.py b/cardvault/search_funct.py index 5605f8f..67d2d9f 100644 --- a/cardvault/search_funct.py +++ b/cardvault/search_funct.py @@ -1,9 +1,12 @@ -import gi -from cardvault import util -from cardvault import cardlist -from gi.repository import Gtk, Gdk -from mtgsdk import Card from urllib.error import URLError, HTTPError + +import gi +from gi.repository import Gtk, Gdk + +from cardvault import cardlist +from cardvault import util +from mtgsdk import Card + gi.require_version('Gtk', '3.0') diff --git a/cardvault/util.py b/cardvault/util.py index 5dae635..6d069ac 100644 --- a/cardvault/util.py +++ b/cardvault/util.py @@ -1,13 +1,15 @@ -import os -import gi -import re -import enum import copy +import enum import json -from gi.repository import GdkPixbuf, Gtk -from PIL import Image as PImage +import os +import re from urllib import request + +import gi import six.moves.cPickle as pickle +from PIL import Image as PImage +from gi.repository import GdkPixbuf + gi.require_version('Gtk', '3.0') from mtgsdk import Set @@ -214,8 +216,6 @@ def import_library(path): def save_file(path, file): - if not os.path.exists(path): - os.makedirs(path) # Serialize using cPickle try: pickle.dump(file, open(path, 'wb')) @@ -227,7 +227,8 @@ def save_file(path, file): def load_file(path): if not os.path.isfile(path): - log(path + " does not exist", LogLevel.Error) + log(path + " does not exist", LogLevel.Warning) + return try: loaded = pickle.load(open(path, 'rb')) except OSError as err: diff --git a/cardvault/mtgsdk/__init__.py b/mtgsdk/__init__.py similarity index 100% rename from cardvault/mtgsdk/__init__.py rename to mtgsdk/__init__.py diff --git a/cardvault/mtgsdk/card.py b/mtgsdk/card.py similarity index 100% rename from cardvault/mtgsdk/card.py rename to mtgsdk/card.py diff --git a/cardvault/mtgsdk/changelog.py b/mtgsdk/changelog.py similarity index 100% rename from cardvault/mtgsdk/changelog.py rename to mtgsdk/changelog.py diff --git a/cardvault/mtgsdk/config.py b/mtgsdk/config.py similarity index 100% rename from cardvault/mtgsdk/config.py rename to mtgsdk/config.py diff --git a/cardvault/mtgsdk/querybuilder.py b/mtgsdk/querybuilder.py similarity index 100% rename from cardvault/mtgsdk/querybuilder.py rename to mtgsdk/querybuilder.py diff --git a/cardvault/mtgsdk/restclient.py b/mtgsdk/restclient.py similarity index 100% rename from cardvault/mtgsdk/restclient.py rename to mtgsdk/restclient.py diff --git a/cardvault/mtgsdk/set.py b/mtgsdk/set.py similarity index 100% rename from cardvault/mtgsdk/set.py rename to mtgsdk/set.py diff --git a/cardvault/mtgsdk/subtype.py b/mtgsdk/subtype.py similarity index 100% rename from cardvault/mtgsdk/subtype.py rename to mtgsdk/subtype.py diff --git a/cardvault/mtgsdk/supertype.py b/mtgsdk/supertype.py similarity index 100% rename from cardvault/mtgsdk/supertype.py rename to mtgsdk/supertype.py diff --git a/cardvault/mtgsdk/type.py b/mtgsdk/type.py similarity index 100% rename from cardvault/mtgsdk/type.py rename to mtgsdk/type.py