67
73
self.configfile, e)
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)
82
def _generic_set(self, option, value, section="general"):
83
self.set(section, option, value)
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)
90
def _generic_setbool(self, option, value, section="general"):
92
self.set(section, option, "True")
94
self.set(section, option, "False")
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),
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),
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",
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),
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),
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),
131
"The user has accepted the terms-of-service")
133
lambda self: self._generic_get("email", default=""),
134
lambda self, value: self._generic_set("email", value),
136
"The prefered email of the user, automatically set via the ubuntu-sso")
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"),
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"),
151
"The account id to use when sending via gwibber")
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(",")]
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,
163
"Defines the size of the application window as a tuple (x,y)")
166
# one global instance of the config
71
167
_software_center_config = None