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]} 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:

View File

@@ -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

View File

@@ -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

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 = 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()