Example #1
0
    def __init__(self):
        gtk.HBox.__init__(self)
        self.traffic_manager = tgcm.core.TrafficManager.TrafficManager()

        self.widget_dir = os.path.join(tgcm.widgets_dir , 'traffic', self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'SessionInfo.ui'), \
                prefix='si')

        self.traffic_widget = TrafficGraph()
        self.traffic_widget_area.add(self.traffic_widget)
        self.traffic_widget.show()
        self.add(self.main_widget)
        self.main_widget.show_all()

        self.main_widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white"))
        self.data_transfered_label.set_markup("<small><b>--</b></small>")

        self.max_speed = 0

        #Signals
        self.traffic_manager.connect("update-session-time", self.__update_session_time_cb)
        self.traffic_manager.connect("update-session-data-transfered" , self.__update_session_data_transfered_cb)
        self.traffic_manager.connect("reset-session-data-transfered"  , self.__reset_session_data_transfered_cb)
        # -- The received speed must be in kilo bytes per second
        self.traffic_manager.connect("update-session-max-speed" , self.__update_session_max_speed_cb)
        self.traffic_manager.connect("reset-session-max-speed"  , self.__reset_session_max_speed_cb)
    def __init__(self):
        self._connection_manager = tgcm.core.Connections.ConnectionManager()
        self._connection_settings_manager = tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager()
        self._conf = tgcm.core.Config.Config ()
        self._conn_logger = tgcm.core.ConnectionLogger.ConnectionLogger()
        self._messaging_manager = tgcm.core.Messaging.MessagingManager()
        self._action_manager = tgcm.core.Actions.ActionManager()
        self.security_manager = tgcm.ui.MSD.MSDSecurityManager()
        self.mcontroller = tgcm.core.FreeDesktop.DeviceManager()

        self.abort_now_flag = None
        self.cardmanager = None
        self.actual_connection = None

        self.waiting_connection = None
        self.starting_connection = None
        self.connection_successful = None
        self.url = None
        self.action = None
        self.bookmark_info = None
        self.smart_connector = False

        self.reconnect_on_disconnect = False
        self.is_in_first_reconnection_with_smart_connector=False

        #Ask pass dialog
        gtk_builder_magic(self, \
                filename=os.path.join(tgcm.msd_dir, 'MSDConnectionsManager_dialog.ui'),
                prefix='ask')

        self.pass_entry.connect("changed", self.__ask_pass_entry_cb, None)

        self.connect_to_bus()
Example #3
0
    def __init__(self):
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.device_dialer = tgcm.core.FreeDesktop.DeviceDialer()
        self.__main_modem = tgcm.core.MainModem.MainModem()
        self.__state = self.STATE_IDLE
        self.__error_dlg = None

        self.windows_dir = os.path.join(tgcm.windows_dir, "PukDialog")

        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'PukDialog.ui'), \
                prefix='pd')

        # -- Set the main window as parent of this dialog
        main_window = tgcm.ui.ThemedDock().get_main_window()
        self.dialog.set_transient_for(main_window)

        self.ok_button.set_sensitive(False)

        # -- Set the tooltips for the entries
        self.puk_entry.set_tooltip_text(_("PUK number has length of 8 digits"))
        self.new_pin_entry.set_tooltip_text(
            _("PIN number has length between 4 and 8 digits"))
        self.new_pin_confirm_entry.set_tooltip_text(
            _("PIN number has length between 4 and 8 digits"))

        # -- Connect to the gobject signals
        self.new_pin_entry.connect("changed", self.entries_changed_cb, None)
        self.new_pin_confirm_entry.connect("changed", self.entries_changed_cb,
                                           None)
        self.puk_entry.connect("changed", self.entries_changed_cb, None)
        self.__main_modem.connect('main-modem-removed',
                                  self.__main_modem_changed_cb)
        self.__main_modem.connect('main-modem-changed',
                                  self.__main_modem_changed_cb)
Example #4
0
    def __init__(self,
                 title=None,
                 parent=None,
                 flags=0,
                 buttons=None,
                 show_preferences_button=True,
                 show_help_button=True):
        gtk.Dialog.__init__(self, title, parent, flags, buttons)
        self.set_has_separator(False)

        self.windows_dir = os.path.join(tgcm.windows_dir, "Traffic")
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'BillingDayChangeDialog.ui'), \
                prefix='bd')

        self.get_children()[0].add(self.main_widget)

        self._days = range(1, 32)
        if tgcm.country_support == 'es':
            self._days = (1, 10, 18, 24)

        model = gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING)
        for i in self._days:
            model.append([i, get_month_day(i)])
        self.billing_day_combobox.set_model(model)
Example #5
0
    def __init__(self):
        gtk.HBox.__init__(self)
        self.traffic_manager = tgcm.core.TrafficManager.TrafficManager()

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'traffic',
                                       self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'SessionInfo.ui'), \
                prefix='si')

        self.traffic_widget = TrafficGraph()
        self.traffic_widget_area.add(self.traffic_widget)
        self.traffic_widget.show()
        self.add(self.main_widget)
        self.main_widget.show_all()

        self.main_widget.modify_bg(gtk.STATE_NORMAL,
                                   gtk.gdk.color_parse("white"))
        self.data_transfered_label.set_markup("<small><b>--</b></small>")

        self.max_speed = 0

        #Signals
        self.traffic_manager.connect("update-session-time",
                                     self.__update_session_time_cb)
        self.traffic_manager.connect("update-session-data-transfered",
                                     self.__update_session_data_transfered_cb)
        self.traffic_manager.connect("reset-session-data-transfered",
                                     self.__reset_session_data_transfered_cb)
        # -- The received speed must be in kilo bytes per second
        self.traffic_manager.connect("update-session-max-speed",
                                     self.__update_session_max_speed_cb)
        self.traffic_manager.connect("reset-session-max-speed",
                                     self.__reset_session_max_speed_cb)
Example #6
0
    def __init__(self, parent, proxy_data):

        gtk.Dialog.__init__(self, _('Proxy settings'), parent, \
                gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, \
                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, \
                 gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT))

        self.set_border_width(6)

        self.windows_dir = os.path.join(tgcm.windows_dir, 'ConnectionDialog')
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'ConnectionDialog_proxy.ui'), \
                prefix='conn')

        self.proxy_editor_vbox.show()
        self.vbox.pack_start(self.proxy_editor_vbox)

        # Load proxy values
        self._load_proxy_data(proxy_data)
        self._enable_proxy_widgets()

        ### Signals

        # Avoid dialog to close events
        self.connect('response', self._on_dialog_response)
        self.connect('close', self._on_dialog_close)
        self.connect('delete_event', self._on_dialog_close)

        # Widget events
        self.proxy_same_proxy_checkbutton.connect('toggled', self._on_same_proxy_toggled)
Example #7
0
    def __init__(self, parent=None):
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.device_dialer = tgcm.core.FreeDesktop.DeviceDialer()
        self.theme_manager = tgcm.ui.ThemedDock()

        self.windows_dir = os.path.join(tgcm.windows_dir, "PinDialog")
        gtk_builder_magic(self, filename=os.path.join(self.windows_dir, "AskPinDialog.ui"), prefix="apd")

        self.ok_button.set_sensitive(False)

        # -- Set as parent the main window
        self._parent = parent if parent is not None else self.theme_manager.get_main_window()
        self.dialog.set_transient_for(self._parent)

        self.device_manager.connect("device-removed", self.__device_removed_cb)
        self.pin_entry.connect("changed", self.pin_entry_changed_cb, None)

        self.cancelledBySystem = False
        self.__running = False
        self.__odev = None
        self.__error_dlg = None

        system_bus = dbus.SystemBus()
        system_bus.add_signal_receiver(
            self.deviceUnlocked, "DeviceUnlocked", "org.freedesktop.ModemManager.Modem.Gsm.Card"
        )
Example #8
0
    def __init__(self, banner, name, buttons=None):
        gtk.Window.__init__(self)

        self.conf = tgcm.core.Config.Config()
        self._theme_manager = tgcm.core.Theme.ThemeManager()

        self.windows_dir = os.path.join(tgcm.windows_dir, 'Generic')
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'Windows.ui'), \
                prefix='d')

        self.standard_banner_area.hide()

        # -- Replace the main parent
        super(gtk.Window, self).add(self.main_widget)

        # -- Dont skip the taskbar and set destroy with parent
        self.set_skip_taskbar_hint(False)
        self.set_destroy_with_parent(True)

        title = "%s - %s" % (self.conf.get_caption(), name)
        self.set_title(title)

        # -- Create the window banner
        xml_theme = tgcm.core.XMLTheme.XMLTheme()
        layout = xml_theme.get_layout(banner)
        if layout is not None:
            banner = tgcm.ui.widgets.themedwidgets.ThemedBanner(layout)
            self.themed_banner_area.pack_end(banner)

        # Connect some signals
        self.preferences_button.connect('clicked', self.on_preferences_button_clicked)
        self.help_button.connect('clicked', self.on_help_button_clicked)
Example #9
0
    def __init__(self, parent=None):
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.device_dialer = tgcm.core.FreeDesktop.DeviceDialer()
        self.theme_manager = tgcm.ui.ThemedDock()

        self.windows_dir = os.path.join(tgcm.windows_dir , 'PinDialog')
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'AskPinDialog.ui'), \
                prefix='apd')

        self.ok_button.set_sensitive(False)

        # -- Set as parent the main window
        self._parent = parent if parent is not None else self.theme_manager.get_main_window()
        self.dialog.set_transient_for(self._parent)

        self.device_manager.connect("device-removed", self.__device_removed_cb)
        self.pin_entry.connect("changed", self.pin_entry_changed_cb, None)

        self.cancelledBySystem = False
        self.__running         = False
        self.__odev            = None
        self.__error_dlg       = None

        system_bus = dbus.SystemBus()
        system_bus.add_signal_receiver(self.deviceUnlocked,"DeviceUnlocked","org.freedesktop.ModemManager.Modem.Gsm.Card")
