Mercurial > libervia-backend
diff frontends/src/primitivus/primitivus @ 542:3eeb6c865e4d
frontends: incoming files transfer management:
- quick app: getWaitingConf is used on profile connexion
- primitivus: askConfirmation is now managed, use new 'dir' style of FileDialog
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 14 Nov 2012 20:37:15 +0100 |
parents | 6c07127ad2ed |
children | 9dd297c513b4 |
line wrap: on
line diff
--- a/frontends/src/primitivus/primitivus Wed Nov 14 20:24:28 2012 +0100 +++ b/frontends/src/primitivus/primitivus Wed Nov 14 20:37:15 2012 +0100 @@ -22,8 +22,10 @@ import urwid from urwid_satext import sat_widgets +from urwid_satext.files_management import FileDialog from sat_frontends.quick_frontend.quick_app import QuickApp from sat_frontends.quick_frontend.quick_chat_list import QuickChatList +from sat_frontends.quick_frontend.quick_utils import getNewPath from sat_frontends.primitivus.profile_manager import ProfileManager from sat_frontends.primitivus.contact_list import ContactList from sat_frontends.primitivus.chat import Chat @@ -35,6 +37,7 @@ import logging from logging import debug, info, error from sat.tools.jid import JID +from os.path import join ### logging configuration FIXME: put this elsewhere ### @@ -394,6 +397,38 @@ #No notification left, we can hide the bar self.main_widget.footer = self.editBar + def askConfirmation(self, confirmation_id, confirmation_type, data, profile): + if not self.check_profile(profile): + return + answer_data={} + + def dir_selected_cb(path): + dest_path = join(path, data['filename']) + answer_data["dest_path"] = getNewPath(dest_path) + self.addProgress(confirmation_id, dest_path) + accept_cb(None) + + def accept_file_transfer_cb(widget): + self.removePopUp() + pop_up_widget = FileDialog(dir_selected_cb, refuse_cb, title=_(u"Where do you want to save the file ?"), style=['dir']) + self.showPopUp(pop_up_widget) + + def accept_cb(widget): + self.removePopUp() + self.bridge.confirmationAnswer(confirmation_id, True, answer_data, profile) + + def refuse_cb(widget): + self.removePopUp() + self.bridge.confirmationAnswer(confirmation_id, False, answer_data, profile) + + if confirmation_type == "FILE_TRANSFER": + pop_up_widget = sat_widgets.ConfirmDialog(_("The contact %(jid)s wants to send you the file %(filename)s\nDo you accept ?") % {'jid':data["from"], 'filename':data["filename"]}, no_cb=refuse_cb, yes_cb=accept_file_transfer_cb) + self.showPopUp(pop_up_widget) + + elif confirmation_type == "YES/NO": + pop_up_widget = sat_widgets.ConfirmDialog(data["message"], no_cb=refuse_cb, yes_cb=accept_cb) + self.showPopUp(pop_up_widget) + def actionResult(self, type, id, data): if not id in self.current_action_ids: debug (_('unknown id, ignoring'))