~ubuntu-branches/ubuntu/vivid/youker-assistant/vivid

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Aron Xu
  • Date: 2014-03-24 15:52:37 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20140324155237-3kod0m3wr2a2ag39
Tags: 1.0.1-0ubuntu1
* New upstream release (LP: #1294936).
* Modify display mode of weather forecast and system settings.
* Add file manager and font style settings.
* Improve system settings and restoring default settings.
* Cache user account (not password).
* Change the position of window control buttons.
* Add configuration for Kingsoft KuaiPan cloud client.
* Add the instruction of Youker Assistant.
* Open related folders when scanning items got double-clicked.
* Notify users when operating the Kingsoft disk cloud configuration.
* Modify Dbus starting method.

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
        self.conf.read(file_name)
 
48
        sections = self.conf.sections()
 
49
 
 
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')
 
66
 
 
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/',
 
75
            'icon-size', 'int')
 
76
 
 
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')
 
90
 
 
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')
 
116
 
 
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')
 
127
 
 
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',
 
136
            'org.compiz.gwd',
 
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')
 
147
 
 
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')
 
170
 
 
171
        fd = open(file_name, 'w')
 
172
        self.conf.write(fd)
 
173
        fd.close()
 
174
 
 
175
    # system settings
 
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':
 
180
            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')
 
189
        else :
 
190
            conf_value = self.conf.get(conf_id, 'value')
 
191
        #gsettings.set(conf_schema, conf_path, conf_key, conf_type, conf_value)
 
192
 
 
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')
 
204
        else:
 
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)
 
209
 
 
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')
 
241
 
 
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')
 
257
 
 
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')
 
283
 
 
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')
 
333
 
 
334
 
 
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')
 
354
 
 
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')
 
397
 
 
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')
 
441
 
 
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')
 
453
 
 
454
        # launcher settings
 
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')
 
459
 
 
460
        # touchpad settings
 
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')
 
469
 
 
470
        # font settings
 
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')
 
487
 
 
488
        # theme settings
 
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')
 
495
 
 
496
        # window settings
 
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')
 
509
 
 
510
        # file manager
 
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')
 
525
 
 
526
    
 
527
    # Restore the system configuration
 
528
    def use_cloud_configuration(self, file_name):
 
529
        print file_name
 
530
        self.conf.read(file_name)
 
531
        sections = self.conf.sections()
 
532
        for conf_id in sections:
 
533
            self.setconf(conf_id)
 
534
        return True
 
535
 
 
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')
 
541
        
 
542
    # Determine whether kuaipan process starts
 
543
    def kuaipan_run(self):
 
544
        ps = os.popen('pgrep kuaipan4uk')
 
545
        kuaipan_ps = ps.read()
 
546
        ps.close()
 
547
        return kuaipan_ps
 
548
 
 
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')
 
554
            return
 
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')
 
566
 
 
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')
 
572
            return
 
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):
 
579
        # 云端没有备份的配置文件
 
580
            self.sysdaemon.download_cloud_conf_signal('download_notconf')
 
581
            return
 
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')
 
585
 
 
586
    def upload_kysoft_cloud_conf(self):
 
587
        threading.Thread(target=self.real_upload_kysoft_cloud_conf, name='UpLoad').start()
 
588
 
 
589
    def download_kysoft_cloud_conf(self):
 
590
        threading.Thread(target=self.real_download_kysoft_cloud_conf, name='DownLoad').start()
 
591
 
 
592
if __name__ == '__main__':
 
593
    pass
 
594
    #cc = CloudConfig(None)
 
595
    #cc.upload_kysoft_cloud_conf()
 
596
    #cc.download_kysoft_cloud_conf()
 
597