2
# -*- coding: utf-8 -*-
4
# Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
5
# This program is free software: you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License version 3, as published
7
# by the Free Software Foundation.
9
# This program is distributed in the hope that it will be useful, but
10
# WITHOUT ANY WARRANTY; without even the implied warranties of
11
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
12
# PURPOSE. See the GNU General Public License for more details.
14
# You should have received a copy of the GNU General Public License along
15
# with this program. If not, see <http://www.gnu.org/licenses/>.
22
from shutil import copy
24
class CloudConfig(threading.Thread):
25
def __init__(self, sysdaemon):
26
self.sysdaemon = sysdaemon
27
self.conf = ConfigParser.ConfigParser()
28
self.home = os.path.expandvars('$HOME')
29
self.youker_path = './'
30
self.kuaipan_path = ''
33
def write_conf(self, section, conf_id, conf_schema, conf_path, conf_key, conf_type):
34
value = gsettings.get(conf_schema, conf_path, conf_key, conf_type)
35
if (conf_id in section):
36
self.conf.set(conf_id, 'value', str(value))
38
self.conf.add_section(conf_id)
39
self.conf.set(conf_id, 'schema', conf_schema)
40
self.conf.set(conf_id, 'path', conf_path)
41
self.conf.set(conf_id, 'key', conf_key)
42
self.conf.set(conf_id, 'type', conf_type)
43
self.conf.set(conf_id, 'value', str(value))
45
# Save system configuration
46
def save_configuration_to_local_file(self, file_name):
47
self.conf.read(file_name)
48
sections = self.conf.sections()
50
# 桌面图标显示控制-----------------------------
51
self.write_conf(sections, 'show_desktop_icons',
52
'org.gnome.desktop.background',
53
None, 'show-desktop-icons', 'boolean')
54
self.write_conf(sections, 'show_homefolder',
55
'org.gnome.nautilus.desktop',
56
None, 'home-icon-visible', 'boolean')
57
self.write_conf(sections, 'show_network',
58
'org.gnome.nautilus.desktop',
59
None, 'network-icon-visible', 'boolean')
60
self.write_conf(sections, 'show_trash',
61
'org.gnome.nautilus.desktop',
62
None, 'trash-icon-visible', 'boolean')
63
self.write_conf(sections, 'show_devices',
64
'org.gnome.nautilus.desktop',
65
None, 'volumes-visible', 'boolean')
67
# 启动器设置----------------------------------
68
self.write_conf(sections, 'launcher_autohide',
69
'org.compiz.unityshell',
70
'/org/compiz/profiles/unity/plugins/unityshell/',
71
'launcher-hide-mode', 'int')
72
self.write_conf(sections, 'launcher_icon_size',
73
'org.compiz.unityshell',
74
'/org/compiz/profiles/unity/plugins/unityshell/',
77
# 触摸板设置-----------------------------------
78
self.write_conf(sections, 'touchpad_enable',
79
'org.gnome.settings-daemon.peripherals.touchpad',
80
None, 'touchpad-enabled', 'boolean')
81
self.write_conf(sections, 'touch_horizontal_scrolling',
82
'org.gnome.settings-daemon.peripherals.touchpad',
83
None, 'horiz-scroll-enabled', 'boolean')
84
self.write_conf(sections, 'type_scroll_bar',
85
'com.canonical.desktop.interface',
86
None, 'scrollbar-mode', 'string')
87
self.write_conf(sections, 'touchpad_scrolling_mode',
88
'org.gnome.settings-daemon.peripherals.touchpad',
89
None, 'scroll-method', 'string')
91
# 字体设置-------------------------------------
92
self.write_conf(sections, 'default_font',
93
'org.gnome.desktop.interface',
94
None, 'font-name', 'string')
95
self.write_conf(sections, 'desktop_font',
96
'org.gnome.nautilus.desktop',
97
None, 'font', 'string')
98
self.write_conf(sections, 'document_font',
99
'org.gnome.desktop.interface',
100
None, 'document-font-name', 'string')
101
self.write_conf(sections, 'monospace_font',
102
'org.gnome.desktop.interface',
103
None, 'monospace-font-name', 'string')
104
self.write_conf(sections, 'window_title_font',
105
'org.gnome.desktop.wm.preferences',
106
None, 'titlebar-font', 'string')
107
self.write_conf(sections, 'font_zoom',
108
'org.gnome.desktop.interface',
109
None, 'text-scaling-factor', 'double')
110
self.write_conf(sections, 'font_hinting',
111
'org.gnome.settings-daemon.plugins.xsettings',
112
None, 'hinting', 'string')
113
self.write_conf(sections, 'font_antialiasing',
114
'org.gnome.settings-daemon.plugins.xsettings',
115
None, 'antialiasing', 'string')
117
# 主题设置-------------------------------------
118
#self.write_conf(sections, 'gtk_theme',
119
# 'org.gnome.desktop.interface',
120
# None, 'gtk-theme', 'string')
121
self.write_conf(sections, 'window_theme',
122
'org.gnome.desktop.wm.preferences',
123
None, 'theme', 'string')
124
self.write_conf(sections, 'icon_theme',
125
'org.gnome.desktop.interface',
126
None, 'icon-theme', 'string')
128
# 窗口设置--------------------------------------
129
self.write_conf(sections, 'window_button',
130
'org.gnome.desktop.wm.preferences',
131
None, 'button-layout', 'string')
132
self.write_conf(sections, 'menus_have_icons',
133
'org.gnome.desktop.interface',
134
None, 'menus-have-icons', 'boolean')
135
self.write_conf(sections, 'titlebar_wheel',
137
None, 'mouse-wheel-action', 'string')
138
self.write_conf(sections, 'titlebar_double',
139
'org.gnome.desktop.wm.preferences',
140
None, 'action-double-click-titlebar', 'string')
141
self.write_conf(sections, 'titlebar_middle',
142
'org.gnome.desktop.wm.preferences',
143
None, 'action-middle-click-titlebar', 'string')
144
self.write_conf(sections, 'titlebar_right',
145
'org.gnome.desktop.wm.preferences',
146
None, 'action-right-click-titlebar', 'string')
148
# 文件管理器-----------------------------------
149
self.write_conf(sections, 'location_replace_pathbar',
150
'org.gnome.nautilus.preferences',
151
None, 'always-use-location-entry', 'boolean')
152
self.write_conf(sections, 'auto_mount_media',
153
'org.gnome.desktop.media-handling',
154
None, 'automount', 'boolean')
155
self.write_conf(sections, 'auto_open_folder',
156
'org.gnome.desktop.media-handling',
157
None, 'automount-open', 'boolean')
158
self.write_conf(sections, 'prompt_autorun_programs',
159
'org.gnome.desktop.media-handling',
160
None, 'autorun-never', 'boolean')
161
self.write_conf(sections, 'thumbnail_icon_size',
162
'org.gnome.nautilus.icon-view',
163
None, 'thumbnail-size', 'int')
164
self.write_conf(sections, 'thumbnail_cache_time',
165
'org.gnome.desktop.thumbnail-cache',
166
None, 'maximum-age', 'int')
167
self.write_conf(sections, 'thumbnail_cache_size',
168
'org.gnome.desktop.thumbnail-cache',
169
None, 'maximum-size', 'int')
171
fd = open(file_name, 'w')
176
def setconf(self, conf_id):
177
conf_schema = self.conf.get(conf_id, 'schema')
178
conf_path = self.conf.get(conf_id, 'path')
179
if conf_path == 'None':
181
conf_key = self.conf.get(conf_id, 'key')
182
conf_type = self.conf.get(conf_id, 'type')
183
if conf_type == 'boolean' :
184
conf_value = self.conf.getboolean(conf_id, 'value')
185
elif conf_type == 'int' :
186
conf_value = self.conf.getint(conf_id, 'value')
187
elif conf_type == 'double' or conf_type == 'float' :
188
conf_value = self.conf.getfloat(conf_id, 'value')
190
conf_value = self.conf.get(conf_id, 'value')
191
#gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
193
if conf_id == 'window_button':
194
value = gsettings.get('org.gnome.desktop.wm.preferences',
195
None, 'button-layout', 'string')
196
left_list = ['close,minimize,maximize:', 'close,maximize,minimize:']
197
right_list = [':minimize,maximize,close', ':maximize,minimize,close']
198
if value in left_list and conf_value in right_list:
199
gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
200
self.sysdaemon.download_cloud_conf_signal('window_button')
201
elif value in right_list and conf_value in left_list:
202
gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
203
self.sysdaemon.download_cloud_conf_signal('window_button')
205
value = gsettings.get(conf_schema, conf_path, conf_key, conf_type)
206
if value != conf_value:
207
gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
208
self.sysdaemon.download_cloud_conf_signal(conf_id)
210
#----------------desktop icon settings----------------
211
#if conf_id == 'show_desktop_icons':
212
# value = gsettings.get('org.gnome.desktop.background',
213
# None, 'show-desktop-icons', 'boolean')
214
# if value != conf_value:
215
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
216
# self.sysdaemon.download_cloud_conf_signal('show_desktop_icons')
217
#elif conf_id == 'show_homefolder':
218
# value = gsettings.get('org.gnome.nautilus.desktop',
219
# None, 'home-icon-visible', 'boolean')
220
# if value != conf_value:
221
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
222
# self.sysdaemon.download_cloud_conf_signal('show_homefolder')
223
#elif conf_id == 'show_network':
224
# value = gsettings.get('org.gnome.nautilus.desktop',
225
# None, 'network-icon-visible', 'boolean')
226
# if value != conf_value:
227
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
228
# self.sysdaemon.download_cloud_conf_signal('show_network')
229
#elif conf_id == 'show_trash':
230
# value = gsettings.get('org.gnome.nautilus.desktop',
231
# None, 'trash-icon-visible', 'boolean')
232
# if value != conf_value:
233
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
234
# self.sysdaemon.download_cloud_conf_signal('show_trash')
235
#elif conf_id == 'show_devices':
236
# value = gsettings.get('org.gnome.nautilus.desktop',
237
# None, 'volumes-visible', 'boolean')
238
# if value != conf_value:
239
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
240
# self.sysdaemon.download_cloud_conf_signal('show_devices')
242
#----------------launcher settings----------------
243
#elif conf_id == 'launcher_autohide':
244
# value = gsettings.get('org.compiz.unityshell',
245
# '/org/compiz/profiles/unity/plugins/unityshell/',
246
# 'launcher-hide-mode', 'int')
247
# if value != conf_value:
248
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
249
# self.sysdaemon.download_cloud_conf_signal('launcher_autohide')
250
#elif conf_id == 'launcher_icon_size':
251
# value = gsettings.get('org.compiz.unityshell',
252
# '/org/compiz/profiles/unity/plugins/unityshell/',
253
# 'icon-size', 'int')
254
# if value != conf_value:
255
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
256
# self.sysdaemon.download_cloud_conf_signal('launcher_icon_size')
258
#----------------touchpad settings----------------
259
#elif conf_id == 'touchpad_enable':
260
# value = gsettings.get('org.gnome.settings-daemon.peripherals.touchpad',
261
# None, 'touchpad-enabled', 'boolean')
262
# if value != conf_value:
263
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
264
# self.sysdaemon.download_cloud_conf_signal('touchpad_enable')
265
#elif conf_id == 'touch_horizontal_scrolling':
266
# value = gsettings.get('org.gnome.settings-daemon.peripherals.touchpad',
267
# None, 'horiz-scroll-enabled', 'boolean')
268
# if value != conf_value:
269
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
270
# self.sysdaemon.download_cloud_conf_signal('touch_horizontal_scrolling')
271
#elif conf_id == 'type_scroll_bar':
272
# value = gsettings.get('com.canonical.desktop.interface',
273
# None, 'scrollbar-mode', 'string')
274
# if value != conf_value:
275
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
276
# self.sysdaemon.download_cloud_conf_signal('type_scroll_bar')
277
#elif conf_id == 'touchpad_scrolling_mode':
278
# value = gsettings.get('org.gnome.settings-daemon.peripherals.touchpad',
279
# None, 'scroll-method', 'string')
280
# if value != conf_value:
281
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
282
# self.sysdaemon.download_cloud_conf_signal('touchpad_scrolling_mode')
284
#----------------font settings----------------
285
#elif conf_id == 'default_font':
286
# value = gsettings.get('org.gnome.desktop.interface',
287
# None, 'font-name', 'string')
288
# if value != conf_value:
289
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
290
# self.sysdaemon.download_cloud_conf_signal('default_font')
291
#elif conf_id == 'desktop_font':
292
# value = gsettings.get('org.gnome.nautilus.desktop',
293
# None, 'font', 'string')
294
# if value != conf_value:
295
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
296
# self.sysdaemon.download_cloud_conf_signal('desktop_font')
297
#elif conf_id == 'document_font':
298
# value = gsettings.get('org.gnome.desktop.interface',
299
# None, 'document-font-name', 'string')
300
# if value != conf_value:
301
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
302
# self.sysdaemon.download_cloud_conf_signal('document_font')
303
#elif conf_id == 'monospace_font':
304
# value = gsettings.get('org.gnome.desktop.interface',
305
# None, 'monospace-font-name', 'string')
306
# if value != conf_value:
307
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
308
# self.sysdaemon.download_cloud_conf_signal('monospace_font')
309
#elif conf_id == 'window_title_font':
310
# value = gsettings.get('org.gnome.desktop.wm.preferences',
311
# None, 'titlebar-font', 'string')
312
# if value != conf_value:
313
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
314
# self.sysdaemon.download_cloud_conf_signal('window_title_font')
315
#elif conf_id == 'font_zoom':
316
# value = gsettings.get('org.gnome.desktop.interface',
317
# None, 'text-scaling-factor', 'double')
318
# if value != conf_value:
319
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
320
# self.sysdaemon.download_cloud_conf_signal('font_zoom')
321
#elif conf_id == 'font_hinting':
322
# value = gsettings.get('org.gnome.settings-daemon.plugins.xsettings',
323
# None, 'hinting', 'string')
324
# if value != conf_value:
325
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
326
# self.sysdaemon.download_cloud_conf_signal('font_hinting')
327
#elif conf_id == 'font_antialiasing':
328
# value = gsettings.get('org.gnome.settings-daemon.plugins.xsettings',
329
# None, 'antialiasing', 'string')
330
# if value != conf_value:
331
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
332
# self.sysdaemon.download_cloud_conf_signal('font_antialiasing')
335
#----------------theme settings----------------
336
#elif conf_id == 'gtk_theme':
337
# value = gsettings.get('org.gnome.desktop.interface',
338
# None, 'gtk-theme', 'string')
339
# if value != conf_value:
340
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
341
# self.sysdaemon.download_cloud_conf_signal('gtk_theme')
342
#elif conf_id == 'window_theme':
343
# value = gsettings.get('org.gnome.desktop.wm.preferences',
344
# None, 'theme', 'string')
345
# if value != conf_value:
346
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
347
# self.sysdaemon.download_cloud_conf_signal('window_theme')
348
#elif conf_id == 'icon_theme':
349
# value = gsettings.get('org.gnome.desktop.interface',
350
# None, 'icon-theme', 'string')
351
# if value != conf_value:
352
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
353
# self.sysdaemon.download_cloud_conf_signal('icon_theme')
355
#----------------window settings----------------
356
#elif conf_id == 'window_button':
357
# value = gsettings.get('org.gnome.desktop.wm.preferences',
358
# None, 'button-layout', 'string')
359
# left_list = ['close,minimize,maximize:', 'close,maximize,minimize:']
360
# right_list = [':minimize,maximize,close', ':maximize,minimize,close']
361
# if value in left_list and conf_value in right_list:
362
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
363
# self.sysdaemon.download_cloud_conf_signal('window_button')
364
# elif value in right_list and conf_value in left_list:
365
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
366
# self.sysdaemon.download_cloud_conf_signal('window_button')
367
#elif conf_id == 'menus_have_icons':
368
# value = gsettings.get('org.gnome.desktop.interface',
369
# None, 'menus-have-icons', 'boolean')
370
# if value != conf_value:
371
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
372
# self.sysdaemon.download_cloud_conf_signal('menus_have_icons')
373
#elif conf_id == 'titlebar_wheel':
374
# value = gsettings.get('org.compiz.gwd',
375
# None, 'mouse-wheel-action', 'string')
376
# if value != conf_value:
377
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
378
# self.sysdaemon.download_cloud_conf_signal('titlebar_wheel')
379
#elif conf_id == 'titlebar_double':
380
# value = gsettings.get('org.gnome.desktop.wm.preferences',
381
# None, 'action-double-click-titlebar', 'string')
382
# if value != conf_value:
383
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
384
# self.sysdaemon.download_cloud_conf_signal('titlebar_double')
385
#elif conf_id == 'titlebar_middle':
386
# value = gsettings.get('org.gnome.desktop.wm.preferences',
387
# None, 'action-middle-click-titlebar', 'string')
388
# if value != conf_value:
389
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
390
# self.sysdaemon.download_cloud_conf_signal('titlebar_middle')
391
#elif conf_id == 'titlebar_right':
392
# value = gsettings.get('org.gnome.desktop.wm.preferences',
393
# None, 'action-right-click-titlebar', 'string')
394
# if value != conf_value:
395
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
396
# self.sysdaemon.download_cloud_conf_signal('titlebar_right')
398
#----------------file manager----------------
399
#elif conf_id == 'location_replace_pathbar':
400
# value = gsettings.get('org.gnome.nautilus.preferences',
401
# None, 'always-use-location-entry', 'boolean')
402
# if value != conf_value:
403
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
404
# self.sysdaemon.download_cloud_conf_signal('location_replace_pathbar')
405
#elif conf_id == 'auto_mount_media':
406
# value = gsettings.get('org.gnome.desktop.media-handling',
407
# None, 'automount', 'boolean')
408
# if value != conf_value:
409
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
410
# self.sysdaemon.download_cloud_conf_signal('auto_mount_media')
411
#elif conf_id == 'auto_open_folder':
412
# value = gsettings.get('org.gnome.desktop.media-handling',
413
# None, 'automount-open', 'boolean')
414
# if value != conf_value:
415
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
416
# self.sysdaemon.download_cloud_conf_signal('auto_open_folder')
417
#elif conf_id == 'prompt_autorun_programs':
418
# value = gsettings.get('org.gnome.desktop.media-handling',
419
# None, 'autorun-never', 'boolean')
420
# if value != conf_value:
421
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
422
# self.sysdaemon.download_cloud_conf_signal('prompt_autorun_programs')
423
#elif conf_id == 'thumbnail_icon_size':
424
# value = gsettings.get('org.gnome.nautilus.icon-view',
425
# None, 'thumbnail-size', 'int')
426
# if value != conf_value:
427
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
428
# self.sysdaemon.download_cloud_conf_signal('thumbnail_icon_size')
429
#elif conf_id == 'thumbnail_cache_time':
430
# value = gsettings.get('org.gnome.desktop.thumbnail-cache',
431
# None, 'maximum-age', 'int')
432
# if value != conf_value:
433
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
434
# self.sysdaemon.download_cloud_conf_signal('thumbnail_cache_time')
435
#elif conf_id == 'thumbnail_cache_size':
436
# value = gsettings.get('org.gnome.desktop.thumbnail-cache',
437
# None, 'maximum-size', 'int')
438
# if value != conf_value:
439
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
440
# self.sysdaemon.download_cloud_conf_signal('thumbnail_cache_size')
442
# desktop icon settings
443
#if conf_id == 'show_desktop_icons':
444
# self.sysdaemon.download_cloud_conf_signal('show_desktop_icons')
445
#elif conf_id == 'show_homefolder':
446
# self.sysdaemon.download_cloud_conf_signal('show_homefolder')
447
#elif conf_id == 'show_network':
448
# self.sysdaemon.download_cloud_conf_signal('show_network')
449
#elif conf_id == 'show_trash':
450
# self.sysdaemon.download_cloud_conf_signal('show_trash')
451
#elif conf_id == 'show_devices':
452
# self.sysdaemon.download_cloud_conf_signal('show_devices')
455
#elif conf_id == 'launcher_autohide':
456
# self.sysdaemon.download_cloud_conf_signal('launcher_autohide')
457
#elif conf_id == 'launcher_icon_size':
458
# self.sysdaemon.download_cloud_conf_signal('launcher_icon_size')
461
#elif conf_id == 'touchpad_enable':
462
# self.sysdaemon.download_cloud_conf_signal('touchpad_enable')
463
#elif conf_id == 'touch_horizontal_scrolling':
464
# self.sysdaemon.download_cloud_conf_signal('touch_horizontal_scrolling')
465
#elif conf_id == 'type_scroll_bar':
466
# self.sysdaemon.download_cloud_conf_signal('type_scroll_bar')
467
#elif conf_id == 'touchpad_scrolling_mode':
468
# self.sysdaemon.download_cloud_conf_signal('touchpad_scrolling_mode')
471
#elif conf_id == 'default_font':
472
# self.sysdaemon.download_cloud_conf_signal('default_font')
473
#elif conf_id == 'desktop_font':
474
# self.sysdaemon.download_cloud_conf_signal('desktop_font')
475
#elif conf_id == 'document_font':
476
# self.sysdaemon.download_cloud_conf_signal('document_font')
477
#elif conf_id == 'monospace_font':
478
# self.sysdaemon.download_cloud_conf_signal('monospace_font')
479
#elif conf_id == 'window_title_font':
480
# self.sysdaemon.download_cloud_conf_signal('window_title_font')
481
#elif conf_id == 'font_zoom':
482
# self.sysdaemon.download_cloud_conf_signal('font_zoom')
483
#elif conf_id == 'font_hinting':
484
# self.sysdaemon.download_cloud_conf_signal('font_hinting')
485
#elif conf_id == 'font_antialiasing':
486
# self.sysdaemon.download_cloud_conf_signal('font_antialiasing')
489
#elif conf_id == 'gtk_theme':
490
# self.sysdaemon.download_cloud_conf_signal('gtk_theme')
491
#elif conf_id == 'window_theme':
492
# self.sysdaemon.download_cloud_conf_signal('window_theme')
493
#elif conf_id == 'icon_theme':
494
# self.sysdaemon.download_cloud_conf_signal('icon_theme')
497
#elif conf_id == 'window_button':
498
# self.sysdaemon.download_cloud_conf_signal('window_button')
499
#elif conf_id == 'menus_have_icons':
500
# self.sysdaemon.download_cloud_conf_signal('menus_have_icons')
501
#elif conf_id == 'titlebar_wheel':
502
# self.sysdaemon.download_cloud_conf_signal('titlebar_wheel')
503
#elif conf_id == 'titlebar_double':
504
# self.sysdaemon.download_cloud_conf_signal('titlebar_double')
505
#elif conf_id == 'titlebar_middle':
506
# self.sysdaemon.download_cloud_conf_signal('titlebar_middle')
507
#elif conf_id == 'titlebar_right':
508
# self.sysdaemon.download_cloud_conf_signal('titlebar_right')
511
#elif conf_id == 'location_replace_pathbar':
512
# self.sysdaemon.download_cloud_conf_signal('location_replace_pathbar')
513
#elif conf_id == 'auto_mount_media':
514
# self.sysdaemon.download_cloud_conf_signal('auto_mount_media')
515
#elif conf_id == 'auto_open_folder':
516
# self.sysdaemon.download_cloud_conf_signal('auto_open_folder')
517
#elif conf_id == 'prompt_autorun_programs':
518
# self.sysdaemon.download_cloud_conf_signal('prompt_autorun_programs')
519
#elif conf_id == 'thumbnail_icon_size':
520
# self.sysdaemon.download_cloud_conf_signal('thumbnail_icon_size')
521
#elif conf_id == 'thumbnail_cache_time':
522
# self.sysdaemon.download_cloud_conf_signal('thumbnail_cache_time')
523
#elif conf_id == 'thumbnail_cache_size':
524
# self.sysdaemon.download_cloud_conf_signal('thumbnail_cache_size')
527
# Restore the system configuration
528
def use_cloud_configuration(self, file_name):
530
self.conf.read(file_name)
531
sections = self.conf.sections()
532
for conf_id in sections:
533
self.setconf(conf_id)
536
# Get kuaipan directory address
537
def get_kuaipan_path(self):
538
kpconf = ConfigParser.ConfigParser()
539
kpconf.read(self.home + '/.config/ubuntukylin/kuaipan4uk.conf')
540
return kpconf.get('client-info', 'Root')
542
# Determine whether kuaipan process starts
543
def kuaipan_run(self):
544
ps = os.popen('pgrep kuaipan4uk')
545
kuaipan_ps = ps.read()
549
# Configuration file upload
550
def real_upload_kysoft_cloud_conf(self):
551
if not self.kuaipan_run():
552
# 快盘没有启动或没有安装,提示用户安装并启动快盘才能上传
553
self.sysdaemon.upload_cloud_conf_signal('upload_norun')
555
self.kuaipan_path = self.get_kuaipan_path() + '/[Ubuntu Kylin Sync]'
556
if not os.path.isdir(self.kuaipan_path):
557
os.makedirs(self.kuaipan_path)
558
self.kuaipan_path = self.kuaipan_path + '/youker-assistant'
559
if not os.path.isdir(self.kuaipan_path):
560
os.makedirs(self.kuaipan_path)
561
self.youker_path = self.home + '/.config/ubuntukylin/youker-assistant/'
562
youker_abs_path = self.youker_path + 'youker-settings-cloud.conf'
563
self.save_configuration_to_local_file(youker_abs_path)
564
copy(youker_abs_path, self.kuaipan_path)
565
self.sysdaemon.upload_cloud_conf_signal('upload_ok')
567
# Configuration file download
568
def real_download_kysoft_cloud_conf(self):
569
if not self.kuaipan_run():
570
# 快盘没有启动或没有安装,提示用户安装并启动快盘才能下载
571
self.sysdaemon.download_cloud_conf_signal('download_norun')
573
self.youker_path = self.home + '/.config/ubuntukylin/youker-assistant/'
574
youker_abs_path = self.youker_path + 'youker-settings-cloud.conf'
575
if not os.path.exists(youker_abs_path):
576
os.mknod(youker_abs_path)
577
cloud_abs_path = self.get_kuaipan_path() + '/[Ubuntu Kylin Sync]/youker-assistant/youker-settings-cloud.conf'
578
if not os.path.isfile(cloud_abs_path):
580
self.sysdaemon.download_cloud_conf_signal('download_notconf')
582
copy(cloud_abs_path, self.youker_path)
583
self.use_cloud_configuration(youker_abs_path)
584
self.sysdaemon.download_cloud_conf_signal('download_ok')
586
def upload_kysoft_cloud_conf(self):
587
threading.Thread(target=self.real_upload_kysoft_cloud_conf, name='UpLoad').start()
589
def download_kysoft_cloud_conf(self):
590
threading.Thread(target=self.real_download_kysoft_cloud_conf, name='DownLoad').start()
592
if __name__ == '__main__':
594
#cc = CloudConfig(None)
595
#cc.upload_kysoft_cloud_conf()
596
#cc.download_kysoft_cloud_conf()