Functions for Wants list context menu.

This commit is contained in:
luxick
2017-06-28 13:59:36 +02:00
parent a1395d1d75
commit 010e110c2c
4 changed files with 54 additions and 11 deletions

View File

@@ -294,6 +294,12 @@ class Application:
out = {card.multiverse_id: card for card in self.wants[list_name]}
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):
self.wants[new] = self.wants[old]
del self.wants[old]
@@ -328,6 +334,11 @@ class Application:
self.push_status(card.name + " removed from library")
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):
# Try using file from local cache, or load online
try:

View File

@@ -272,8 +272,6 @@ class Handlers:
if event.button == 3: # right click
path = treeview.get_path_at_pos(int(event.x), int(event.y))
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)
return True
@@ -287,17 +285,49 @@ class Handlers:
self.app.rename_want_list(tag, new_name)
self.app.current_page.emit('show')
def do_delete_wants_list(self, menu_item):
# TODO
pass
def do_delete_wants_list(self, tree):
(model, pathlist) = tree.get_selection().get_selected_rows()
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):
# TODO
pass
# Get selected cards
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):
# TODO
pass
# Get selected cards
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

View File

@@ -7,12 +7,11 @@ from urllib import request
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import GdkPixbuf
from gi.repository import GdkPixbuf, GLib
import six.moves.cPickle as pickle
from PIL import Image as PImage
from mtgsdk import Set
from mtgsdk import Card
from mtgsdk import MtgException
# Title of the Program Window
@@ -130,6 +129,8 @@ def reload_image_cache(path: str) -> dict:
cache[imagename] = pixbuf
except OSError as err:
log("Error loading image: " + str(err), LogLevel.Error)
except GLib.GError as err:
log("Error loading image: " + str(err), LogLevel.Error)
return cache

View File

@@ -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.set_markup("<big>" + str(selected_list) + "</big>")
def reload_wants_list(app: 'application.Application', preserve=False):
tree = app.ui.get_object("wantsListsTree")
(path, column) = tree.get_cursor()