From c6e19b4df9e8c1a4216aa09b9c579b43da9684d2 Mon Sep 17 00:00:00 2001
From: Simon Schampijer <simon@laptop.org>
Date: Thu, 21 Feb 2013 16:24:49 +0100
Subject: [PATCH] Filetransfer: fix the incoming/outgoing transfer Palettes
#4315
The Palettes did mix widgets and Menus, that is why we have to
use our custom Palettes to finish the port.
Signed-off-by: Simon Schampijer <simon@laptop.org>
---
src/jarabe/frame/activitiestray.py | 158 +++++++++++++++++++++++--------------
1 file changed, 100 insertions(+), 58 deletions(-)
diff --git a/src/jarabe/frame/activitiestray.py b/src/jarabe/frame/activitiestray.py
index ddf395f..b5b789c 100644
a
|
b
|
from sugar3.graphics.toolbutton import ToolButton |
35 | 35 | from sugar3.graphics.icon import Icon, get_icon_file_name |
36 | 36 | from sugar3.graphics.palette import Palette |
37 | 37 | from sugar3.graphics.menuitem import MenuItem |
| 38 | from sugar3.graphics.palettemenu import PaletteMenuBox |
| 39 | from sugar3.graphics.palettemenu import PaletteMenuItem |
| 40 | from sugar3.graphics.palettemenu import PaletteMenuItemSeparator |
38 | 41 | from sugar3.datastore import datastore |
39 | 42 | from sugar3 import mime |
40 | 43 | from sugar3 import env |
… |
… |
class IncomingTransferPalette(BaseTransferPalette): |
573 | 576 | self._update() |
574 | 577 | |
575 | 578 | def _update(self): |
| 579 | box = PaletteMenuBox() |
| 580 | self.set_content(box) |
| 581 | box.show() |
| 582 | |
576 | 583 | logging.debug('_update state: %r', self.file_transfer.props.state) |
577 | 584 | if self.file_transfer.props.state == filetransfer.FT_STATE_PENDING: |
578 | | menu_item = MenuItem(_('Accept'), icon_name='dialog-ok') |
| 585 | menu_item = PaletteMenuItem(_('Accept')) |
| 586 | icon = Icon(icon_name='dialog-ok', icon_size=Gtk.IconSize.MENU) |
| 587 | menu_item.set_image(icon) |
| 588 | icon.show() |
579 | 589 | menu_item.connect('activate', self.__accept_activate_cb) |
580 | | self.menu.append(menu_item) |
| 590 | box.append_item(menu_item) |
581 | 591 | menu_item.show() |
582 | 592 | |
583 | | menu_item = MenuItem(_('Decline'), icon_name='dialog-cancel') |
| 593 | menu_item = PaletteMenuItem(_('Decline')) |
| 594 | icon = Icon(icon_name='dialog-cancel', icon_size=Gtk.IconSize.MENU) |
| 595 | menu_item.set_image(icon) |
| 596 | icon.show() |
584 | 597 | menu_item.connect('activate', self.__decline_activate_cb) |
585 | | self.menu.append(menu_item) |
| 598 | box.append_item(menu_item) |
586 | 599 | menu_item.show() |
587 | 600 | |
588 | | vbox = Gtk.VBox() |
589 | | self.set_content(vbox) |
590 | | vbox.show() |
| 601 | separator = PaletteMenuItemSeparator() |
| 602 | box.append_item(separator) |
| 603 | separator.show() |
| 604 | |
| 605 | inner_box = Gtk.VBox() |
| 606 | inner_box.set_spacing(style.DEFAULT_PADDING) |
| 607 | box.append_item(inner_box, vertical_padding=0) |
| 608 | inner_box.show() |
591 | 609 | |
592 | 610 | if self.file_transfer.description: |
593 | 611 | label = Gtk.Label(label=self.file_transfer.description) |
594 | | vbox.add(label) |
| 612 | inner_box.add(label) |
595 | 613 | label.show() |
596 | 614 | |
597 | 615 | mime_type = self.file_transfer.mime_type |
… |
… |
class IncomingTransferPalette(BaseTransferPalette): |
599 | 617 | |
600 | 618 | size = self._format_size(self.file_transfer.file_size) |
601 | 619 | label = Gtk.Label(label='%s (%s)' % (size, type_description)) |
602 | | vbox.add(label) |
| 620 | inner_box.add(label) |
603 | 621 | label.show() |
604 | 622 | |
605 | 623 | elif self.file_transfer.props.state in \ |
606 | 624 | [filetransfer.FT_STATE_ACCEPTED, filetransfer.FT_STATE_OPEN]: |
607 | | |
608 | | for item in self.menu.get_children(): |
609 | | self.menu.remove(item) |
610 | | |
611 | | menu_item = MenuItem(_('Cancel'), icon_name='dialog-cancel') |
| 625 | menu_item = PaletteMenuItem(_('Cancel')) |
| 626 | icon = Icon(icon_name='dialog-cancel', icon_size=Gtk.IconSize.MENU) |
| 627 | menu_item.set_image(icon) |
| 628 | icon.show() |
612 | 629 | menu_item.connect('activate', self.__cancel_activate_cb) |
613 | | self.menu.append(menu_item) |
| 630 | box.append_item(menu_item) |
614 | 631 | menu_item.show() |
615 | 632 | |
616 | | vbox = Gtk.VBox() |
617 | | self.set_content(vbox) |
618 | | vbox.show() |
| 633 | separator = PaletteMenuItemSeparator() |
| 634 | box.append_item(separator) |
| 635 | separator.show() |
| 636 | |
| 637 | inner_box = Gtk.VBox() |
| 638 | inner_box.set_spacing(style.DEFAULT_PADDING) |
| 639 | box.append_item(inner_box, vertical_padding=0) |
| 640 | inner_box.show() |
619 | 641 | |
620 | 642 | self.progress_bar = Gtk.ProgressBar() |
621 | | vbox.add(self.progress_bar) |
| 643 | inner_box.add(self.progress_bar) |
622 | 644 | self.progress_bar.show() |
623 | 645 | |
624 | 646 | self.progress_label = Gtk.Label(label='') |
625 | | vbox.add(self.progress_label) |
| 647 | inner_box.add(self.progress_label) |
626 | 648 | self.progress_label.show() |
627 | 649 | |
628 | 650 | self.update_progress() |
629 | 651 | |
630 | 652 | elif self.file_transfer.props.state == filetransfer.FT_STATE_COMPLETED: |
631 | | |
632 | | for item in self.menu.get_children(): |
633 | | self.menu.remove(item) |
634 | | |
635 | | menu_item = MenuItem(_('Dismiss'), icon_name='dialog-cancel') |
| 653 | menu_item = PaletteMenuItem(_('Dismiss')) |
| 654 | icon = Icon(icon_name='dialog-cancel', icon_size=Gtk.IconSize.MENU) |
| 655 | menu_item.set_image(icon) |
| 656 | icon.show() |
636 | 657 | menu_item.connect('activate', self.__dismiss_activate_cb) |
637 | | self.menu.append(menu_item) |
| 658 | box.append_item(menu_item) |
638 | 659 | menu_item.show() |
639 | 660 | |
640 | 661 | self.update_progress() |
641 | | elif self.file_transfer.props.state == filetransfer.FT_STATE_CANCELLED: |
642 | | |
643 | | for item in self.menu.get_children(): |
644 | | self.menu.remove(item) |
645 | 662 | |
| 663 | elif self.file_transfer.props.state == filetransfer.FT_STATE_CANCELLED: |
646 | 664 | if self.file_transfer.reason_last_change == \ |
647 | 665 | filetransfer.FT_REASON_REMOTE_STOPPED: |
648 | | menu_item = MenuItem(_('Dismiss'), icon_name='dialog-cancel') |
| 666 | menu_item = PaletteMenuItem(_('Dismiss')) |
| 667 | icon = Icon(icon_name='dialog-cancel', |
| 668 | icon_size=Gtk.IconSize.MENU) |
| 669 | menu_item.set_image(icon) |
| 670 | icon.show() |
649 | 671 | menu_item.connect('activate', self.__dismiss_activate_cb) |
650 | | self.menu.append(menu_item) |
| 672 | box.append_item(menu_item) |
651 | 673 | menu_item.show() |
| 674 | |
| 675 | inner_box = Gtk.VBox() |
| 676 | inner_box.set_spacing(style.DEFAULT_PADDING) |
| 677 | box.append_item(inner_box, vertical_padding=0) |
| 678 | inner_box.show() |
| 679 | |
652 | 680 | text = _('The other participant canceled the file transfer') |
653 | 681 | label = Gtk.Label(label=text) |
654 | | self.set_content(label) |
| 682 | inner_box.add(label) |
655 | 683 | label.show() |
656 | 684 | |
657 | 685 | def __accept_activate_cb(self, menu_item): |
… |
… |
class OutgoingTransferPalette(BaseTransferPalette): |
708 | 736 | def _update(self): |
709 | 737 | new_state = self.file_transfer.props.state |
710 | 738 | logging.debug('_update state: %r', new_state) |
711 | | if new_state == filetransfer.FT_STATE_PENDING: |
712 | 739 | |
713 | | menu_item = MenuItem(_('Cancel'), icon_name='dialog-cancel') |
| 740 | box = PaletteMenuBox() |
| 741 | self.set_content(box) |
| 742 | box.show() |
| 743 | if new_state == filetransfer.FT_STATE_PENDING: |
| 744 | menu_item = PaletteMenuItem(_('Cancel')) |
| 745 | icon = Icon(icon_name='dialog-cancel', icon_size=Gtk.IconSize.MENU) |
| 746 | menu_item.set_image(icon) |
| 747 | icon.show() |
714 | 748 | menu_item.connect('activate', self.__cancel_activate_cb) |
715 | | self.menu.append(menu_item) |
| 749 | box.append_item(menu_item) |
716 | 750 | menu_item.show() |
717 | 751 | |
718 | | vbox = Gtk.VBox() |
719 | | self.set_content(vbox) |
720 | | vbox.show() |
| 752 | separator = PaletteMenuItemSeparator() |
| 753 | box.append_item(separator) |
| 754 | separator.show() |
| 755 | |
| 756 | inner_box = Gtk.VBox() |
| 757 | inner_box.set_spacing(style.DEFAULT_PADDING) |
| 758 | box.append_item(inner_box, vertical_padding=0) |
| 759 | inner_box.show() |
721 | 760 | |
722 | 761 | if self.file_transfer.description: |
723 | 762 | label = Gtk.Label(label=self.file_transfer.description) |
724 | | vbox.add(label) |
| 763 | inner_box.add(label) |
725 | 764 | label.show() |
726 | 765 | |
727 | 766 | mime_type = self.file_transfer.mime_type |
… |
… |
class OutgoingTransferPalette(BaseTransferPalette): |
729 | 768 | |
730 | 769 | size = self._format_size(self.file_transfer.file_size) |
731 | 770 | label = Gtk.Label(label='%s (%s)' % (size, type_description)) |
732 | | vbox.add(label) |
| 771 | inner_box.add(label) |
733 | 772 | label.show() |
734 | 773 | |
735 | 774 | elif new_state in [filetransfer.FT_STATE_ACCEPTED, |
736 | 775 | filetransfer.FT_STATE_OPEN]: |
737 | | |
738 | | for item in self.menu.get_children(): |
739 | | self.menu.remove(item) |
740 | | |
741 | | menu_item = MenuItem(_('Cancel'), icon_name='dialog-cancel') |
| 776 | menu_item = PaletteMenuItem(_('Cancel')) |
| 777 | icon = Icon(icon_name='dialog-cancel', icon_size=Gtk.IconSize.MENU) |
| 778 | menu_item.set_image(icon) |
| 779 | icon.show() |
742 | 780 | menu_item.connect('activate', self.__cancel_activate_cb) |
743 | | self.menu.append(menu_item) |
| 781 | box.append_item(menu_item) |
744 | 782 | menu_item.show() |
745 | 783 | |
746 | | vbox = Gtk.VBox() |
747 | | self.set_content(vbox) |
748 | | vbox.show() |
| 784 | separator = PaletteMenuItemSeparator() |
| 785 | box.append_item(separator) |
| 786 | separator.show() |
| 787 | |
| 788 | inner_box = Gtk.VBox() |
| 789 | inner_box.set_spacing(style.DEFAULT_PADDING) |
| 790 | box.append_item(inner_box, vertical_padding=0) |
| 791 | inner_box.show() |
749 | 792 | |
750 | 793 | self.progress_bar = Gtk.ProgressBar() |
751 | | vbox.add(self.progress_bar) |
| 794 | inner_box.add(self.progress_bar) |
752 | 795 | self.progress_bar.show() |
753 | 796 | |
754 | 797 | self.progress_label = Gtk.Label(label='') |
755 | | vbox.add(self.progress_label) |
| 798 | inner_box.add(self.progress_label) |
756 | 799 | self.progress_label.show() |
757 | 800 | |
758 | 801 | self.update_progress() |
759 | 802 | |
760 | 803 | elif new_state in [filetransfer.FT_STATE_COMPLETED, |
761 | 804 | filetransfer.FT_STATE_CANCELLED]: |
762 | | |
763 | | for item in self.menu.get_children(): |
764 | | self.menu.remove(item) |
765 | | |
766 | | menu_item = MenuItem(_('Dismiss'), icon_name='dialog-cancel') |
| 805 | menu_item = PaletteMenuItem(_('Dismiss')) |
| 806 | icon = Icon(icon_name='dialog-cancel', icon_size=Gtk.IconSize.MENU) |
| 807 | menu_item.set_image(icon) |
| 808 | icon.show() |
767 | 809 | menu_item.connect('activate', self.__dismiss_activate_cb) |
768 | | self.menu.append(menu_item) |
| 810 | box.append_item(menu_item) |
769 | 811 | menu_item.show() |
770 | 812 | |
771 | 813 | self.update_progress() |