~ubuntu-branches/ubuntu/raring/software-center/raring-proposed

« back to all changes in this revision

Viewing changes to softwarecenter/config.py

  • Committer: Package Import Robot
  • Author(s): Michael Vogt
  • Date: 2012-10-11 15:33:05 UTC
  • mfrom: (195.1.18 quantal)
  • Revision ID: package-import@ubuntu.com-20121011153305-fm5ln7if3rpzts4n
Tags: 5.4.1.1
* lp:~mvo/software-center/reinstall-previous-purchase-token-fix:
  - fix reinstall previous purchases that have a system-wide
    license key LP: #1065481
* lp:~mvo/software-center/lp1060106:
  - Add missing gettext init for utils/update-software-center-agent
    (LP: #1060106)

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
LOG = logging.getLogger(__name__)
31
31
 
32
32
 
33
 
class SoftwareCenterConfig(SafeConfigParser):
 
33
class SoftwareCenterConfig(object, SafeConfigParser):
 
34
 
 
35
    SECTIONS = ("general", "reviews")
34
36
 
35
37
    def __init__(self, config):
 
38
        object.__init__(self)
36
39
        SafeConfigParser.__init__(self)
 
40
        # imported here to avoid cycle
37
41
        from utils import safe_makedirs
38
42
        safe_makedirs(os.path.dirname(config))
39
 
        # we always want this section, even on fresh installs
40
 
        self.add_section("general")
 
43
        # we always want this sections, even on fresh installs
 
44
        for section in self.SECTIONS:
 
45
            self.add_section(section)
 
46
 
41
47
        # read the config
42
48
        self.configfile = config
43
49
        try:
67
73
                     self.configfile, e)
68
74
            pass
69
75
 
70
 
 
 
76
    # generic property helpers
 
77
    def _generic_get(self, option, section="general", default=""):
 
78
        if not self.has_option(section, option):
 
79
            self.set(section, option, default)
 
80
        return self.get(section, option)
 
81
 
 
82
    def _generic_set(self, option, value, section="general"):
 
83
        self.set(section, option, value)
 
84
 
 
85
    def _generic_getbool(self, option, section="general", default=False):
 
86
        if not self.has_option(section, option):
 
87
            self.set(section, option, str(default))
 
88
        return self.getboolean(section, option)
 
89
 
 
90
    def _generic_setbool(self, option, value, section="general"):
 
91
        if value:
 
92
            self.set(section, option, "True")
 
93
        else:
 
94
            self.set(section, option, "False")
 
95
 
 
96
    # our properties that will automatically sync with the configfile
 
97
    add_to_unity_launcher = property(
 
98
        lambda self: self._generic_getbool("add_to_launcher", default=True),
 
99
        lambda self, value: self._generic_setbool("add_to_launcher", value),
 
100
        None,
 
101
        "Defines if apps should get added to the unity launcher")
 
102
    app_window_maximized = property(
 
103
        lambda self: self._generic_getbool("maximized", default=False),
 
104
        lambda self, value: self._generic_setbool("maximized", value),
 
105
        None,
 
106
        "Defines if apps should be started maximized")
 
107
    recommender_uuid = property(
 
108
        # remove any dashes for the case where a user has opted in before
 
109
        # we required UUIDs without dashes
 
110
        lambda self: self._generic_get("recommender_uuid").replace("-", ""),
 
111
        lambda self, value: self._generic_set("recommender_uuid",
 
112
                                              value),
 
113
        None,
 
114
        "The UUID generated for the recommendations")
 
115
    recommender_profile_id = property(
 
116
        lambda self: self._generic_get("recommender_profile_id"),
 
117
        lambda self, value: self._generic_set("recommender_profile_id", value),
 
118
        None,
 
119
        "The recommendation profile id of the user")
 
120
    recommender_opt_in_requested = property(
 
121
        lambda self: self._generic_getbool(
 
122
            "recommender_opt_in_requested", default=False),
 
123
        lambda self, value: self._generic_setbool(
 
124
            "recommender_opt_in_requested", value),
 
125
        None,
 
126
        "The user has requested a opt-in and its pending")
 
127
    user_accepted_tos = property(
 
128
        lambda self: self._generic_getbool("accepted_tos", default=False),
 
129
        lambda self, value: self._generic_setbool("accepted_tos", value),
 
130
        None,
 
131
        "The user has accepted the terms-of-service")
 
132
    email = property(
 
133
        lambda self: self._generic_get("email", default=""),
 
134
        lambda self, value: self._generic_set("email", value),
 
135
        None,
 
136
        "The prefered email of the user, automatically set via the ubuntu-sso")
 
137
    # the review section
 
138
    reviews_post_via_gwibber = property(
 
139
        lambda self: self._generic_getbool(
 
140
            "gwibber_send", section="reviews", default=False),
 
141
        lambda self, value: self._generic_setbool(
 
142
            "gwibber_send", value, section="reviews"),
 
143
        None,
 
144
        "Also post reviews via gwibber")
 
145
    reviews_gwibber_account_id = property(
 
146
        lambda self: self._generic_get(
 
147
            "account_id", section="reviews", default=""),
 
148
        lambda self, value: self._generic_setbool(
 
149
            "account_id", value, section="reviews"),
 
150
        None,
 
151
        "The account id to use when sending via gwibber")
 
152
 
 
153
    # app_window_size is special as its a tuple
 
154
    def _app_window_size_get(self):
 
155
        size_as_string = self._generic_get("size", default="-1, -1")
 
156
        return [int(v) for v in size_as_string.split(",")]
 
157
 
 
158
    def _app_window_size_set(self, size_tuple):
 
159
        size_as_string = "%s, %s" % (size_tuple[0], size_tuple[1])
 
160
        self._generic_set("size", size_as_string)
 
161
    app_window_size = property(_app_window_size_get, _app_window_size_set,
 
162
        None,
 
163
        "Defines the size of the application window as a tuple (x,y)")
 
164
 
 
165
 
 
166
# one global instance of the config
71
167
_software_center_config = None
72
168
 
73
169