Example #10
0
    def __init__(self, banner, name, buttons=None):
        gtk.Window.__init__(self)

        self.conf = tgcm.core.Config.Config()
        self._theme_manager = tgcm.core.Theme.ThemeManager()

        self.windows_dir = os.path.join(tgcm.windows_dir, 'Generic')
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'Windows.ui'), \
                prefix='d')

        self.standard_banner_area.hide()

        # -- Replace the main parent
        super(gtk.Window, self).add(self.main_widget)

        # -- Dont skip the taskbar and set destroy with parent
        self.set_skip_taskbar_hint(False)
        self.set_destroy_with_parent(True)

        title = "%s - %s" % (self.conf.get_caption(), name)
        self.set_title(title)

        # -- Create the window banner
        xml_theme = tgcm.core.XMLTheme.XMLTheme()
        layout = xml_theme.get_layout(banner)
        if layout is not None:
            banner = tgcm.ui.widgets.themedwidgets.ThemedBanner(layout)
            self.themed_banner_area.pack_end(banner)

        # Connect some signals
        self.preferences_button.connect('clicked',
                                        self.on_preferences_button_clicked)
        self.help_button.connect('clicked', self.on_help_button_clicked)
Example #11
0
    def __init__(self, parent, proxy_data):

        gtk.Dialog.__init__(
            self,
            _("Proxy settings"),
            parent,
            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
            (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT),
        )

        self.set_border_width(6)

        self.windows_dir = os.path.join(tgcm.windows_dir, "ConnectionDialog")
        gtk_builder_magic(self, filename=os.path.join(self.windows_dir, "ConnectionDialog_proxy.ui"), prefix="conn")

        self.proxy_editor_vbox.show()
        self.vbox.pack_start(self.proxy_editor_vbox)

        # Load proxy values
        self._load_proxy_data(proxy_data)
        self._enable_proxy_widgets()

        ### Signals

        # Avoid dialog to close events
        self.connect("response", self._on_dialog_response)
        self.connect("close", self._on_dialog_close)
        self.connect("delete_event", self._on_dialog_close)

        # Widget events
        self.proxy_same_proxy_checkbutton.connect("toggled", self._on_same_proxy_toggled)
Example #12
0
    def __init__(self) :
        gobject.GObject.__init__(self)

        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.device_dialer = tgcm.core.FreeDesktop.DeviceDialer()
        self.main_modem = self.device_manager.main_modem

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'dock', 'DeviceMenuPopup')
        self.dmp_dir = os.path.join(tgcm.widgets_dir, 'dock', 'DeviceMenuPopup')

        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'DeviceMenuPopup.ui'), \
                prefix='dmp')

        self.conf = tgcm.core.Config.Config()

        # Enable or disable the entire menu depending on the availability of a device and the
        # connection status
        self.__update_menu_options_visibility()

        self.__update_device_submenu()
        self.__update_pin_submenu()
        self.__update_technology_submenu()
        self.__update_operator_submenu()

        # Connect the signals related to the widgets
        self.__connect_widget_signals()

        # Connect some device and configuration related signals
        self.__connect_core_signals()
Example #13
0
    def __init__(self):
        self._connection_manager = tgcm.core.Connections.ConnectionManager()
        self._connection_settings_manager = tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager(
        )
        self._conf = tgcm.core.Config.Config()
        self._conn_logger = tgcm.core.ConnectionLogger.ConnectionLogger()
        self._messaging_manager = tgcm.core.Messaging.MessagingManager()
        self._action_manager = tgcm.core.Actions.ActionManager()
        self.security_manager = tgcm.ui.MSD.MSDSecurityManager()
        self.mcontroller = tgcm.core.FreeDesktop.DeviceManager()

        self.abort_now_flag = None
        self.cardmanager = None
        self.actual_connection = None

        self.waiting_connection = None
        self.starting_connection = None
        self.connection_successful = None
        self.url = None
        self.action = None
        self.bookmark_info = None
        self.smart_connector = False

        self.reconnect_on_disconnect = False
        self.is_in_first_reconnection_with_smart_connector = False

        #Ask pass dialog
        gtk_builder_magic(self, \
                filename=os.path.join(tgcm.msd_dir, 'MSDConnectionsManager_dialog.ui'),
                prefix='ask')

        self.pass_entry.connect("changed", self.__ask_pass_entry_cb, None)

        self.connect_to_bus()
Example #14
0
    def __init__(self):
        gobject.GObject.__init__(self)

        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.device_dialer = tgcm.core.FreeDesktop.DeviceDialer()
        self.main_modem = self.device_manager.main_modem

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'dock',
                                       'DeviceMenuPopup')
        self.dmp_dir = os.path.join(tgcm.widgets_dir, 'dock',
                                    'DeviceMenuPopup')

        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'DeviceMenuPopup.ui'), \
                prefix='dmp')

        self.conf = tgcm.core.Config.Config()

        # Enable or disable the entire menu depending on the availability of a device and the
        # connection status
        self.__update_menu_options_visibility()

        self.__update_device_submenu()
        self.__update_pin_submenu()
        self.__update_technology_submenu()
        self.__update_operator_submenu()

        # Connect the signals related to the widgets
        self.__connect_widget_signals()

        # Connect some device and configuration related signals
        self.__connect_core_signals()
Example #15
0
    def __init__(self):
        self.__phonequery_area = None
        self.__conf = tgcm.core.Config.Config()
        self.__device_manager = tgcm.core.FreeDesktop.DeviceManager()

        # Parent dialog
        self.__dialog = tgcm.ui.windows.ServiceWindow('banner.recargasaldo', \
                tgcm.dockables_info['recargasaldo'])

        theme_manager = tgcm.core.Theme.ThemeManager()
        icon_file = theme_manager.get_icon('icons', 'recarga_taskbar.png')
        self.__dialog.set_icon_from_file(icon_file)

        # Controls
        files_dir = os.path.join(tgcm.windows_dir, 'RecargaSaldo')

        gtk_builder_magic(self, \
            filename=os.path.join(files_dir, 'RecargaSaldo_main.ui'), \
            prefix='esp')
        self.__dialog.add(self.recargasaldo_main)

        # Load the BAM phone query area or Movistar (Spain)
        self.__phonequery_area = RecargaSaldoPhoneQuery(self.__dialog)
        self.phonenumber_parent.add(self.__phonequery_area.get_area())

        # RecargaSaldo links
        self.credit_card_link.set_uri(self.__conf.get_dockable_url('recargasaldo', 'url-1'))
        self.credit_card_link.set_tooltip_text('')
        self.topup_link.set_uri(self.__conf.get_dockable_url('recargasaldo', 'url-2'))
        self.topup_link.set_tooltip_text('')
        self.vouchers_link.set_uri(self.__conf.get_dockable_url('recargasaldo', 'url-3'))
        self.vouchers_link.set_tooltip_text('')

        self.__dialog.connect('delete_event', self.__on_dialog_close)
        self.__dialog.close_button.connect('clicked', self.__on_dialog_close)
Example #16
0
    def __init__(self, parent=None):
        self.__conf = tgcm.core.Config.Config()
        self.__device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.__parent = parent

        files_dir = os.path.join(tgcm.windows_dir, 'RecargaSaldo')
        gtk_builder_magic(self, \
                filename=os.path.join(files_dir, 'RecargaSaldo_phonebox.ui'), \
                prefix='esp')

        # Some boolean variables necessary for the phone number determination algorithm
        self.__event_type  = self.EVENT_IDLE
        self.__query_event = threading.Event()

        # -- Update all the widgets
        self.__load_phone_number()
        self.__enable_widgets()

        # Some signals
        self.phonenumber_button.connect('clicked', self.__on_phonenumber_button_clicked)
        self.phonenumber_entry.connect('activate', self.__on_phonenumber_entry_activate)
        self.__conf.connect('last-imsi-seen-changed', self.__on_last_imsi_seen_changed)
        self.__conf.connect('user-mobile-broadband-number-changed', self.__on_phonenumber_changed)

        self.__device_manager.connect('active-dev-card-status-changed', self.__on_card_status_changed)
        main_modem = self.__device_manager.main_modem
        main_modem.connect('main-modem-changed', self.__main_modem_changed_cb)
        main_modem.connect('main-modem-removed', self.__main_modem_removed_cb)
Example #17
0
    def __init__(self, settings):
        gtk.HBox.__init__(self)

        self._settings = settings
        self._parent = self._settings.get_dialog()

        self.conf = tgcm.core.Config.Config()
        self.actions_manager = tgcm.core.Actions.ActionManager()
        self.actions_manager.connect('action-install-status-changed',
                                     self.__on_action_install_status_changed)
        self.actions_manager.connect(
            'url-launcher-install-status-changed',
            self.__on_url_launcher_install_status_changed)

        self._theme_manager = tgcm.core.Theme.ThemeManager()
        self._xml_theme_manager = tgcm.core.XMLTheme.XMLTheme()

        self.original_services_order = self.actions_manager.get_original_services_order(
        )
        self.actions = self.actions_manager.get_actions()
        self.actions_data = {}
        self.url_launchers_data = {}

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'settings',
                                       self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'Services.ui'), \
                prefix='svc')

        # -- Replace wrapping labels
        self.auth_top_info_label = replace_wrap_label(self.auth_top_info_label)
        self.new_users_info_label = replace_wrap_label(
            self.new_users_info_label)
        self.new_users_info_label2 = replace_wrap_label(
            self.new_users_info_label2)

        self.__init_action_panel()

        if tgcm.country_support == "es":
            self.auth_on_radio_button.connect(
                "toggled", self.__on_auth_on_radio_button_toggled, None)
            self.ask_password_check_button.connect(
                "toggled", self.__on_ask_password_check_button_toggled, None)
            self._settings.connect('is-closing', self.__on_settings_closing)

            self.__load_user_data()

            self.main_notebook.set_show_tabs(True)
        else:
            self.main_notebook.set_current_page(0)
            self.main_notebook.set_show_tabs(False)
            self.main_notebook.set_show_border(False)
            self.services_box.set_border_width(0)

        self.add(self.main_vbox)

        self.show_all()
Example #18
0
    def __init__(self):
        self.doc_manager = tgcm.core.DocManager.DocManager()

        self.conf = tgcm.core.Config.Config()

        gtk_builder_magic(self, \
                filename=os.path.join(tgcm.msd_dir, 'MSDSecurityManager_dialog.ui'), \
                prefix='sec')

        self.help_button.connect("clicked",self.__help_button_cb)
        self.phone_entry.connect("changed", self.__security_dialog_entry_changed, None)
        self.password_entry.connect("changed", self.__security_dialog_entry_changed, None)
