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):
48
# self.conf.read(file_name)
49
# sections = self.conf.sections()
51
# # 桌面图标显示控制-----------------------------
52
# self.write_conf(sections, 'show_desktop_icons',
53
# 'org.gnome.desktop.background',
54
# None, 'show-desktop-icons', 'boolean')
55
# self.write_conf(sections, 'show_homefolder',
56
# 'org.gnome.nautilus.desktop',
57
# None, 'home-icon-visible', 'boolean')
58
# self.write_conf(sections, 'show_network',
59
# 'org.gnome.nautilus.desktop',
60
# None, 'network-icon-visible', 'boolean')
61
# self.write_conf(sections, 'show_trash',
62
# 'org.gnome.nautilus.desktop',
63
# None, 'trash-icon-visible', 'boolean')
64
# self.write_conf(sections, 'show_devices',
65
# 'org.gnome.nautilus.desktop',
66
# None, 'volumes-visible', 'boolean')
68
# # 启动器设置----------------------------------
69
# self.write_conf(sections, 'launcher_autohide',
70
# 'org.compiz.unityshell',
71
# '/org/compiz/profiles/unity/plugins/unityshell/',
72
# 'launcher-hide-mode', 'int')
73
# self.write_conf(sections, 'launcher_icon_size',
74
# 'org.compiz.unityshell',
75
# '/org/compiz/profiles/unity/plugins/unityshell/',
78
# # 触摸板设置-----------------------------------
79
## self.write_conf(sections, 'touchpad_enable',
80
## 'org.gnome.settings-daemon.peripherals.touchpad',
81
## None, 'touchpad-enabled', 'boolean')
82
## self.write_conf(sections, 'touch_horizontal_scrolling',
83
## 'org.gnome.settings-daemon.peripherals.touchpad',
84
## None, 'horiz-scroll-enabled', 'boolean')
85
## self.write_conf(sections, 'type_scroll_bar',
86
## 'com.canonical.desktop.interface',
87
## None, 'scrollbar-mode', 'string')
88
## self.write_conf(sections, 'touchpad_scrolling_mode',
89
## 'org.gnome.settings-daemon.peripherals.touchpad',
90
## None, 'scroll-method', 'string')
92
# # 字体设置-------------------------------------
93
# self.write_conf(sections, 'default_font',
94
# 'org.gnome.desktop.interface',
95
# None, 'font-name', 'string')
96
# self.write_conf(sections, 'desktop_font',
97
# 'org.gnome.nautilus.desktop',
98
# None, 'font', 'string')
99
# self.write_conf(sections, 'document_font',
100
# 'org.gnome.desktop.interface',
101
# None, 'document-font-name', 'string')
102
# self.write_conf(sections, 'monospace_font',
103
# 'org.gnome.desktop.interface',
104
# None, 'monospace-font-name', 'string')
105
# self.write_conf(sections, 'window_title_font',
106
# 'org.gnome.desktop.wm.preferences',
107
# None, 'titlebar-font', 'string')
108
# self.write_conf(sections, 'font_zoom',
109
# 'org.gnome.desktop.interface',
110
# None, 'text-scaling-factor', 'double')
111
# self.write_conf(sections, 'font_hinting',
112
# 'org.gnome.settings-daemon.plugins.xsettings',
113
# None, 'hinting', 'string')
114
# self.write_conf(sections, 'font_antialiasing',
115
# 'org.gnome.settings-daemon.plugins.xsettings',
116
# None, 'antialiasing', 'string')
118
# # 主题设置-------------------------------------
119
# #self.write_conf(sections, 'gtk_theme',
120
# # 'org.gnome.desktop.interface',
121
# # None, 'gtk-theme', 'string')
122
## self.write_conf(sections, 'window_theme',
123
## 'org.gnome.desktop.wm.preferences',
124
## None, 'theme', 'string')
125
# self.write_conf(sections, 'icon_theme',
126
# 'org.gnome.desktop.interface',
127
# None, 'icon-theme', 'string')
129
# # 窗口设置--------------------------------------
130
# self.write_conf(sections, 'window_button',
131
# 'org.gnome.desktop.wm.preferences',
132
# None, 'button-layout', 'string')
133
# self.write_conf(sections, 'menus_have_icons',
134
# 'org.gnome.desktop.interface',
135
# None, 'menus-have-icons', 'boolean')
136
# self.write_conf(sections, 'titlebar_wheel',
138
# None, 'mouse-wheel-action', 'string')
139
# self.write_conf(sections, 'titlebar_double',
140
# 'org.gnome.desktop.wm.preferences',
141
# None, 'action-double-click-titlebar', 'string')
142
# self.write_conf(sections, 'titlebar_middle',
143
# 'org.gnome.desktop.wm.preferences',
144
# None, 'action-middle-click-titlebar', 'string')
145
# self.write_conf(sections, 'titlebar_right',
146
# 'org.gnome.desktop.wm.preferences',
147
# None, 'action-right-click-titlebar', 'string')
149
# # 文件管理器-----------------------------------
150
# self.write_conf(sections, 'location_replace_pathbar',
151
# 'org.gnome.nautilus.preferences',
152
# None, 'always-use-location-entry', 'boolean')
153
# self.write_conf(sections, 'auto_mount_media',
154
# 'org.gnome.desktop.media-handling',
155
# None, 'automount', 'boolean')
156
# self.write_conf(sections, 'auto_open_folder',
157
# 'org.gnome.desktop.media-handling',
158
# None, 'automount-open', 'boolean')
159
# self.write_conf(sections, 'prompt_autorun_programs',
160
# 'org.gnome.desktop.media-handling',
161
# None, 'autorun-never', 'boolean')
162
# self.write_conf(sections, 'thumbnail_icon_size',
163
# 'org.gnome.nautilus.icon-view',
164
# None, 'thumbnail-size', 'int')
165
# self.write_conf(sections, 'thumbnail_cache_time',
166
# 'org.gnome.desktop.thumbnail-cache',
167
# None, 'maximum-age', 'int')
168
# self.write_conf(sections, 'thumbnail_cache_size',
169
# 'org.gnome.desktop.thumbnail-cache',
170
# None, 'maximum-size', 'int')
172
# fd = open(file_name, 'w')
173
# self.conf.write(fd)
177
def setconf(self, conf_id):
178
conf_schema = self.conf.get(conf_id, 'schema')
179
conf_path = self.conf.get(conf_id, 'path')
180
if conf_path == 'None':
182
conf_key = self.conf.get(conf_id, 'key')
183
conf_type = self.conf.get(conf_id, 'type')
184
if conf_type == 'boolean' :
185
conf_value = self.conf.getboolean(conf_id, 'value')
186
elif conf_type == 'int' :
187
conf_value = self.conf.getint(conf_id, 'value')
188
elif conf_type == 'double' or conf_type == 'float' :
189
conf_value = self.conf.getfloat(conf_id, 'value')
191
conf_value = self.conf.get(conf_id, 'value')
192
#gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
194
if conf_id == 'window_button':
195
value = gsettings.get('org.gnome.desktop.wm.preferences',
196
None, 'button-layout', 'string')
197
left_list = ['close,minimize,maximize:', 'close,maximize,minimize:']
198
right_list = [':minimize,maximize,close', ':maximize,minimize,close']
199
if value in left_list and conf_value in right_list:
200
gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
201
self.sysdaemon.download_cloud_conf_signal('window_button')
202
elif value in right_list and conf_value in left_list:
203
gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
204
self.sysdaemon.download_cloud_conf_signal('window_button')
206
value = gsettings.get(conf_schema, conf_path, conf_key, conf_type)
207
if value != conf_value:
208
gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
209
self.sysdaemon.download_cloud_conf_signal(conf_id)
211
#----------------desktop icon settings----------------
212
#if conf_id == 'show_desktop_icons':
213
# value = gsettings.get('org.gnome.desktop.background',
214
# None, 'show-desktop-icons', 'boolean')
215
# if value != conf_value:
216
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
217
# self.sysdaemon.download_cloud_conf_signal('show_desktop_icons')
218
#elif conf_id == 'show_homefolder':
219
# value = gsettings.get('org.gnome.nautilus.desktop',
220
# None, 'home-icon-visible', 'boolean')
221
# if value != conf_value:
222
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
223
# self.sysdaemon.download_cloud_conf_signal('show_homefolder')
224
#elif conf_id == 'show_network':
225
# value = gsettings.get('org.gnome.nautilus.desktop',
226
# None, 'network-icon-visible', 'boolean')
227
# if value != conf_value:
228
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
229
# self.sysdaemon.download_cloud_conf_signal('show_network')
230
#elif conf_id == 'show_trash':
231
# value = gsettings.get('org.gnome.nautilus.desktop',
232
# None, 'trash-icon-visible', 'boolean')
233
# if value != conf_value:
234
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
235
# self.sysdaemon.download_cloud_conf_signal('show_trash')
236
#elif conf_id == 'show_devices':
237
# value = gsettings.get('org.gnome.nautilus.desktop',
238
# None, 'volumes-visible', 'boolean')
239
# if value != conf_value:
240
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
241
# self.sysdaemon.download_cloud_conf_signal('show_devices')
243
#----------------launcher settings----------------
244
#elif conf_id == 'launcher_autohide':
245
# value = gsettings.get('org.compiz.unityshell',
246
# '/org/compiz/profiles/unity/plugins/unityshell/',
247
# 'launcher-hide-mode', 'int')
248
# if value != conf_value:
249
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
250
# self.sysdaemon.download_cloud_conf_signal('launcher_autohide')
251
#elif conf_id == 'launcher_icon_size':
252
# value = gsettings.get('org.compiz.unityshell',
253
# '/org/compiz/profiles/unity/plugins/unityshell/',
254
# 'icon-size', 'int')
255
# if value != conf_value:
256
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
257
# self.sysdaemon.download_cloud_conf_signal('launcher_icon_size')
259
#----------------touchpad settings----------------
260
#elif conf_id == 'touchpad_enable':
261
# value = gsettings.get('org.gnome.settings-daemon.peripherals.touchpad',
262
# None, 'touchpad-enabled', 'boolean')
263
# if value != conf_value:
264
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
265
# self.sysdaemon.download_cloud_conf_signal('touchpad_enable')
266
#elif conf_id == 'touch_horizontal_scrolling':
267
# value = gsettings.get('org.gnome.settings-daemon.peripherals.touchpad',
268
# None, 'horiz-scroll-enabled', 'boolean')
269
# if value != conf_value:
270
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
271
# self.sysdaemon.download_cloud_conf_signal('touch_horizontal_scrolling')
272
#elif conf_id == 'type_scroll_bar':
273
# value = gsettings.get('com.canonical.desktop.interface',
274
# None, 'scrollbar-mode', 'string')
275
# if value != conf_value:
276
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
277
# self.sysdaemon.download_cloud_conf_signal('type_scroll_bar')
278
#elif conf_id == 'touchpad_scrolling_mode':
279
# value = gsettings.get('org.gnome.settings-daemon.peripherals.touchpad',
280
# None, 'scroll-method', 'string')
281
# if value != conf_value:
282
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
283
# self.sysdaemon.download_cloud_conf_signal('touchpad_scrolling_mode')
285
#----------------font settings----------------
286
#elif conf_id == 'default_font':
287
# value = gsettings.get('org.gnome.desktop.interface',
288
# None, 'font-name', 'string')
289
# if value != conf_value:
290
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
291
# self.sysdaemon.download_cloud_conf_signal('default_font')
292
#elif conf_id == 'desktop_font':
293
# value = gsettings.get('org.gnome.nautilus.desktop',
294
# None, 'font', 'string')
295
# if value != conf_value:
296
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
297
# self.sysdaemon.download_cloud_conf_signal('desktop_font')
298
#elif conf_id == 'document_font':
299
# value = gsettings.get('org.gnome.desktop.interface',
300
# None, 'document-font-name', 'string')
301
# if value != conf_value:
302
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
303
# self.sysdaemon.download_cloud_conf_signal('document_font')
304
#elif conf_id == 'monospace_font':
305
# value = gsettings.get('org.gnome.desktop.interface',
306
# None, 'monospace-font-name', 'string')
307
# if value != conf_value:
308
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
309
# self.sysdaemon.download_cloud_conf_signal('monospace_font')
310
#elif conf_id == 'window_title_font':
311
# value = gsettings.get('org.gnome.desktop.wm.preferences',
312
# None, 'titlebar-font', 'string')
313
# if value != conf_value:
314
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
315
# self.sysdaemon.download_cloud_conf_signal('window_title_font')
316
#elif conf_id == 'font_zoom':
317
# value = gsettings.get('org.gnome.desktop.interface',
318
# None, 'text-scaling-factor', 'double')
319
# if value != conf_value:
320
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
321
# self.sysdaemon.download_cloud_conf_signal('font_zoom')
322
#elif conf_id == 'font_hinting':
323
# value = gsettings.get('org.gnome.settings-daemon.plugins.xsettings',
324
# None, 'hinting', 'string')
325
# if value != conf_value:
326
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
327
# self.sysdaemon.download_cloud_conf_signal('font_hinting')
328
#elif conf_id == 'font_antialiasing':
329
# value = gsettings.get('org.gnome.settings-daemon.plugins.xsettings',
330
# None, 'antialiasing', 'string')
331
# if value != conf_value:
332
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
333
# self.sysdaemon.download_cloud_conf_signal('font_antialiasing')
336
#----------------theme settings----------------
337
#elif conf_id == 'gtk_theme':
338
# value = gsettings.get('org.gnome.desktop.interface',
339
# None, 'gtk-theme', 'string')
340
# if value != conf_value:
341
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
342
# self.sysdaemon.download_cloud_conf_signal('gtk_theme')
343
#elif conf_id == 'window_theme':
344
# value = gsettings.get('org.gnome.desktop.wm.preferences',
345
# None, 'theme', 'string')
346
# if value != conf_value:
347
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
348
# self.sysdaemon.download_cloud_conf_signal('window_theme')
349
#elif conf_id == 'icon_theme':
350
# value = gsettings.get('org.gnome.desktop.interface',
351
# None, 'icon-theme', 'string')
352
# if value != conf_value:
353
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
354
# self.sysdaemon.download_cloud_conf_signal('icon_theme')
356
#----------------window settings----------------
357
#elif conf_id == 'window_button':
358
# value = gsettings.get('org.gnome.desktop.wm.preferences',
359
# None, 'button-layout', 'string')
360
# left_list = ['close,minimize,maximize:', 'close,maximize,minimize:']
361
# right_list = [':minimize,maximize,close', ':maximize,minimize,close']
362
# if value in left_list and conf_value in right_list:
363
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
364
# self.sysdaemon.download_cloud_conf_signal('window_button')
365
# elif value in right_list and conf_value in left_list:
366
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
367
# self.sysdaemon.download_cloud_conf_signal('window_button')
368
#elif conf_id == 'menus_have_icons':
369
# value = gsettings.get('org.gnome.desktop.interface',
370
# None, 'menus-have-icons', 'boolean')
371
# if value != conf_value:
372
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
373
# self.sysdaemon.download_cloud_conf_signal('menus_have_icons')
374
#elif conf_id == 'titlebar_wheel':
375
# value = gsettings.get('org.compiz.gwd',
376
# None, 'mouse-wheel-action', 'string')
377
# if value != conf_value:
378
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
379
# self.sysdaemon.download_cloud_conf_signal('titlebar_wheel')
380
#elif conf_id == 'titlebar_double':
381
# value = gsettings.get('org.gnome.desktop.wm.preferences',
382
# None, 'action-double-click-titlebar', 'string')
383
# if value != conf_value:
384
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
385
# self.sysdaemon.download_cloud_conf_signal('titlebar_double')
386
#elif conf_id == 'titlebar_middle':
387
# value = gsettings.get('org.gnome.desktop.wm.preferences',
388
# None, 'action-middle-click-titlebar', 'string')
389
# if value != conf_value:
390
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
391
# self.sysdaemon.download_cloud_conf_signal('titlebar_middle')
392
#elif conf_id == 'titlebar_right':
393
# value = gsettings.get('org.gnome.desktop.wm.preferences',
394
# None, 'action-right-click-titlebar', 'string')
395
# if value != conf_value:
396
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
397
# self.sysdaemon.download_cloud_conf_signal('titlebar_right')
399
#----------------file manager----------------
400
#elif conf_id == 'location_replace_pathbar':
401
# value = gsettings.get('org.gnome.nautilus.preferences',
402
# None, 'always-use-location-entry', 'boolean')
403
# if value != conf_value:
404
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
405
# self.sysdaemon.download_cloud_conf_signal('location_replace_pathbar')
406
#elif conf_id == 'auto_mount_media':
407
# value = gsettings.get('org.gnome.desktop.media-handling',
408
# None, 'automount', 'boolean')
409
# if value != conf_value:
410
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
411
# self.sysdaemon.download_cloud_conf_signal('auto_mount_media')
412
#elif conf_id == 'auto_open_folder':
413
# value = gsettings.get('org.gnome.desktop.media-handling',
414
# None, 'automount-open', 'boolean')
415
# if value != conf_value:
416
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
417
# self.sysdaemon.download_cloud_conf_signal('auto_open_folder')
418
#elif conf_id == 'prompt_autorun_programs':
419
# value = gsettings.get('org.gnome.desktop.media-handling',
420
# None, 'autorun-never', 'boolean')
421
# if value != conf_value:
422
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
423
# self.sysdaemon.download_cloud_conf_signal('prompt_autorun_programs')
424
#elif conf_id == 'thumbnail_icon_size':
425
# value = gsettings.get('org.gnome.nautilus.icon-view',
426
# None, 'thumbnail-size', 'int')
427
# if value != conf_value:
428
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
429
# self.sysdaemon.download_cloud_conf_signal('thumbnail_icon_size')
430
#elif conf_id == 'thumbnail_cache_time':
431
# value = gsettings.get('org.gnome.desktop.thumbnail-cache',
432
# None, 'maximum-age', 'int')
433
# if value != conf_value:
434
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
435
# self.sysdaemon.download_cloud_conf_signal('thumbnail_cache_time')
436
#elif conf_id == 'thumbnail_cache_size':
437
# value = gsettings.get('org.gnome.desktop.thumbnail-cache',
438
# None, 'maximum-size', 'int')
439
# if value != conf_value:
440
# gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
441
# self.sysdaemon.download_cloud_conf_signal('thumbnail_cache_size')
443
# desktop icon settings
444
#if conf_id == 'show_desktop_icons':
445
# self.sysdaemon.download_cloud_conf_signal('show_desktop_icons')
446
#elif conf_id == 'show_homefolder':
447
# self.sysdaemon.download_cloud_conf_signal('show_homefolder')
448
#elif conf_id == 'show_network':
449
# self.sysdaemon.download_cloud_conf_signal('show_network')
450
#elif conf_id == 'show_trash':
451
# self.sysdaemon.download_cloud_conf_signal('show_trash')
452
#elif conf_id == 'show_devices':
453
# self.sysdaemon.download_cloud_conf_signal('show_devices')
456
#elif conf_id == 'launcher_autohide':
457
# self.sysdaemon.download_cloud_conf_signal('launcher_autohide')
458
#elif conf_id == 'launcher_icon_size':
459
# self.sysdaemon.download_cloud_conf_signal('launcher_icon_size')
462
#elif conf_id == 'touchpad_enable':
463
# self.sysdaemon.download_cloud_conf_signal('touchpad_enable')
464
#elif conf_id == 'touch_horizontal_scrolling':
465
# self.sysdaemon.download_cloud_conf_signal('touch_horizontal_scrolling')
466
#elif conf_id == 'type_scroll_bar':
467
# self.sysdaemon.download_cloud_conf_signal('type_scroll_bar')
468
#elif conf_id == 'touchpad_scrolling_mode':
469
# self.sysdaemon.download_cloud_conf_signal('touchpad_scrolling_mode')
472
#elif conf_id == 'default_font':
473
# self.sysdaemon.download_cloud_conf_signal('default_font')
474
#elif conf_id == 'desktop_font':
475
# self.sysdaemon.download_cloud_conf_signal('desktop_font')
476
#elif conf_id == 'document_font':
477
# self.sysdaemon.download_cloud_conf_signal('document_font')
478
#elif conf_id == 'monospace_font':
479
# self.sysdaemon.download_cloud_conf_signal('monospace_font')
480
#elif conf_id == 'window_title_font':
481
# self.sysdaemon.download_cloud_conf_signal('window_title_font')
482
#elif conf_id == 'font_zoom':
483
# self.sysdaemon.download_cloud_conf_signal('font_zoom')
484
#elif conf_id == 'font_hinting':
485
# self.sysdaemon.download_cloud_conf_signal('font_hinting')
486
#elif conf_id == 'font_antialiasing':
487
# self.sysdaemon.download_cloud_conf_signal('font_antialiasing')
490
#elif conf_id == 'gtk_theme':
491
# self.sysdaemon.download_cloud_conf_signal('gtk_theme')
492
#elif conf_id == 'window_theme':
493
# self.sysdaemon.download_cloud_conf_signal('window_theme')
494
#elif conf_id == 'icon_theme':
495
# self.sysdaemon.download_cloud_conf_signal('icon_theme')
498
#elif conf_id == 'window_button':
499
# self.sysdaemon.download_cloud_conf_signal('window_button')
500
#elif conf_id == 'menus_have_icons':
501
# self.sysdaemon.download_cloud_conf_signal('menus_have_icons')
502
#elif conf_id == 'titlebar_wheel':
503
# self.sysdaemon.download_cloud_conf_signal('titlebar_wheel')
504
#elif conf_id == 'titlebar_double':
505
# self.sysdaemon.download_cloud_conf_signal('titlebar_double')
506
#elif conf_id == 'titlebar_middle':
507
# self.sysdaemon.download_cloud_conf_signal('titlebar_middle')
508
#elif conf_id == 'titlebar_right':
509
# self.sysdaemon.download_cloud_conf_signal('titlebar_right')
512
#elif conf_id == 'location_replace_pathbar':
513
# self.sysdaemon.download_cloud_conf_signal('location_replace_pathbar')
514
#elif conf_id == 'auto_mount_media':
515
# self.sysdaemon.download_cloud_conf_signal('auto_mount_media')
516
#elif conf_id == 'auto_open_folder':
517
# self.sysdaemon.download_cloud_conf_signal('auto_open_folder')
518
#elif conf_id == 'prompt_autorun_programs':
519
# self.sysdaemon.download_cloud_conf_signal('prompt_autorun_programs')
520
#elif conf_id == 'thumbnail_icon_size':
521
# self.sysdaemon.download_cloud_conf_signal('thumbnail_icon_size')
522
#elif conf_id == 'thumbnail_cache_time':
523
# self.sysdaemon.download_cloud_conf_signal('thumbnail_cache_time')
524
#elif conf_id == 'thumbnail_cache_size':
525
# self.sysdaemon.download_cloud_conf_signal('thumbnail_cache_size')
528
# Restore the system configuration
529
def use_cloud_configuration(self, file_name):
531
self.conf.read(file_name)
532
sections = self.conf.sections()
533
for conf_id in sections:
534
self.setconf(conf_id)
537
# Get kuaipan directory address
538
def get_kuaipan_path(self):
539
kpconf = ConfigParser.ConfigParser()
540
kpconf.read(self.home + '/.config/ubuntukylin/kuaipan4uk.conf')
541
return kpconf.get('client-info', 'Root')
543
# Determine whether kuaipan process starts
544
def kuaipan_run(self):
545
ps = os.popen('pgrep kuaipan4uk')
546
kuaipan_ps = ps.read()
550
# Configuration file upload
551
def real_upload_kysoft_cloud_conf(self):
552
if not self.kuaipan_run():
553
# 快盘没有启动或没有安装,提示用户安装并启动快盘才能上传
554
self.sysdaemon.upload_cloud_conf_signal('upload_norun')
556
self.kuaipan_path = self.get_kuaipan_path() + '/[Ubuntu Kylin Sync]'
557
if not os.path.isdir(self.kuaipan_path):
558
os.makedirs(self.kuaipan_path)
559
self.kuaipan_path = self.kuaipan_path + '/youker-assistant'
560
if not os.path.isdir(self.kuaipan_path):
561
os.makedirs(self.kuaipan_path)
562
self.youker_path = self.home + '/.config/ubuntukylin/youker-assistant/'
563
youker_abs_path = self.youker_path + 'youker-settings-cloud.conf'
564
self.save_configuration_to_local_file(youker_abs_path)
565
copy(youker_abs_path, self.kuaipan_path)
566
self.sysdaemon.upload_cloud_conf_signal('upload_ok')
568
# Configuration file download
569
def real_download_kysoft_cloud_conf(self):
570
if not self.kuaipan_run():
571
# 快盘没有启动或没有安装,提示用户安装并启动快盘才能下载
572
self.sysdaemon.download_cloud_conf_signal('download_norun')
574
self.youker_path = self.home + '/.config/ubuntukylin/youker-assistant/'
575
youker_abs_path = self.youker_path + 'youker-settings-cloud.conf'
576
if not os.path.exists(youker_abs_path):
577
os.mknod(youker_abs_path)
578
cloud_abs_path = self.get_kuaipan_path() + '/[Ubuntu Kylin Sync]/youker-assistant/youker-settings-cloud.conf'
579
if not os.path.isfile(cloud_abs_path):
581
self.sysdaemon.download_cloud_conf_signal('download_notconf')
583
copy(cloud_abs_path, self.youker_path)
584
self.use_cloud_configuration(youker_abs_path)
585
self.sysdaemon.download_cloud_conf_signal('download_ok')
587
def upload_kysoft_cloud_conf(self):
588
threading.Thread(target=self.real_upload_kysoft_cloud_conf, name='UpLoad').start()
590
def download_kysoft_cloud_conf(self):
591
threading.Thread(target=self.real_download_kysoft_cloud_conf, name='DownLoad').start()
593
if __name__ == '__main__':
595
#cc = CloudConfig(None)
596
#cc.upload_kysoft_cloud_conf()
597
#cc.download_kysoft_cloud_conf()