Permalink
Switch branches/tags
workflow-change-base ttt-tag-will-be-removed taroon-pre-package-changes taroon-merge-point taroon-emd-base taroon-base start sent-alpnet s390-beforeheadmerge rhel5-base rhel4-base r6.1.beta1 r4-3-17 r0-49 r0-9-2 r0-9-1 r0-9-0 r0-8-14 r0-8-11 r0-8-10 r0-8-7 r0-8-6 r0-8-2 r0-7-11 r0-7-9 r0-7-5 r0-7-4 r0-7-3 r0-7-2 r0-7-1 pre-tab-convert pre-newcomps merged-to-taroon merge.with.pot kudzu-r0-98-10 kudzu-r0-97 kudzu-r0-69 kudzu-r0-66 kudzu-r0-46 kudzu-r0-44 i18n-update-from-sources-07-20-2001 help hampton-post-HEAD-merge fc5-base fc4-base fc3-base f17-pre-noloader-merge f8-base f7-base desc config-migrate-base before.390.merge before.removing.utc before.po.msgmerge before.libdir.changes before.kudzu.loader.patch before.jj.patch2 before.bootloader.merge before-taroon-updates before-taroon-merge before-taroon-merge-2 before-rpm-4.1 before-parted-1-6-changes before-nfs-mount-upgrade before-loader-switch before-hampton-merge before-ccb-qu2-cleanup before-cambridge-monitor-query-change before-6-1-merge b4.msf.really.broke.x ancaonda-fairfax-beta-3 anaconda.8.0.90 anaconda-sparc-alpha-base anaconda-s390-tag7 anaconda-s390-tag5 anaconda-s390-tag4 anaconda-s390-tag3 anaconda-s390-tag2 anaconda-s390-tag anaconda-s390-new-tag6 anaconda-s390-GA2 anaconda-parted-base anaconda-hampton-rescueloader-base anaconda-hampton-beta1-5 anaconda-hampton-beta1-4 anaconda-hampton-beta1-3 anaconda-hampton-beta1-2 anaconda-hampton-beta-1 anaconda-hampton-base anaconda-gtk-2-0-base anaconda-fairfax-rc2 anaconda-fairfax-rc1 anaconda-fairfax-beta-3 anaconda-fairfax-beta-2 anaconda-fairfax-beta-1 anaconda-fairfax-beta-1-2 anaconda-dispatch-base anaconda-before-rpm-head-changes anaconda-before-japanese-merge anaconda-before-2.6
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
98 lines (80 sloc) 3.74 KB
# Base classes for Spokes
#
# Copyright (C) 2011 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# the GNU General Public License v.2, or (at your option) any later version.
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY expressed or implied, including the implied warranties of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details. You should have received a copy of the
# GNU General Public License along with this program; if not, write to the
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the
# source code or documentation are not subject to the GNU General Public
# License and may only be used or replicated with the express permission of
# Red Hat, Inc.
from pyanaconda.ui import common
from pyanaconda.ui.gui import GUIObject
from pyanaconda.ui.gui.utils import gtk_call_once
from pyanaconda import ihelp
from pyanaconda.anaconda_loggers import get_module_logger
log = get_module_logger(__name__)
__all__ = ["StandaloneSpoke", "NormalSpoke"]
# Inherit abstract methods from common.StandaloneSpoke
# pylint: disable=abstract-method
class StandaloneSpoke(GUIObject, common.StandaloneSpoke):
"""
.. inheritance-diagram:: StandaloneSpoke
:parts: 3
"""
handles_autostep = True
def __init__(self, data, storage, payload, instclass):
GUIObject.__init__(self, data)
common.StandaloneSpoke.__init__(self, storage, payload, instclass)
# Add a continue-clicked handler to save the data before leaving the window
self.window.connect("continue-clicked", self._on_continue_clicked)
def _on_continue_clicked(self, window, user_data=None):
self.apply()
def _doPostAutostep(self):
# we are done, re-emit the continue clicked signal we "consumed" previously
# so that the Anaconda GUI can switch to the next screen
gtk_call_once(self.window.emit, "continue-clicked")
# Inherit abstract methods from common.NormalSpoke
# pylint: disable=abstract-method
class NormalSpoke(GUIObject, common.NormalSpoke):
"""
.. inheritance-diagram:: NormalSpoke
:parts: 3
"""
def __init__(self, data, storage, payload, instclass):
GUIObject.__init__(self, data)
common.NormalSpoke.__init__(self, storage, payload, instclass)
# Add a help handler
self.window.connect_after("help-button-clicked", self._on_help_clicked)
# warning message
self._current_warning_message = ""
def _on_help_clicked(self, window):
# the help button has been clicked, start the yelp viewer with
# content for the current spoke
ihelp.start_yelp(ihelp.get_help_path(self.helpFile, self.instclass))
def on_back_clicked(self, button):
# Notify the hub that we're finished.
# The hub will be the current-action of the main window.
self.main_window.current_action.spoke_done(self)
def clear_info(self):
"""Clear the last set warning message and call the ancestors method."""
self._current_warning_message = ""
super().clear_info()
def show_warning_message(self, message):
"""Show error message in the status bar.
As set_warning() animates the error bar only set new message
when it is different from the current one.
"""
if not message:
self.clear_info()
elif self._current_warning_message != message:
self.clear_info()
self._current_warning_message = message
self.set_warning(message)