Example #19
0
    def __init__(self, parent=None):
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.main_modem = self.device_manager.main_modem
        self.device_dialer = tgcm.core.FreeDesktop.DeviceDialer()

        self.windows_dir = os.path.join(tgcm.windows_dir,
                                        self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'CarrierDialog.ui'), \
                prefix='cd')

        # -- Block the passed parent otherwise the Dock
        if parent is None:
            parent = tgcm.ui.ThemedDock().get_main_window()
        self.carrier_selection_dialog.set_transient_for(parent)

        odev = self.device_manager.get_main_device()
        if odev != None and odev.get_type(
        ) == tgcm.core.DeviceManager.DEVICE_MODEM:
            status = odev.pin_status()
            if not status == MobileManager.PIN_STATUS_READY:
                return
        else:
            tgcm.error("Exception")
            return

        self.carrier_combobox_changed_id = self.carrier_combobox.connect(
            "changed", self.__carrier_combobox_cb, None)

        cell = gtk.CellRendererPixbuf()
        self.carrier_combobox.pack_start(cell, False)
        self.carrier_combobox.add_attribute(cell, "stock_id", 0)

        cell = gtk.CellRendererText()
        self.carrier_combobox.pack_start(cell, False)
        self.carrier_combobox.add_attribute(cell, 'text', 1)

        self.carrier_selection_dialog.connect(
            "delete-event", self.__carrier_dialog_delete_event_cb, None)
        self.main_modem.connect("main-modem-removed",
                                self.__main_modem_removed_cb)

        self.refresh_button.connect("clicked", self.__refresh_button_cb, None)
        self.ok_button.connect("clicked", self.__ok_button_cb, None)
        self.cancel_button.connect("clicked", self.__cancel_button_cb, None)

        self.timer = gobject.timeout_add(100, self.__progress_timeout_cb, None)

        self.carrier_combobox_hbox.show()
        self.carrier_scan_progressbar.hide()

        self.reg_attempts = 0
        self.__scanning = False
Example #20
0
    def __init__(self):
        self.doc_manager = tgcm.core.DocManager.DocManager()

        self.conf = tgcm.core.Config.Config()

        gtk_builder_magic(self, \
                filename=os.path.join(tgcm.msd_dir, 'MSDSecurityManager_dialog.ui'), \
                prefix='sec')

        self.help_button.connect("clicked", self.__help_button_cb)
        self.phone_entry.connect("changed",
                                 self.__security_dialog_entry_changed, None)
        self.password_entry.connect("changed",
                                    self.__security_dialog_entry_changed, None)
Example #21
0
    def __init__(self, parent=None):
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.device_dialer = tgcm.core.FreeDesktop.DeviceDialer()
        self.theme_manager = tgcm.ui.ThemedDock()

        self.windows_dir = os.path.join(tgcm.windows_dir , "PinDialog")
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'ManagePinDialog.ui'), \
                prefix='mpd')

        self._parent = parent if parent is not None else self.theme_manager.get_main_window()
        self.dialog.set_transient_for(self._parent)

        self.ok_button.set_sensitive(False)
        self.pin_entry.connect("changed", self.pin_entry_changed_cb, None)
Example #22
0
    def __init__(self, settings):
        gtk.HBox.__init__(self)

        self._settings = settings
        self._parent = self._settings.get_dialog()

        self.conf = tgcm.core.Config.Config()
        self.actions_manager = tgcm.core.Actions.ActionManager()
        self.actions_manager.connect ('action-install-status-changed', self.__on_action_install_status_changed)
        self.actions_manager.connect ('url-launcher-install-status-changed', self.__on_url_launcher_install_status_changed)

        self._theme_manager = tgcm.core.Theme.ThemeManager()
        self._xml_theme_manager = tgcm.core.XMLTheme.XMLTheme()

        self.original_services_order = self.actions_manager.get_original_services_order()
        self.actions = self.actions_manager.get_actions ()
        self.actions_data = {}
        self.url_launchers_data = {}

        self.widget_dir = os.path.join(tgcm.widgets_dir , 'settings', self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'Services.ui'), \
                prefix='svc')

        # -- Replace wrapping labels
        self.auth_top_info_label  = replace_wrap_label(self.auth_top_info_label)
        self.new_users_info_label = replace_wrap_label(self.new_users_info_label)
        self.new_users_info_label2 = replace_wrap_label(self.new_users_info_label2)

        self.__init_action_panel ()

        if tgcm.country_support == "es":
            self.auth_on_radio_button.connect("toggled", self.__on_auth_on_radio_button_toggled, None)
            self.ask_password_check_button.connect("toggled", self.__on_ask_password_check_button_toggled, None)
            self._settings.connect('is-closing', self.__on_settings_closing)

            self.__load_user_data ()

            self.main_notebook.set_show_tabs (True)
        else:
            self.main_notebook.set_current_page (0)
            self.main_notebook.set_show_tabs (False)
            self.main_notebook.set_show_border(False)
            self.services_box.set_border_width(0)

        self.add (self.main_vbox)

        self.show_all()
Example #23
0
    def __init__(self, parent=None):
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.main_modem = self.device_manager.main_modem
        self.device_dialer = tgcm.core.FreeDesktop.DeviceDialer()

        self.windows_dir = os.path.join(tgcm.windows_dir , self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'CarrierDialog.ui'), \
                prefix='cd')

        # -- Block the passed parent otherwise the Dock
        if parent is None:
            parent = tgcm.ui.ThemedDock().get_main_window()
        self.carrier_selection_dialog.set_transient_for(parent)

        odev = self.device_manager.get_main_device()
        if odev != None and odev.get_type() == tgcm.core.DeviceManager.DEVICE_MODEM :
            status = odev.pin_status()
            if not status == MobileManager.PIN_STATUS_READY :
                return
        else:
            tgcm.error("Exception")
            return

        self.carrier_combobox_changed_id = self.carrier_combobox.connect("changed", self.__carrier_combobox_cb, None)

        cell = gtk.CellRendererPixbuf()
        self.carrier_combobox.pack_start(cell, False)
        self.carrier_combobox.add_attribute(cell, "stock_id",0)

        cell = gtk.CellRendererText()
        self.carrier_combobox.pack_start(cell, False)
        self.carrier_combobox.add_attribute(cell, 'text', 1)

        self.carrier_selection_dialog.connect("delete-event", self.__carrier_dialog_delete_event_cb, None)
        self.main_modem.connect("main-modem-removed", self.__main_modem_removed_cb)

        self.refresh_button.connect("clicked",self.__refresh_button_cb, None)
        self.ok_button.connect("clicked",self.__ok_button_cb, None)
        self.cancel_button.connect("clicked",self.__cancel_button_cb, None)

        self.timer = gobject.timeout_add (100, self.__progress_timeout_cb, None)

        self.carrier_combobox_hbox.show()
        self.carrier_scan_progressbar.hide()

        self.reg_attempts = 0
        self.__scanning = False
Example #24
0
    def __init__(self, external_traffic_history_label):
        gtk.HBox.__init__(self)
        self.traffic_manager = tgcm.core.TrafficManager.TrafficManager()

        self.widget_dir = os.path.join(tgcm.widgets_dir , 'traffic', self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'DataUsedInfo.ui'), \
                prefix='dui')

        self.traffic_history_widget = tgcm.ui.widgets.traffic.TrafficHistoryGraph(external_traffic_history_label)
        self.traffic_history_widget_area.add(self.traffic_history_widget)
        self.traffic_history_widget.show()
        self.add(self.main_widget)
        self.main_widget.show_all()

        self.main_widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white"))
Example #25
0
    def __init__(self, settings):
        gtk.HBox.__init__(self)

        self._settings = settings
        self._parent = self._settings.get_dialog()
        self.conf = tgcm.core.Config.Config()
        self.connection_settings_manager = tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager(
        )

        self.conn_manager = tgcm.core.Connections.ConnectionManager()
        self.theme_manager = tgcm.core.Theme.ThemeManager()

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'settings',
                                       self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'Connections.ui'), \
                prefix='cnnt')
        self.add(self.main_vbox)

        # -- Replace for having wrapping labels
        msg = _(
            "Here, you can manage the connections saved in %s and order them according to your connection preferences."
        ) % self.conf.get_app_name()
        self.top_info_label = replace_wrap_label(self.top_info_label, text=msg)
        msg = _(
            "You can add new connections to %s by pressing the following buttons:"
        ) % self.conf.get_app_name()
        self.second_info_label = replace_wrap_label(self.second_info_label,
                                                    text=msg)

        if tgcm.country_support == 'de':
            self.add_wwan_connection_button.set_label(
                _("New 2G/3G/4G connection"))

        is_log_enabled = self.conf.is_connection_log_enabled()
        self.activate_connection_log_checkbutton.set_active(is_log_enabled)
        self.connection_file_label.set_text(
            self.conf.get_connection_log_filepath())

        self.importer = tgcm.ui.MSD.MSDImporter()
        self.importer.connections_treeview = self.connections_treeview
        self.importer.connect("connection-imported",
                              self.__connection_imported_cb)

        self.__create_connections_treeview()
        self.__load_connections_treeview()
        self.__connect_signals()
