Functions for Wants list context menu.
This commit is contained in:
@@ -294,6 +294,12 @@ class Application:
|
|||||||
out = {card.multiverse_id: card for card in self.wants[list_name]}
|
out = {card.multiverse_id: card for card in self.wants[list_name]}
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
def delete_wants_list(self, name: str):
|
||||||
|
del self.wants[name]
|
||||||
|
util.log("Deleted Wants List '{}'".format(name), util.LogLevel.Info)
|
||||||
|
self.push_status("Deleted Wants List '{}'".format(name))
|
||||||
|
self.unsaved_changes = True
|
||||||
|
|
||||||
def rename_want_list(self, old, new):
|
def rename_want_list(self, old, new):
|
||||||
self.wants[new] = self.wants[old]
|
self.wants[new] = self.wants[old]
|
||||||
del self.wants[old]
|
del self.wants[old]
|
||||||
@@ -328,6 +334,11 @@ class Application:
|
|||||||
self.push_status(card.name + " removed from library")
|
self.push_status(card.name + " removed from library")
|
||||||
self.unsaved_changes = True
|
self.unsaved_changes = True
|
||||||
|
|
||||||
|
def remove_card_from_want_list(self, card: mtgsdk.Card, list: str):
|
||||||
|
l = self.wants[list]
|
||||||
|
l.remove(card)
|
||||||
|
util.log("Removed '{}' from wants list '{}'".format(card.name, list), util.LogLevel.Info)
|
||||||
|
|
||||||
def get_card_image(self, card, sizex, sizey):
|
def get_card_image(self, card, sizex, sizey):
|
||||||
# Try using file from local cache, or load online
|
# Try using file from local cache, or load online
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -272,8 +272,6 @@ class Handlers:
|
|||||||
if event.button == 3: # right click
|
if event.button == 3: # right click
|
||||||
path = treeview.get_path_at_pos(int(event.x), int(event.y))
|
path = treeview.get_path_at_pos(int(event.x), int(event.y))
|
||||||
if path:
|
if path:
|
||||||
tree_iter = treeview.get_model().get_iter(path[0])
|
|
||||||
tag = treeview.get_model().get_value(tree_iter, 0)
|
|
||||||
self.app.ui.get_object("wants_wantsListPopup").popup(None, None, None, None, 0, event.time)
|
self.app.ui.get_object("wants_wantsListPopup").popup(None, None, None, None, 0, event.time)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -287,17 +285,49 @@ class Handlers:
|
|||||||
self.app.rename_want_list(tag, new_name)
|
self.app.rename_want_list(tag, new_name)
|
||||||
self.app.current_page.emit('show')
|
self.app.current_page.emit('show')
|
||||||
|
|
||||||
def do_delete_wants_list(self, menu_item):
|
def do_delete_wants_list(self, tree):
|
||||||
# TODO
|
(model, pathlist) = tree.get_selection().get_selected_rows()
|
||||||
pass
|
for path in pathlist:
|
||||||
|
tree_iter = model.get_iter(path)
|
||||||
|
name = model.get_value(tree_iter, 0)
|
||||||
|
|
||||||
|
self.app.delete_wants_list(name)
|
||||||
|
self.app.current_page.emit('show')
|
||||||
|
|
||||||
def on_want_cards_add_activated(self, menu_item):
|
def on_want_cards_add_activated(self, menu_item):
|
||||||
# TODO
|
# Get selected cards
|
||||||
pass
|
tree = self.app.ui.get_object("wantsListContainer").get_child()
|
||||||
|
selected = tree.get_selected_cards()
|
||||||
|
|
||||||
|
# Get selected list
|
||||||
|
list_tree = self.app.ui.get_object("wantsListsTree")
|
||||||
|
(model, pathlist) = list_tree.get_selection().get_selected_rows()
|
||||||
|
for path in pathlist:
|
||||||
|
tree_iter = model.get_iter(path)
|
||||||
|
list_name = model.get_value(tree_iter, 0)
|
||||||
|
|
||||||
|
for card in selected.values():
|
||||||
|
self.app.add_card_to_lib(card)
|
||||||
|
self.app.remove_card_from_want_list(card, list_name)
|
||||||
|
|
||||||
|
wants_funct.reload_wants_view(self.app, list_name)
|
||||||
|
|
||||||
def on_want_cards_remove_activated(self, menu_item):
|
def on_want_cards_remove_activated(self, menu_item):
|
||||||
# TODO
|
# Get selected cards
|
||||||
pass
|
tree = self.app.ui.get_object("wantsListContainer").get_child()
|
||||||
|
selected = tree.get_selected_cards()
|
||||||
|
|
||||||
|
# Get selected list
|
||||||
|
list_tree = self.app.ui.get_object("wantsListsTree")
|
||||||
|
(model, pathlist) = list_tree.get_selection().get_selected_rows()
|
||||||
|
for path in pathlist:
|
||||||
|
tree_iter = model.get_iter(path)
|
||||||
|
list_name = model.get_value(tree_iter, 0)
|
||||||
|
|
||||||
|
for card in selected.values():
|
||||||
|
self.app.remove_card_from_want_list(card, list_name)
|
||||||
|
|
||||||
|
wants_funct.reload_wants_view(self.app, list_name)
|
||||||
|
|
||||||
# Handlers for TreeViews etc. which have been not added by Glade
|
# Handlers for TreeViews etc. which have been not added by Glade
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,11 @@ from urllib import request
|
|||||||
|
|
||||||
import gi
|
import gi
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
from gi.repository import GdkPixbuf
|
from gi.repository import GdkPixbuf, GLib
|
||||||
import six.moves.cPickle as pickle
|
import six.moves.cPickle as pickle
|
||||||
from PIL import Image as PImage
|
from PIL import Image as PImage
|
||||||
|
|
||||||
from mtgsdk import Set
|
from mtgsdk import Set
|
||||||
from mtgsdk import Card
|
|
||||||
from mtgsdk import MtgException
|
from mtgsdk import MtgException
|
||||||
|
|
||||||
# Title of the Program Window
|
# Title of the Program Window
|
||||||
@@ -130,6 +129,8 @@ def reload_image_cache(path: str) -> dict:
|
|||||||
cache[imagename] = pixbuf
|
cache[imagename] = pixbuf
|
||||||
except OSError as err:
|
except OSError as err:
|
||||||
log("Error loading image: " + str(err), LogLevel.Error)
|
log("Error loading image: " + str(err), LogLevel.Error)
|
||||||
|
except GLib.GError as err:
|
||||||
|
log("Error loading image: " + str(err), LogLevel.Error)
|
||||||
return cache
|
return cache
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ def reload_wants_view(app: 'application.Application', selected_list: str = None)
|
|||||||
label = app.ui.get_object("wantsTileLabel") # type: Gtk.Label
|
label = app.ui.get_object("wantsTileLabel") # type: Gtk.Label
|
||||||
label.set_markup("<big>" + str(selected_list) + "</big>")
|
label.set_markup("<big>" + str(selected_list) + "</big>")
|
||||||
|
|
||||||
|
|
||||||
def reload_wants_list(app: 'application.Application', preserve=False):
|
def reload_wants_list(app: 'application.Application', preserve=False):
|
||||||
tree = app.ui.get_object("wantsListsTree")
|
tree = app.ui.get_object("wantsListsTree")
|
||||||
(path, column) = tree.get_cursor()
|
(path, column) = tree.get_cursor()
|
||||||
|
|||||||
Reference in New Issue
Block a user