src/modules/gui/searcherror.py
author Shawn Walker <shawn.walker@oracle.com>
Fri, 07 Oct 2011 11:53:41 -0700
branch2010.2H
changeset 2572 20cf41d565de
permissions -rw-r--r--
7098585 pkg support for upgrading to fcs release needed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2572
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     1
#!/usr/bin/python
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     2
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     4
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     8
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    13
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    19
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    21
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    22
# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    23
# Use is subject to license terms.
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    24
#
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    25
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    26
import sys
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    27
try:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    28
        import pango
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    29
except ImportError:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    30
        sys.exit(1)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    31
import pkg.gui.misc as gui_misc
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    32
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    33
class SearchError:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    34
        def __init__(self, builder, gconf, parent):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    35
                self.gconf = gconf
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    36
                self.parent = parent
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    37
                self.api_search_error_dialog = \
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    38
                    builder.get_object("api_search_error")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    39
                self.api_search_error_textview = \
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    40
                    builder.get_object("api_search_error_text")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    41
                self.api_search_checkbox = \
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    42
                    builder.get_object("api_search_checkbox")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    43
                self.api_search_button = \
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    44
                    builder.get_object("api_search_button")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    45
                infobuffer = self.api_search_error_textview.get_buffer()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    46
                infobuffer.create_tag("bold", weight=pango.WEIGHT_BOLD)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    47
                self.pylintstub = None
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    48
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    49
        def setup_signals(self):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    50
                signals_table = [
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    51
                    (self.api_search_checkbox, "toggled",
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    52
                     self.__on_api_search_checkbox_toggled),
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    53
                    (self.api_search_button, "clicked",
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    54
                     self.__on_api_search_button_clicked),
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    55
                    (self.api_search_error_dialog, "delete_event",
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    56
                     self.__on_api_search_error_delete_event)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    57
                    ]
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    58
                for widget, signal_name, callback in signals_table:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    59
                        widget.connect(signal_name, callback)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    60
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    61
        def set_modal_and_transient(self, parent_window):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    62
                gui_misc.set_modal_and_transient(self.api_search_error_dialog,
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    63
                    parent_window)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    64
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    65
        def __on_api_search_error_delete_event(self, widget, event):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    66
                self.__on_api_search_button_clicked(None)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    67
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    68
        def __on_api_search_button_clicked(self, widget):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    69
                self.api_search_error_dialog.hide()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    70
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    71
        def __on_api_search_checkbox_toggled(self, widget):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    72
                active = self.api_search_checkbox.get_active()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    73
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    74
                repos = self.parent.get_current_repos_with_search_errors()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    75
                if len(repos) > 0:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    76
                        if active:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    77
                                for pub, err_type, err_str in  repos:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    78
                                        if pub not in self.gconf.not_show_repos:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    79
                                                self.gconf.not_show_repos += pub + ","
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    80
                                        self.pylintstub = err_type
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    81
                                        self.pylintstub = err_str
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    82
                        else:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    83
                                for pub, err_type, err_str in repos:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    84
                                        self.gconf.not_show_repos = \
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    85
                                            self.gconf.not_show_repos.replace(
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    86
                                            pub + ",", "")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    87
                        self.gconf.set_not_show_repos(self.gconf.not_show_repos)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    88
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    89
        def display_search_errors(self, show_all):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    90
                repos = self.parent.get_current_repos_with_search_errors()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    91
                infobuffer = self.api_search_error_textview.get_buffer()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    92
                infobuffer.set_text("")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    93
                textiter = infobuffer.get_end_iter()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    94
                for pub, err_type, err_str in repos:
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    95
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    96
                        if show_all or (pub not in self.gconf.not_show_repos):
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    97
                                infobuffer.insert_with_tags_by_name(textiter,
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    98
                                    "%(pub)s (%(err_type)s)\n" % {"pub": pub,
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    99
                                    "err_type": err_type}, "bold")
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   100
                                infobuffer.insert(textiter, "%s\n" % (err_str))
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   101
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   102
                self.api_search_checkbox.set_active(False)
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   103
                self.api_search_error_dialog.show()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   104
                self.api_search_button.grab_focus()
20cf41d565de 7098585 pkg support for upgrading to fcs release needed
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   105