Example #26
0
    def __init__(self, conf, widget_dir, settings):
        self.__settings = settings
        self.__conf = conf
        self.__device_manager = tgcm.core.FreeDesktop.DeviceManager()

        gtk_builder_magic(self, \
                filename=os.path.join(widget_dir, 'MyDetailsCommon.ui'), \
                prefix='gnrl')

        text = self.common_cancel_label.get_text() % {
            'app_name': self.__conf.get_app_name()
        }
        self.common_cancel_label.set_text(text)

        # -- Replease these two labels for wrapping
        self.top_info_label = replace_wrap_label(self.top_info_label)
        self.bam_info_label = replace_wrap_label(self.bam_info_label)

        self.my_details_common.show_all()

        # FIXME: It seems that Movistar ES has disabled monthly limits
        self.is_monthly_limit_enabled = tgcm.country_support != 'es'

        # Init comboboxes
        self.__init_dialog()

        # Load the BAM phone query area for Movistar (Spain)
        parent = self.__settings.get_dialog()

        self.__phonequery_area = tgcm.ui.windows.RecargaSaldoPhoneQuery(parent)
        self.phonenumber_parent.add(self.__phonequery_area.get_area())

        bam_textc = _('Mobile broadband number')
        self.__phonequery_area.set_description_label('%s:' % bam_textc)

        # Don't show the tooltip for the BAM help button
        self.phonenumber_bam_help.set_tooltip_text('')

        # IMSI, identifies the latest known SIM card
        self.__imsi = self.__conf.get_last_imsi_seen()
        if not self.__conf.is_last_imsi_seen_valid():
            self.my_details_common.set_sensitive(False)
        else:
            self.__load_dialog_values()

        # Connect some signals
        self.__connect_signals()
Example #27
0
    def __init__(self, config_key):
        gobject.GObject.__init__(self)

        self.conn_manager = tgcm.core.Connections.ConnectionManager()
        self.connection_settings_manager = tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager(
        )
        self.conf = tgcm.core.Config.Config()
        self._theme_manager = tgcm.core.Theme.ThemeManager()
        self._xml_theme_manager = tgcm.core.XMLTheme.XMLTheme()
        self._parent = tgcm.ui.ThemedDock().get_main_window()

        self.codename = self.__class__.__name__
        self.config_key = config_key

        action_dir = os.path.join(tgcm.actions_data_dir, self.codename)

        self._prefs_builder = gtk_builder_magic(self, \
                filename=os.path.join(action_dir, '%s_prefs.ui' % self.codename), \
                prefix='action')

        self._prefs_frame_builder = gtk_builder_magic(self, \
                filename=os.path.join(tgcm.msd_dir, 'MSDAction_frame.ui'), \
                prefix='pre')

        self.installed_service_label = replace_wrap_label(
            self.installed_service_label)
        self.uninstalled_service_label = replace_wrap_label(
            self.uninstalled_service_label)

        self.prefs_main_subcontainer.pack_end(self.connect_container)

        self.progress_dialog = tgcm.ui.MSD.MSDProgressWindow()
        self.progress_dialog.set_show_buttons(False)
        self.timer_id = 0

        self.__toggle_connections_check_button_cb_id = None
        self.__connections_combobox_cb_id = None
        self.__remove_service_button_cb_id = None
        self.__install_service_button_cb_id = None

        self.__check_preferences_interface()
        self.set_connections_model(self.conn_manager.get_connections_model())
        self.conn_manager.connect('pre_connections_change',
                                  self.__on_pre_connections_change)
        self.conn_manager.connect('connections_changed',
                                  self.__on_connections_changed)
        self.connect_signals()
Example #28
0
    def __init__(self, parent=None):
        if tgcm.country_support == "de":
            title = _("New 2G/3G/4G connection")
        else:
            title = _("New WWAN connection")

        self._conn_settings_manager = tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager()

        gtk.Dialog.__init__(
            self,
            title,
            parent,
            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
            (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT),
        )

        self.set_border_width(6)

        self.windows_dir = os.path.join(tgcm.windows_dir, "ConnectionDialog")
        gtk_builder_magic(self, filename=os.path.join(self.windows_dir, "ConnectionDialog_editor.ui"), prefix="conn")

        theme_manager = tgcm.core.Theme.ThemeManager()
        self.window_icon_path = theme_manager.get_icon("icons", "settings_taskbar.png")
        self.set_icon_from_file(self.window_icon_path)
        self.vbox.pack_start(self.main_vbox)

        # Initial dialog configuration
        self._create_data_model()
        self._enable_password_area()
        self._enable_dns_area()
        self._enable_proxy_area()

        ### Signals

        # Avoid dialog to close events
        self.connect("response", self._on_dialog_response)
        self.connect("close", self._on_dialog_close)
        self.connect("delete_event", self._on_dialog_close)

        # 'More' proxy button
        self.proxy_more_button.connect("clicked", self._on_proxy_more_activated)

        # Widget events
        self.ask_password_checkbutton.connect("toggled", self._on_ask_password_toggled)
        self.use_proxy_radiobutton.connect("toggled", self._on_use_proxy_radiobutton_toggled)
        self.dns_user_radiobutton.connect("toggled", self._on_dns_user_radiobutton_toggled)
Example #29
0
    def __init__(self, parent=None):
        if tgcm.country_support == 'de':
            title = _("New 2G/3G/4G connection")
        else:
            title = _("New WWAN connection")

        self._conn_settings_manager = tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager()

        gtk.Dialog.__init__(self, title, parent, \
                gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, \
                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, \
                 gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT))

        self.set_border_width(6)

        self.windows_dir = os.path.join(tgcm.windows_dir, 'ConnectionDialog')
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'ConnectionDialog_editor.ui'), \
                prefix='conn')

        theme_manager = tgcm.core.Theme.ThemeManager()
        self.window_icon_path = theme_manager.get_icon('icons', 'settings_taskbar.png')
        self.set_icon_from_file(self.window_icon_path)
        self.vbox.pack_start(self.main_vbox)

        # Initial dialog configuration
        self._create_data_model()
        self._enable_password_area()
        self._enable_dns_area()
        self._enable_proxy_area()

        ### Signals

        # Avoid dialog to close events
        self.connect('response', self._on_dialog_response)
        self.connect('close', self._on_dialog_close)
        self.connect('delete_event', self._on_dialog_close)

        # 'More' proxy button
        self.proxy_more_button.connect('clicked', self._on_proxy_more_activated)

        # Widget events
        self.ask_password_checkbutton.connect('toggled', self._on_ask_password_toggled)
        self.use_proxy_radiobutton.connect('toggled', self._on_use_proxy_radiobutton_toggled)
        self.dns_user_radiobutton.connect('toggled', self._on_dns_user_radiobutton_toggled)
Example #30
0
    def __init__(self, conf, widget_dir, settings):
        self.__settings = settings
        self.__conf = conf
        self.__device_manager = tgcm.core.FreeDesktop.DeviceManager()

        gtk_builder_magic(self, \
                filename=os.path.join(widget_dir, 'MyDetailsCommon.ui'), \
                prefix='gnrl')

        text = self.common_cancel_label.get_text() % {'app_name' : self.__conf.get_app_name()}
        self.common_cancel_label.set_text(text)

        # -- Replease these two labels for wrapping
        self.top_info_label = replace_wrap_label(self.top_info_label)
        self.bam_info_label = replace_wrap_label(self.bam_info_label)

        self.my_details_common.show_all()

        # FIXME: It seems that Movistar ES has disabled monthly limits
        self.is_monthly_limit_enabled = tgcm.country_support != 'es'

        # Init comboboxes
        self.__init_dialog()

        # Load the BAM phone query area for Movistar (Spain)
        parent = self.__settings.get_dialog()

        self.__phonequery_area = tgcm.ui.windows.RecargaSaldoPhoneQuery(parent)
        self.phonenumber_parent.add(self.__phonequery_area.get_area())

        bam_textc = _('Mobile broadband number')
        self.__phonequery_area.set_description_label('%s:' % bam_textc)

        # Don't show the tooltip for the BAM help button
        self.phonenumber_bam_help.set_tooltip_text('')

        # IMSI, identifies the latest known SIM card
        self.__imsi = self.__conf.get_last_imsi_seen()
        if not self.__conf.is_last_imsi_seen_valid():
            self.my_details_common.set_sensitive(False)
        else:
            self.__load_dialog_values()

        # Connect some signals
        self.__connect_signals()
Example #31
0
    def __init__(self):
        gtk.HBox.__init__(self)
        self.traffic_manager = tgcm.core.TrafficManager.TrafficManager()

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'traffic', self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'SessionInfoUK.ui'), \
                prefix='si')

        self.add(self.main_widget)
        self.main_widget.show_all()

        self.main_widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white"))
        self.data_transfered_label.set_markup("<b>--</b>")

        #Signals
        self.traffic_manager.connect("update-session-time", self.__update_session_time_cb)
        self.traffic_manager.connect("update-session-data-transfered", self.__update_session_data_transfered_cb)
Example #32
0
    def __init__(self):
        gobject.GObject.__init__(self)

        self.conf = tgcm.core.Config.Config()
        self.importer = tgcm.core.Importer.Importer()

        self.connection_treeview = None
        self.bookmarks_treeview = None
        self.import_conditions = None

        gtk_builder_magic(self, \
                os.path.join(tgcm.msd_dir, 'MSDImporter_dialog.ui'), \
                prefix='imp')

        #signals !
        self.import_connection_overwrite_checkbox.connect("toggled", self.__imp_conn_ow_checkbox_cb, None)
        self.import_bookmark_overwrite_checkbox.connect("toggled", self.__imp_book_ow_checkbox_cb, None)
        self.import_no_username_entry.connect("changed", self.__imp_no_username_entry_cb, None)
Example #33
0
    def __init__(self, parent=None, header_text=''):
        gtk.Dialog.__init__(self,
                title=_('Assign to contact'),
                parent=parent,
                flags=gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_NO_SEPARATOR,
                buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK))
        self._addr_manager = tgcm.core.Addressbook.AddressbookManager()
        self.resize(350, 400)
        self.set_border_width(4)

        filename = os.path.join(tgcm.windows_dir, \
                'AddressBook', 'AddressBook_search_contact.ui')
        gtk_builder_magic(self, \
                filename=filename, \
                prefix='addr')
        self.vbox.pack_start(self.search_contact_vbox, True, True, 0)

        # If there is no header text, hide its related label
        if len(header_text) > 0:
            self.info_label.set_text(header_text)
        else:
            self.info_label.hide()

        column = gtk.TreeViewColumn('name', gtk.CellRendererText(), text=1)
        column.set_expand(True)
        self.contact_treeview.append_column(column)

        # Support model filtering and ordering
        model = self._addr_manager.get_treeview_model()
        model = model.filter_new()
        model.set_visible_func(self.__search_contacts_filter_func)
        model = gtk.TreeModelSort(model)
        self.contact_treeview.set_model(model)

        # Connect some UI signals
        self.search_entry.connect('changed', self.__on_search_entry_changed_cb)
        self.search_entry.connect('icon-press', self.___search_entry_icon_press_cb)

        selection = self.contact_treeview.get_selection()
        selection.set_mode(gtk.SELECTION_SINGLE)
        selection.connect('changed', self.__on_selection_changed_cb)
        selection.select_path(0)

        self.contact_treeview.connect('row-activated', self.__on_row_activated_cb)
