~feng-kylin/youker-assistant/youker-assistant

« back to all changes in this revision

Viewing changes to backends/youker-assistant-daemon/src/beautify/cloudconfig.py

  • Committer: lixiang
  • Date: 2018-03-06 03:13:06 UTC
  • Revision ID: lixiang@kylinos.cn-20180306031306-fd7qnru3vm4a1xjd
Rewrite with Qt5, and add system monitor

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/python
2
 
# -*- coding: utf-8 -*-
3
 
### BEGIN LICENSE
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.
8
 
#
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.
13
 
#
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/>.
16
 
### END LICENSE
17
 
 
18
 
import ConfigParser
19
 
import os, sys
20
 
import threading
21
 
import gsettings
22
 
from shutil import copy
23
 
 
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 = ''
31
 
 
32
 
    # write profiles
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))
37
 
        else:
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))
44
 
 
45
 
    # Save system configuration
46
 
    def save_configuration_to_local_file(self, file_name):
47
 
        pass
48
 
#        self.conf.read(file_name)
49
 
#        sections = self.conf.sections()
50
 
 
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')
67
 
 
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/',
76
 
#            'icon-size', 'int')
77
 
 
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')
91
 
 
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')
117
 
 
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')
128
 
 
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',
137
 
#            'org.compiz.gwd',
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')
148
 
 
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')
171
 
 
172
 
#        fd = open(file_name, 'w')
173
 
#        self.conf.write(fd)
174
 
#        fd.close()
175
 
 
176
 
    # system settings
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':
181
 
            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')
190
 
        else :
191
 
            conf_value = self.conf.get(conf_id, 'value')
192
 
        #gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
193
 
 
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')
205
 
        else:
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)
210
 
 
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')
242
 
 
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')
258
 
 
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')
284
 
 
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')
334
 
 
335
 
 
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')
355
 
 
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')
398
 
 
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')
442
 
 
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')
454
 
 
455
 
        # launcher settings
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')
460
 
 
461
 
        # touchpad settings
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')
470
 
 
471
 
        # font settings
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')
488
 
 
489
 
        # theme settings
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')
496
 
 
497
 
        # window settings
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')
510
 
 
511
 
        # file manager
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')
526
 
 
527
 
    
528
 
    # Restore the system configuration
529
 
    def use_cloud_configuration(self, file_name):
530
 
        print file_name
531
 
        self.conf.read(file_name)
532
 
        sections = self.conf.sections()
533
 
        for conf_id in sections:
534
 
            self.setconf(conf_id)
535
 
        return True
536
 
 
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')
542
 
        
543
 
    # Determine whether kuaipan process starts
544
 
    def kuaipan_run(self):
545
 
        ps = os.popen('pgrep kuaipan4uk')
546
 
        kuaipan_ps = ps.read()
547
 
        ps.close()
548
 
        return kuaipan_ps
549
 
 
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')
555
 
            return
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')
567
 
 
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')
573
 
            return
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):
580
 
        # 云端没有备份的配置文件
581
 
            self.sysdaemon.download_cloud_conf_signal('download_notconf')
582
 
            return
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')
586
 
 
587
 
    def upload_kysoft_cloud_conf(self):
588
 
        threading.Thread(target=self.real_upload_kysoft_cloud_conf, name='UpLoad').start()
589
 
 
590
 
    def download_kysoft_cloud_conf(self):
591
 
        threading.Thread(target=self.real_download_kysoft_cloud_conf, name='DownLoad').start()
592
 
 
593
 
if __name__ == '__main__':
594
 
    pass
595
 
    #cc = CloudConfig(None)
596
 
    #cc.upload_kysoft_cloud_conf()
597
 
    #cc.download_kysoft_cloud_conf()
598