~mate-ob/gm-notify/multi-account

« back to all changes in this revision

Viewing changes to account_settings_provider.py

  • Committer: Mateusz Balbus
  • Author(s): Mateusz Balbus
  • Date: 2015-11-12 12:21:43 UTC
  • Revision ID: devnull@localhost-20151112122143-nmzuxd6vr3utkrp3
[#5] Added support for multiaccount settings

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
# You should have received a copy of the GNU General Public License
19
19
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
20
#
 
21
from __future__ import print_function
21
22
 
22
23
from gi.repository import Gio
23
24
 
24
 
class SettingsProvider:
25
 
    def __init__(self):
26
 
        self.client = Gio.Settings("net.launchpad.gm-notify")
 
25
def create_settings_provider(username):
 
26
    if username:
 
27
        return AccountSettingsProvider(username)
 
28
    else:
 
29
        return DefaultSettingsProvider()
 
30
 
 
31
class AccountSettingsProvider:
 
32
    def __init__(self, username):
 
33
        self.client = Gio.Settings("net.launchpad.gm-notify.account", "/net/launchpad/gm-notify/" + username + "/")
27
34
    
28
35
    def retrieve_sound_file(self, default_file = None):
29
36
        soundfile = self.client.get_string("soundfile")
77
84
    
78
85
    def save_preferred_port(self, preferred_port):
79
86
        self.client.set_string("preferred-port", str(preferred_port))
80
 
    
81
 
    
82
 
    
83
 
    
84
 
    
85
 
    
86
 
    
87
 
    
88
 
    
89
 
    
90
 
    
91
 
    
92
 
    
93
 
    
94
 
    
95
 
    
96
 
    
97
 
    
98
 
    
99
 
    
 
 
b'\\ No newline at end of file'
 
87
        
 
88
    def remove_all_settings(self):
 
89
        self.client.reset("")
 
90
    
 
91
class DefaultSettingsProvider:
 
92
    def retrieve_sound_file(self, default_file = None):
 
93
        return default_file
 
94
 
 
95
    def retrieve_sound_enabled(self):
 
96
        return False
 
97
    
 
98
    def retrieve_ports_range(self):
 
99
        return [443]
 
100
    
 
101
    def retrieve_preferred_port(self):
 
102
        return 443
 
103
 
 
104
    def retrieve_ignore_inbox(self):
 
105
        return False
 
106
 
 
107
    def retrieve_mailboxes(self):
 
108
        return ''
 
109
    
 
110
    def retrieve_use_mail_client(self):
 
111
        return False
 
112
    
 
113
    def save_mailboxes(self, mailboxes):
 
114
        raise NotImplementedError("Saving not supported") 
 
115
 
 
116
    
 
117
    def save_ignore_inbox(self, ignore_inbox):
 
118
        raise NotImplementedError("Saving not supported")
 
119
 
 
120
    
 
121
    def save_use_mail_client(self, use_mail_client):
 
122
        raise NotImplementedError("Saving not supported")
 
123
 
 
124
    
 
125
    def save_sound_enabled(self, enabled):
 
126
        raise NotImplementedError("Saving not supported")
 
127
 
 
128
    
 
129
    def save_sound_file(self, sound_file):
 
130
        raise NotImplementedError("Saving not supported")
 
131
 
 
132
    
 
133
    def save_preferred_port(self, preferred_port):
 
134
        print("Ignoring save_preferred_port")
 
135
 
 
136
    def remove_all_settings(self):
 
137
        raise NotImplementedError("Removing not supported")
 
138