Example #34
0
    def __init__(self, device, parent=None, turn_off_if_cancel=False, \
            on_success_callback=None):
        self.device = device
        self.turn_off_if_cancel = turn_off_if_cancel
        self.on_success_callback = on_success_callback
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()

        title = _('Enter network PIN code')
        gtk.Dialog.__init__(self, title, parent, \
                gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, \
                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, \
                 gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))

        self.windows_dir = os.path.join(tgcm.windows_dir, 'UnlockDeviceDialog')
        filename = os.path.join(self.windows_dir, 'UnlockDeviceDialog.ui')
        gtk_builder_magic(self, \
                filename=filename, \
                prefix='ud')

        self.set_border_width(6)
        self.vbox.pack_start(self.contents_vbox)
        if parent is None:
            parent = tgcm.ui.ThemedDock().get_main_window()
        self.set_transient_for(parent)
        self.unlock_code_entry.grab_focus()

        # Ugly hack to wrap a gtk.Label
        labels = (self.info_label, self.num_retries_label)
        for label in labels:
            text = label.get_label()
            replace_wrap_label(label, text)

        # Listen for removal of main WWAN device
        self.device_manager.connect('device-removed', self._on_device_removed)

        # Disable OK button if unlock code field is empty
        self.set_response_sensitive(gtk.RESPONSE_ACCEPT, False)
        self.unlock_code_entry.connect('changed',
                                       self._on_unlock_code_entry_changed)

        # Events necessary to avoid dialog to close
        self.connect('response', self._on_dialog_response)
        self.connect('close', self._on_dialog_close)
        self.connect('delete_event', self._on_dialog_close)
Example #35
0
    def __init__(self, external_traffic_history_label):
        gtk.HBox.__init__(self)
        self.traffic_manager = tgcm.core.TrafficManager.TrafficManager()

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'traffic',
                                       self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'DataUsedInfo.ui'), \
                prefix='dui')

        self.traffic_history_widget = tgcm.ui.widgets.traffic.TrafficHistoryGraph(
            external_traffic_history_label)
        self.traffic_history_widget_area.add(self.traffic_history_widget)
        self.traffic_history_widget.show()
        self.add(self.main_widget)
        self.main_widget.show_all()

        self.main_widget.modify_bg(gtk.STATE_NORMAL,
                                   gtk.gdk.color_parse("white"))
Example #36
0
    def __init__(self, cancel_callback=None, parent=None):
        filename = os.path.join(tgcm.msd_dir, 'MSDProgressWindow_dialog.ui')
        gtk_builder_magic(self, filename=filename, prefix='prg')

        self.cancel_button.connect("clicked",self.__cancel_button_cb)
        self.progress_dialog.connect("delete_event",self.__close_window_cb)

        self.timer_id = 0
        self.cancel_callback = cancel_callback
        if cancel_callback == None:
            self.show_buttons = False
        else:
            self.show_buttons = True
        self.is_show = False

        # -- Set the Dock as parent for the dialog if None passed
        if parent is None:
            parent = tgcm.ui.ThemedDock().get_main_window()
        self.progress_dialog.set_transient_for(parent)
Example #37
0
    def __init__(self, cancel_callback=None, parent=None):
        filename = os.path.join(tgcm.msd_dir, 'MSDProgressWindow_dialog.ui')
        gtk_builder_magic(self, filename=filename, prefix='prg')

        self.cancel_button.connect("clicked", self.__cancel_button_cb)
        self.progress_dialog.connect("delete_event", self.__close_window_cb)

        self.timer_id = 0
        self.cancel_callback = cancel_callback
        if cancel_callback == None:
            self.show_buttons = False
        else:
            self.show_buttons = True
        self.is_show = False

        # -- Set the Dock as parent for the dialog if None passed
        if parent is None:
            parent = tgcm.ui.ThemedDock().get_main_window()
        self.progress_dialog.set_transient_for(parent)
Example #38
0
    def __init__(self, device, parent=None, turn_off_if_cancel=False, on_success_callback=None):
        self.device = device
        self.turn_off_if_cancel = turn_off_if_cancel
        self.on_success_callback = on_success_callback
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()

        title = _("Enter network PIN code")
        gtk.Dialog.__init__(
            self,
            title,
            parent,
            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
            (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT),
        )

        self.windows_dir = os.path.join(tgcm.windows_dir, "UnlockDeviceDialog")
        filename = os.path.join(self.windows_dir, "UnlockDeviceDialog.ui")
        gtk_builder_magic(self, filename=filename, prefix="ud")

        self.set_border_width(6)
        self.vbox.pack_start(self.contents_vbox)
        if parent is None:
            parent = tgcm.ui.ThemedDock().get_main_window()
        self.set_transient_for(parent)
        self.unlock_code_entry.grab_focus()

        # Ugly hack to wrap a gtk.Label
        labels = (self.info_label, self.num_retries_label)
        for label in labels:
            text = label.get_label()
            replace_wrap_label(label, text)

        # Listen for removal of main WWAN device
        self.device_manager.connect("device-removed", self._on_device_removed)

        # Disable OK button if unlock code field is empty
        self.set_response_sensitive(gtk.RESPONSE_ACCEPT, False)
        self.unlock_code_entry.connect("changed", self._on_unlock_code_entry_changed)

        # Events necessary to avoid dialog to close
        self.connect("response", self._on_dialog_response)
        self.connect("close", self._on_dialog_close)
        self.connect("delete_event", self._on_dialog_close)
Example #39
0
    def __init__(self, title=None, parent=None, flags=0, buttons=None, show_preferences_button=True, show_help_button=True):
        gtk.Dialog.__init__(self, title, parent, flags, buttons)
        self.set_has_separator(False)

        self.windows_dir = os.path.join(tgcm.windows_dir , "Traffic")
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'BillingDayChangeDialog.ui'), \
                prefix='bd')

        self.get_children()[0].add(self.main_widget)

        self._days = range(1, 32)
        if tgcm.country_support == 'es':
            self._days = (1, 10, 18, 24)

        model = gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING)
        for i in self._days:
            model.append([i, get_month_day(i)])
        self.billing_day_combobox.set_model(model)
Example #40
0
    def __init__(self, config_key):
        gobject.GObject.__init__(self)

        self.conn_manager = tgcm.core.Connections.ConnectionManager()
        self.connection_settings_manager=tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager()
        self.conf = tgcm.core.Config.Config()
        self._theme_manager = tgcm.core.Theme.ThemeManager()
        self._xml_theme_manager = tgcm.core.XMLTheme.XMLTheme()
        self._parent = tgcm.ui.ThemedDock().get_main_window()

        self.codename = self.__class__.__name__
        self.config_key = config_key

        action_dir = os.path.join(tgcm.actions_data_dir , self.codename)

        self._prefs_builder = gtk_builder_magic(self, \
                filename=os.path.join(action_dir, '%s_prefs.ui' % self.codename), \
                prefix='action')

        self._prefs_frame_builder = gtk_builder_magic(self, \
                filename=os.path.join(tgcm.msd_dir, 'MSDAction_frame.ui'), \
                prefix='pre')

        self.installed_service_label = replace_wrap_label(self.installed_service_label)
        self.uninstalled_service_label = replace_wrap_label(self.uninstalled_service_label)

        self.prefs_main_subcontainer.pack_end(self.connect_container)

        self.progress_dialog = tgcm.ui.MSD.MSDProgressWindow()
        self.progress_dialog.set_show_buttons(False)
        self.timer_id = 0

        self.__toggle_connections_check_button_cb_id = None
        self.__connections_combobox_cb_id = None
        self.__remove_service_button_cb_id = None
        self.__install_service_button_cb_id = None

        self.__check_preferences_interface ()
        self.set_connections_model(self.conn_manager.get_connections_model())
        self.conn_manager.connect ('pre_connections_change', self.__on_pre_connections_change)
        self.conn_manager.connect ('connections_changed', self.__on_connections_changed)
        self.connect_signals ()
Example #41
0
    def __init__(self, parent):
        self._theme_manager = tgcm.core.Theme.ThemeManager()

        gtk_builder_magic(self, \
                filename=os.path.join(tgcm.windows_dir, 'AddressBook', 'AddressBook_editor.ui'), \
                prefix='ced')

        self.contact_editor_dialog.set_transient_for(parent)
        self.icon_file = self._theme_manager.get_icon('icons', 'addressbook_taskbar.png')
        self.contact_editor_dialog.set_icon_from_file(self.icon_file)
        self.contact_editor_dialog.hide()
        self.ok_button.set_sensitive(False)

        if tgcm.country_support == 'uk':
            self.mobile_phone_label.set_markup("<b>%s</b>" % _("Phone number:"))

        self.contact_editor_dialog.connect("delete-event",self.on_dialog_delete)
        self.name_entry.connect("changed", self.__entry_changed, None)
        self.mobile_phone_entry.connect("changed", self.__entry_changed, None)
        self.email_entry.connect("changed", self.__entry_changed, None)
Example #42
0
    def __init__(self, dock, conn_manager, conn_zone):
        self.__dock = dock
        self.__conn_manager = conn_manager
        self.__conn_zone = conn_zone
        self.__sms_action = tgcm.core.Actions.ActionManager().get_action('sms')
        self.__traffic_manager = tgcm.core.TrafficManager.TrafficManager()
        self._config = tgcm.core.Config.Config()
        self._theme_manager = tgcm.core.Theme.ThemeManager()
        self._device_dialer = _fd.DeviceDialer()
        self.__device_manager = _fd.DeviceManager()
        self.__traffic_updater = tgcm.core.TrafficUpdater.TrafficUpdater(interval = self.TRAFFIC_UPDATER_INTERVAL)

        # Automatically load widgets from a Glade file
        theme_path = os.path.join('dock', 'Systray')
        widget_dir = os.path.join(tgcm.widgets_dir, theme_path)
        gtk_builder_magic(self, \
                filename=os.path.join(widget_dir, 'Systray.ui'), \
                prefix='systray')

        # Initialize variables and prepare the labels
        self.__initialize_vars()
Example #43
0
    def __init__(self):
        gobject.GObject.__init__(self)

        self.conf = tgcm.core.Config.Config()
        self.importer = tgcm.core.Importer.Importer()

        self.connection_treeview = None
        self.bookmarks_treeview = None
        self.import_conditions = None

        gtk_builder_magic(self, \
                os.path.join(tgcm.msd_dir, 'MSDImporter_dialog.ui'), \
                prefix='imp')

        #signals !
        self.import_connection_overwrite_checkbox.connect(
            "toggled", self.__imp_conn_ow_checkbox_cb, None)
        self.import_bookmark_overwrite_checkbox.connect(
            "toggled", self.__imp_book_ow_checkbox_cb, None)
        self.import_no_username_entry.connect("changed",
                                              self.__imp_no_username_entry_cb,
                                              None)
Example #44
0
    def __init__(self):
        gtk.HBox.__init__(self)
        self.traffic_manager = tgcm.core.TrafficManager.TrafficManager()

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'traffic',
                                       self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'SessionInfoUK.ui'), \
                prefix='si')

        self.add(self.main_widget)
        self.main_widget.show_all()

        self.main_widget.modify_bg(gtk.STATE_NORMAL,
                                   gtk.gdk.color_parse("white"))
        self.data_transfered_label.set_markup("<b>--</b>")

        #Signals
        self.traffic_manager.connect("update-session-time",
                                     self.__update_session_time_cb)
        self.traffic_manager.connect("update-session-data-transfered",
                                     self.__update_session_data_transfered_cb)
Example #45
0
    def __init__(self, parent=None):
        gtk.HBox.__init__(self)

        self.conf = tgcm.core.Config.Config()
        self.conf.connect('user-prepay-changed', self.__load_services_treeview)
        self.conf.connect('launcher-items-order-changed',
                          self.__load_services_treeview)
        self.conf.connect('last-imsi-seen-changed',
                          self.__load_services_treeview)

        self.action_manager = tgcm.core.Actions.ActionManager()
        self.action_manager.connect('action-install-status-changed', \
                self.__load_services_treeview)
        self.action_manager.connect('url-launcher-install-status-changed', \
                self.__load_services_treeview)

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'settings', \
                self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'Dock.ui'), \
                prefix='dock')

        if tgcm.country_support == 'uk':
            self.title_label.set_text('<big><b>%s</b></big>' % _('Appearance'))

        # -- Replace the label for wrapping
        self.top_info_label = replace_wrap_label(self.top_info_label)

        self.add(self.main_container)

        self.selected = []

        self.__create_services_treeview()
        self.__load_services_treeview()

        self.up_button.connect('clicked', self.__on_up_button_clicked)
        self.down_button.connect('clicked', self.__on_down_button_clicked)
        self.up_button.set_sensitive(False)
        self.down_button.set_sensitive(False)
Example #46
0
    def __init__(self):
        tgcm.info("Init CZRecharge")

        tgcm.ui.MSD.MSDAction.__init__(self, "prepay")

        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.taskbar_icon_name = 'prepay_taskbar.png'
        self.security_manager = tgcm.ui.MSD.MSDSecurityManager()
        self.action_dir = os.path.join(tgcm.actions_data_dir, self.codename)
        self.theme_manager = tgcm.core.Theme.ThemeManager()
        self.window_icon_path = self.theme_manager.get_icon(
            'icons', self.taskbar_icon_name)

        gtk_builder_magic(self, \
                filename=os.path.join(self.action_dir, 'CZRecharge_main.ui'), \
                prefix='czr')

        parent = tgcm.ui.ThemedDock().get_main_window()
        self.recharge_dialog = tgcm.ui.windows.Dialog( \
                title="%s - %s" % (self.conf.get_app_name(), "Dobíjení Kreditu"), \
                parent = parent, buttons=(gtk.STOCK_CLOSE,  gtk.RESPONSE_CLOSE))

        # FIXME: We are always loading unnecessary services independently of the
        # country support. Sometimes that situation causes many problems, for example
        # when a theme-related resource is required and it is only available in the
        # theme package of a specific country.
        if self.window_icon_path is not None:
            self.recharge_dialog.set_icon_from_file(self.window_icon_path)

        self.recharge_dialog.add(self.main_widget)

        self.number_entry.connect("changed", self.__number_entry_changed_cb,
                                  None)
        self.recharge_button.connect("clicked", self.__request_recharge_cb,
                                     None)
        self.check_button.connect("clicked", self.__request_check_cb, None)

        self.recharge_button.set_sensitive(False)
Example #47
0
    def __init__(self, parent, contact_treeview):
        self._parent = parent
        self.contact_treeview = contact_treeview

        self.conf = tgcm.core.Config.Config()
        self._addr_manager = tgcm.core.Addressbook.AddressbookManager ()
        self._theme_manager = tgcm.core.Theme.ThemeManager()
        self.icon_file = self._theme_manager.get_icon('icons', 'addressbook_taskbar.png')

        gtk_builder_magic(self, \
                filename=os.path.join(tgcm.windows_dir, 'AddressBook', 'AddressBook_import.ui'), \
                prefix='ipd')

        self.notebook.set_show_tabs(False)
        self.back_button.set_sensitive(False)
        self.next_button.set_sensitive(False)
        self.result_textview.set_wrap_mode (gtk.WRAP_WORD_CHAR)

        self.__set_origin_model()

        self._canceling = False

        self.cancel_button.connect("clicked" , self.on_cancel_button_clicked)
        self.back_button.connect("clicked" , self.on_back_button_clicked)
        self.next_button.connect("clicked" , self.on_next_button_clicked)

        file_icon = self._theme_manager.get_icon('addressbook', 'import.png')
        self.import_contacts_window.set_icon_from_file(file_icon)
        self.import_contacts_window.set_deletable(False)
        self.import_contacts_window.set_modal(True)
        self.import_contacts_window.set_transient_for(parent)
        self.import_contacts_window.set_skip_taskbar_hint(False)
        self.import_contacts_window.connect('delete_event', self.__on_delete_event)

        self.__loop = None
        self.__import_event = threading.Event()
        self.__import_state = self.STATE_IDLE
        self.__import_pbar_id = None
Example #48
0
    def __init__(self, parent=None):
        gtk.HBox.__init__(self)

        self.conf = tgcm.core.Config.Config()
        self.conf.connect('user-prepay-changed', self.__load_services_treeview)
        self.conf.connect('launcher-items-order-changed', self.__load_services_treeview)
        self.conf.connect('last-imsi-seen-changed', self.__load_services_treeview)

        self.action_manager = tgcm.core.Actions.ActionManager()
        self.action_manager.connect('action-install-status-changed', \
                self.__load_services_treeview)
        self.action_manager.connect('url-launcher-install-status-changed', \
                self.__load_services_treeview)

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'settings', \
                self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'Dock.ui'), \
                prefix='dock')

        if tgcm.country_support == 'uk':
            self.title_label.set_text('<big><b>%s</b></big>' %_('Appearance'))

        # -- Replace the label for wrapping
        self.top_info_label = replace_wrap_label(self.top_info_label)

        self.add(self.main_container)

        self.selected = []

        self.__create_services_treeview ()
        self.__load_services_treeview ()

        self.up_button.connect ('clicked', self.__on_up_button_clicked)
        self.down_button.connect ('clicked', self.__on_down_button_clicked)
        self.up_button.set_sensitive (False)
        self.down_button.set_sensitive (False)
Example #49
0
    def __init__(self, settings):
        gtk.HBox.__init__(self)

        self._settings = settings
        self._parent = self._settings.get_dialog()
        self.conf = tgcm.core.Config.Config()
        self.connection_settings_manager = tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager()

        self.conn_manager = tgcm.core.Connections.ConnectionManager()
        self.theme_manager = tgcm.core.Theme.ThemeManager()

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'settings', self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'Connections.ui'), \
                prefix='cnnt')
        self.add(self.main_vbox)

        # -- Replace for having wrapping labels
        msg = _("Here, you can manage the connections saved in %s and order them according to your connection preferences.") % self.conf.get_app_name()
        self.top_info_label = replace_wrap_label(self.top_info_label, text=msg)
        msg = _("You can add new connections to %s by pressing the following buttons:") % self.conf.get_app_name()
        self.second_info_label = replace_wrap_label(self.second_info_label, text=msg)

        if tgcm.country_support == 'de':
            self.add_wwan_connection_button.set_label(_("New 2G/3G/4G connection"))

        is_log_enabled = self.conf.is_connection_log_enabled()
        self.activate_connection_log_checkbutton.set_active(is_log_enabled)
        self.connection_file_label.set_text(self.conf.get_connection_log_filepath())

        self.importer = tgcm.ui.MSD.MSDImporter()
        self.importer.connections_treeview = self.connections_treeview
        self.importer.connect("connection-imported", self.__connection_imported_cb)

        self.__create_connections_treeview()
        self.__load_connections_treeview()
        self.__connect_signals()
Example #50
0
    def __init__(self, title=None, parent=None, flags=0, buttons=None):
        gtk.Dialog.__init__(self, title=title, parent=parent, flags=flags, buttons=buttons)
        self.set_has_separator(False)
        self.set_modal (True)
        self.set_type_hint (gtk.gdk.WINDOW_TYPE_HINT_NORMAL)
        self.set_border_width(5)
        self.vbox.set_spacing(1)

        self.conf = tgcm.core.Config.Config()
        self._theme_manager = tgcm.core.Theme.ThemeManager()

        self.windows_dir = os.path.join(tgcm.windows_dir , self.__class__.__name__)

        gtk_builder_magic(self, \
            filename=os.path.join(self.windows_dir, 'Dialog.ui'), \
            prefix='d')

        self.standard_banner_area.hide()

        self.get_content_area().add(self.main_widget)

        # Connect some signals
        self.preferences_button.connect('clicked', self.on_preferences_button_clicked)
        self.help_button.connect('clicked', self.on_help_button_clicked)
Example #51
0
    def __init__(self):
        tgcm.info ("Init DERecharge")

        tgcm.ui.MSD.MSDAction.__init__(self, "prepay")

        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.taskbar_icon_name = 'prepay_taskbar.png'
        self.security_manager = tgcm.ui.MSD.MSDSecurityManager()
        self.action_dir = os.path.join(tgcm.actions_data_dir , self.codename)
        self.theme_manager = tgcm.core.Theme.ThemeManager()
        self.window_icon_path = self.theme_manager.get_icon('icons', self.taskbar_icon_name)

        gtk_builder_magic(self, \
                filename=os.path.join(self.action_dir, 'DERecharge_main.ui'), \
                prefix='der')

        gtk_builder_magic(self, \
                filename=os.path.join(self.action_dir, 'DERecharge_recharge.ui'), \
                prefix='der')

        gtk_builder_magic(self, \
                filename=os.path.join(self.action_dir, 'DERecharge_plan.ui'), \
                prefix='der')

        parent = tgcm.ui.ThemedDock().get_main_window()
        self.recharge_dialog = tgcm.ui.windows.Dialog( \
                parent = parent, buttons = (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE), \
                title = "%s - %s" % (self.conf.get_app_name(), "o2credit"))

        # FIXME: We are always loading unnecessary services independently of the
        # country support. Sometimes that situation causes many problems, for example
        # when a theme-related resource is required and it is only available in the
        # theme package of a specific country.
        if self.window_icon_path is not None:
            self.recharge_dialog.set_icon_from_file(self.window_icon_path)

        self.hovering_over_link = False
        self.hand_cursor = gtk.gdk.Cursor(gtk.gdk.HAND2)
        self.regular_cursor = gtk.gdk.Cursor(gtk.gdk.XTERM)

        self.recharge_button.connect("clicked", self.__recharge_button_cb, None)
        self.balance_button.connect("clicked", self.__balance_button_cb, None)
        self.plan_button.connect("clicked", self.__plan_button_cb, None)
        self.plan_management_textview.connect("key-press-event", self.__key_press_event)
        self.plan_management_textview.connect("event-after", self.__event_after)
        self.plan_management_textview.connect("motion-notify-event", self.__motion_notify_event)
        self.plan_management_textview.connect("visibility-notify-event", self.__visibility_notify_event)

        self.recharge_dialog.add(self.main_widget)
Example #52
0
    def __init__(self, settings):
        gtk.HBox.__init__(self)

        self._settings = settings
        self.conf = tgcm.core.Config.Config()
        self.device_manager = tgcm.core.FreeDesktop.DeviceManager()
        self.modem_manager = tgcm.core.MainModem.MainModem()
        self.wifi_manager = tgcm.core.MainWifi.MainWifi()

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'settings',
                                       self.__class__.__name__)

        gtk_builder_magic(self, \
                filename=os.path.join(self.widget_dir, 'Devices.ui'), \
                prefix='mm')

        #Device desc labels
        if tgcm.country_support == 'de':
            tech_name = '2G/3G/4G'
        else:
            tech_name = 'WWAN'
        msg = _('Choose the device you want to use with %s to connect to the %s networks. You can use a Mobile Internet Device.') % \
                (self.conf.get_app_name(), tech_name)
        self.device_wwan_label.set_markup(_('<b>%s Device</b>') % tech_name)
        self.mobile_desc_label = replace_wrap_label(self.mobile_desc_label,
                                                    text=msg)

        msg = _(
            'Choose the device you want to use with %s to connect to the Wi-Fi networks.'
        ) % self.conf.get_app_name()
        self.wifi_desc_label = replace_wrap_label(self.wifi_desc_label,
                                                  text=msg)

        #Devices treview
        self.wwan_model = DeviceModel(DEVICE_MODEM)
        self.wifi_model = DeviceModel(DEVICE_WLAN)

        col = gtk.TreeViewColumn("name")
        self.mobile_devices_treeview.append_column(col)
        cell = gtk.CellRendererText()
        col.pack_start(cell, True)
        col.add_attribute(cell, 'markup', 1)

        col = gtk.TreeViewColumn("name")
        self.wifi_devices_treeview.append_column(col)
        cell = gtk.CellRendererText()
        col.pack_start(cell, True)
        col.add_attribute(cell, 'markup', 1)

        self.mobile_devices_treeview.set_model(self.wwan_model)
        self.mobile_devices_treeview.set_headers_visible(False)
        self.wifi_devices_treeview.set_model(self.wifi_model)
        self.wifi_devices_treeview.set_headers_visible(False)

        # Buttons signals
        self.mobile_select_button.connect(
            "clicked", self.__mobile_select_button_clicked_cb, None)
        self.wifi_select_button.connect("clicked",
                                        self.__wifi_select_button_clicked_cb,
                                        None)
        self.mobile_unlock_button.connect(
            "clicked", self.__mobile_unlock_button_clicked_cb, None)

        # Listen to selection changes in WWAN devices list
        selection = self.mobile_devices_treeview.get_selection()
        selection.set_mode(gtk.SELECTION_SINGLE)
        selection.connect('changed', self.__on_wwan_device_selection_changed)

        # Listen to selection changes in Wi-Fi devices list
        selection = self.wifi_devices_treeview.get_selection()
        selection.set_mode(gtk.SELECTION_SINGLE)
        selection.connect('changed', self.__on_wifi_device_selection_changed)

        self.add(self.device_conf_widget)
Example #53
0
    def __create_dialog(self):
        self.windows_dir = os.path.join(tgcm.windows_dir , self.__class__.__name__)
        gtk_builder_magic(self, \
                filename=os.path.join(self.windows_dir, 'NewsServiceDialog.ui'), \
                prefix='nsd')

        self.dialog = tgcm.ui.windows.Dialog( \
                buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
        self.dialog.set_title(_("%s - News and Updates") % self.conf.get_app_name())
        self.dialog.add(self.main_widget)

        # Somewhat ugly hack to add a responseless button to the
        # action area of a gtk.Window
        self.refresh_button = gtk.Button(stock=gtk.STOCK_REFRESH)
        action_area = self.dialog.get_action_area()
        action_area.pack_start(self.refresh_button)
        action_area.reorder_child(self.refresh_button, 0)
        self.refresh_button.show()

        self.show_all_button.set_active(True)
        self.are_all_news_shown = True

        self.news_view = webkit.WebView()
        self.updates_view = webkit.WebView()

        viewport = gtk.Viewport()
        viewport.set_shadow_type(gtk.SHADOW_NONE)
        viewport.add(self.news_view)
        self.news_scrolledwindow.add(viewport)
        self.news_scrolledwindow.show_all()
        viewport = gtk.Viewport()
        viewport.set_shadow_type(gtk.SHADOW_NONE)
        viewport.add(self.updates_view)
        self.updates_scrolledwindow.add(viewport)
        self.updates_scrolledwindow.show_all()

        self.news_view.load_string ('', "text/html", "", "file:///")
        self.updates_view.load_string ('', "text/html", "", "file:///")

        ## News TreeView widgets

        column = gtk.TreeViewColumn(_('Title'))
        column.set_expand(True)
        self.news_treeview.append_column(column)

        cellpb = gtk.CellRendererPixbuf()
        cell = gtk.CellRendererText()

        column.pack_start(cellpb, False)
        column.pack_start(cell, True)

        column.set_attributes(cellpb, pixbuf=1)
        column.set_attributes(cell, markup=2)

        column = gtk.TreeViewColumn(_('Date'), \
                gtk.CellRendererText(), \
                markup=3)
        self.news_treeview.append_column(column)

        self.news_model = NewsTreeModel()
        model = gtk.TreeModelSort(self.news_model)
        model.set_sort_column_id(4, gtk.SORT_DESCENDING)
        self.news_model_filtered = model.filter_new()
        self.news_model_filtered.set_visible_func(self.__show_unread_filter, data=None)
        self.news_treeview.set_model(self.news_model_filtered)

        ## Update TreeView widgets

        column = gtk.TreeViewColumn(_('Title'))
        column.set_expand(True)
        self.updates_treeview.append_column(column)

        cellpb = gtk.CellRendererPixbuf()
        cell = gtk.CellRendererText()

        column.pack_start(cellpb, False)
        column.pack_start(cell, True)

        column.set_attributes(cellpb, pixbuf=1)
        column.set_attributes(cell, markup=2)

        column = gtk.TreeViewColumn(_('Date'), \
                gtk.CellRendererText(), \
                markup=3)
        self.updates_treeview.append_column(column)

        column = gtk.TreeViewColumn(_('Size'), \
                gtk.CellRendererText(), \
                markup=5)
        self.updates_treeview.append_column(column)

        self.updates_model = UpdatesTreeModel()
        model = gtk.TreeModelSort(self.updates_model)
        model.set_sort_column_id(4, gtk.SORT_DESCENDING)
        model = model.filter_new()
        model.set_visible_func(self.__show_uninstalled_filter, data=None)
        self.updates_treeview.set_model(model)

        # News and Updates selection change signals
        elements = ((self.news_treeview, self.__on_news_treeview_changed_cb), \
                (self.updates_treeview, self.__on_updates_treeview_changed_cb))
        for treeview, callback in elements:
            treeselection = treeview.get_selection()
            treeselection.connect('changed', callback, None)
            treeselection.set_mode(gtk.SELECTION_SINGLE)

        for model in (self.news_model, self.updates_model):
            model.register_datamodel_change_callback(self.__on_view_datamodel_change_cb)

        self.__update_tabs_label_numbers()

        # Refresh sensitive state of Refresh, Open and Install buttons
        self.__refresh_sensitive_state_buttons()

        self.refresh_button.connect('clicked', self.__on_refresh_button_clicked_cb, None)
        self.open_link_button.connect("clicked", self.__open_link_button_cb, None)
        self.install_button.connect("clicked", self.__install_button_cb, None)
        self.sab_handler = self.show_all_button.connect("toggled", self.__show_all_button_cb, None)
        self.sub_handler = self.show_unread_button.connect("toggled", self.__show_unread_button_cb, None)
Example #54
0
    def __init__(self, dock_launcher=False, bookmarks_list_store=None):
        tgcm.info("Init MSDABookmarks")
        tgcm.ui.MSD.MSDAction.__init__(self, "favorites")

        self.dock_launcher = dock_launcher
        self.connection_settings_manager = tgcm.core.ConnectionSettingsManager.ConnectionSettingsManager(
        )

        self.action_dir = os.path.join(tgcm.actions_data_dir, self.codename)
        self.taskbar_icon_name = 'favorites_taskbar.png'

        self.connection_manager = tgcm.core.Connections.ConnectionManager()
        self.bookmarks_manager = tgcm.core.Bookmarks.BookmarksManager()
        self.security_manager = tgcm.ui.MSD.MSDSecurityManager()
        self.conf = tgcm.core.Config.Config()
        self.theme_manager = tgcm.core.Theme.ThemeManager()
        self.xml_theme_manager = tgcm.core.XMLTheme.XMLTheme()

        self.conf.connect("bookmark-added", self.__reload_bookmarks)
        self.conf.connect("bookmark-deleted", self.__reload_bookmarks)
        self.conf.connect("bookmark-changed", self.__reload_bookmarks)

        self.connection_manager.connect("connections_changed",
                                        self.__connection_manager_changed)

        self.add_bookmark_button = self.get_prefs_widget("add_bookmark_button")
        self.edit_bookmark_button = self.get_prefs_widget(
            "edit_bookmark_button")
        self.del_bookmark_button = self.get_prefs_widget("del_bookmark_button")
        self.open_bookmark_button = self.get_prefs_widget(
            "open_bookmark_button")
        self.bookmarks_treeview = self.get_prefs_widget("bookmarks_treeview")

        gtk_builder_magic(self, \
                filename=os.path.join(self.action_dir, 'MSDABookmarks_dialog.ui'), \
                prefix='bmk')

        self.window_icon_path = self.theme_manager.get_icon(
            'icons', self.taskbar_icon_name)
        self.bookmark_dialog.set_icon_from_file(self.window_icon_path)

        self.bd_is_add_dialog = None
        self.bd_show_confirmation = False

        # -- Favorites service dialog, it is shown when 'launch_action()' is executed
        self.dialog = tgcm.ui.windows.ServiceWindow('banner.favorites',
                                                    _("Favourites"))
        self.dialog.set_icon_from_file(self.window_icon_path)
        self.dialog.resize(750, 500)
        self.dialog_bookmark_container = None

        if tgcm.country_support == "uk":
            self.bd_connection_help_label.set_text(
                _("(*) If you do not select this option, the connection used will be the one that is currently active or the preferred O2 connection."
                  ))

        # Bookmarks confirmation dialog
        gtk_builder_magic(self, \
                filename=os.path.join(self.action_dir, 'MSDABookmarks_confirm.ui'), \
                prefix='bmk')

        self.bookmark_confirmation_dialog.set_icon_from_file(
            self.window_icon_path)
        self.bookmark_confirmation_icon.set_from_file(self.window_icon_path)

        self.importer = tgcm.ui.MSD.MSDImporter()
        self.importer.bookmarks_treeview = self.bookmarks_treeview
        self.importer.connect("bookmark-imported", self.__bookmark_imported_cb)

        self.dialog.connect('delete-event', self.__dialog_close_event_cb)
        self.dialog.close_button.connect('clicked',
                                         self.__dialog_close_event_cb)

        self.bookmark_dialog.connect("delete_event",
                                     self.__delete_event_bookmarks_cb)
        if self.bookmarks_manager.can_create_bookmarks():
            self.add_bookmark_button.connect("clicked",
                                             self.__add_bookmark_button_cb,
                                             None)
        else:
            self.add_bookmark_button.set_sensitive(False)
        self.edit_bookmark_button.connect("clicked",
                                          self.__edit_bookmark_button_cb, None)
        self.del_bookmark_button.connect("clicked",
                                         self.__del_bookmark_button_cb, None)
        self.open_bookmark_button.connect('clicked',
                                          self.__open_bookmark_button_cb, None)

        self.bookmark_confirmation_dialog.connect(
            "delete_event", self.__delete_event_bookmark_confirmation_cb)
        self.bookmark_confirmation_ok_button.connect(
            "clicked", self.__ok_bookmark_confirmation_button_cb, None)
        self.bookmark_confirmation_dont_show.connect(
            "toggled", self.__dont_show_bookmark_confirmation_cb, None)

        self.bd_url_radio_button.connect("toggled",
                                         self.__bd_url_radio_button_cb, None)
        self.bd_check_connection.connect("toggled",
                                         self.__bd_check_connection_cb, None)
        self.bd_cancel_button.connect("clicked", self.__bd_cancel_button_cb,
                                      None)
        self.bd_ok_button.connect("clicked", self.__bd_ok_button_cb, None)

        treeselection = self.bookmarks_treeview.get_selection()
        treeselection.connect("changed",
                              self.__bookmarks_treview_row_changed_cb, None)
        self.__bookmarks_treview_row_changed_cb(treeselection, None)

        #Populate bd_connection_combobox
        liststore = self.conn_manager.get_connections_model()
        self.bd_connection_combobox.set_model(liststore)
        cell = gtk.CellRendererText()
        self.bd_connection_combobox.pack_start(cell, True)
        self.bd_connection_combobox.add_attribute(cell, 'text', 1)
        self.bd_connection_combobox.set_active(0)

        #Populate bookmarks in the bookmarks tab treeview
        liststore = gtk.ListStore(tgcm.core.Bookmarks.Bookmark, gtk.gdk.Pixbuf,
                                  str, long, str)

        name_column = gtk.TreeViewColumn('bookmark_name')
        self.bookmarks_treeview.append_column(name_column)

        icon_cell = gtk.CellRendererPixbuf()
        name_cell = gtk.CellRendererText()

        name_column.pack_start(icon_cell, False)
        name_column.pack_start(name_cell, True)

        name_column.set_attributes(icon_cell, pixbuf=1)
        name_column.set_attributes(name_cell, text=2)

        if self.dock_launcher == True:
            url_column = gtk.TreeViewColumn('bookmark_url')
            self.bookmarks_treeview.append_column(url_column)

            url_cell = gtk.CellRendererText()
            url_column.pack_start(url_cell, True)

            url_column.set_attributes(url_cell, text=4)

        self.bookmarks_treeview.get_selection().set_mode(gtk.SELECTION_SINGLE)
        self.bookmarks_treeview.set_headers_visible(False)

        self.bookmark_icon_pixbuf = self.xml_theme_manager.get_pixbuf(
            'favorite-item')

        if bookmarks_list_store == None:
            self.bookmarks_treeview.set_model(liststore)
            self.load_bookmarks()
            self.bookmarks_treeview.connect(
                "row-activated", self.__on_bookmarks_edit_row_activated)
        else:
            self.bookmarks_treeview.set_model(bookmarks_list_store)
            self.bookmarks_treeview.connect("row-activated",
                                            self.__on_bookmarks_row_activated)
Example #55
0
    def __init__(self):
        gtk.HBox.__init__(self)

        self._theme_path = 'dock/TrafficZone'

        self.widget_dir = os.path.join(tgcm.widgets_dir, 'traffic',
                                       self.__class__.__name__)
        self.traffic_manager = tgcm.core.TrafficManager.TrafficManager()
        self.conf = tgcm.core.Config.Config(tgcm.country_support)
        self._mcontroller = tgcm.core.FreeDesktop.DeviceManager()
        self._theme_manager = tgcm.core.Theme.ThemeManager()

        if tgcm.country_support == "uk":
            gtk_builder_magic(self, \
                    filename=os.path.join(self.widget_dir, 'BillingInfoUK.ui'), \
                    prefix='bi')
            self.my_details_button.connect("clicked",
                                           self.__on_my_details_button_clicked,
                                           None)
        elif tgcm.country_support == "es":
            gtk_builder_magic(self, \
                    filename=os.path.join(self.widget_dir, 'BillingInfoES.ui'), \
                    prefix='bi')
        else:
            gtk_builder_magic(self, \
                    filename=os.path.join(self.widget_dir, 'BillingInfo.ui'), \
                    prefix='bi')

        self.add(self.main_widget)

        self.datatransfered_image = gtk.image_new_from_file(
            self._theme_manager.get_icon(self._theme_path, 'loads_0.png'))

        if tgcm.country_support == "uk":
            self.eventbox1.modify_bg(gtk.STATE_NORMAL,
                                     gtk.gdk.color_parse("white"))
            self.eventbox2.modify_bg(gtk.STATE_NORMAL,
                                     gtk.gdk.color_parse("white"))
            self.eventbox3.modify_bg(gtk.STATE_NORMAL,
                                     gtk.gdk.color_parse("white"))

            self.datatransfered_alignment.hide()

        elif tgcm.country_support == "es":
            self.sms_total_title_label.set_markup('<small>%s</small>' %
                                                  self.conf.get_company_name())
            self.main_widget.modify_bg(gtk.STATE_NORMAL,
                                       gtk.gdk.color_parse("white"))

        else:
            self.sms_total_title_label.set_markup('<small>%s</small>' %
                                                  self.conf.get_company_name())
            self.main_widget.modify_bg(gtk.STATE_NORMAL,
                                       gtk.gdk.color_parse("white"))
            self.datatransferedprogressbar_alignment.add(
                self.datatransfered_image)
            self.datatransferedprogressbar_alignment.show_all()
            self.tl_vbox.set_tooltip_text(_("Data limit at maximun speed"))
            self.ad_vbox.set_tooltip_text(_("Available data at maximun speed"))

        # Load initial form values
        imsi = self.conf.get_last_imsi_seen()
        data = self.traffic_manager.get_current_traffic_data()
        self.__load_data(data['data_used'], data['data_used_roaming'],
                         data['data_limit'], data['billing_period'])
        self.__load_sms_info(self.conf, imsi)

        # Connect signals
        self.traffic_manager.connect('traffic-data-changed',
                                     self.__on_traffic_data_changed)
        self.conf.connect('last-imsi-seen-changed',
                          self.__on_last_imsi_changed)
        self.conf.connect("sms-counter-changed", self.__on_sms_counter_changed)
        self.conf.connect("sms-counter-reset", self.__on_sms_counter_reset)