diff options
author | Anton Khirnov <wyskas@gmail.com> | 2009-08-19 09:49:15 +0200 |
---|---|---|
committer | Anton Khirnov <wyskas@gmail.com> | 2009-08-19 09:49:15 +0200 |
commit | 34cc07dee5c909e0262386edf578ced4d646d784 (patch) | |
tree | 3762b6c23328031253197fe54561fc97bad4912b | |
parent | ae94ee8e4baefa34ab47e73280c7198ca55a39c5 (diff) |
plugin: make settings a var, not a function.
-rw-r--r-- | nephilim/plugin.py | 24 | ||||
-rw-r--r-- | nephilim/plugins/AlbumCover.py | 34 | ||||
-rw-r--r-- | nephilim/plugins/Filebrowser.py | 4 | ||||
-rw-r--r-- | nephilim/plugins/Library.py | 4 | ||||
-rw-r--r-- | nephilim/plugins/Lyrics.py | 32 | ||||
-rw-r--r-- | nephilim/plugins/Notify.py | 30 | ||||
-rw-r--r-- | nephilim/plugins/Playlist.py | 8 | ||||
-rw-r--r-- | nephilim/plugins/Systray.py | 10 | ||||
-rw-r--r-- | nephilim/settings_wg.py | 32 |
9 files changed, 88 insertions, 90 deletions
diff --git a/nephilim/plugin.py b/nephilim/plugin.py index 9bad75c..fd521f0 100644 --- a/nephilim/plugin.py +++ b/nephilim/plugin.py @@ -27,12 +27,12 @@ class Plugin(QtCore.QObject): name = None logger = None mpclient = None + settings = None # public, read-only loaded = None _dock_widget = None - _settings = None _parent = None o = None @@ -44,17 +44,17 @@ class Plugin(QtCore.QObject): self.mpclient = mpclient self._parent = parent self.loaded = False - self._settings = QtCore.QSettings() + self.settings = QtCore.QSettings() self.logger = logging.getLogger(self.name) #init settings self.logger.debug('Initializing default settings.') - self._settings.beginGroup(name) + self.settings.beginGroup(name) for key in self.DEFAULTS: - if not self._settings.contains(key): - self._settings.setValue(key, QVariant(self.DEFAULTS[key])) - self._settings.endGroup() + if not self.settings.contains(key): + self.settings.setValue(key, QVariant(self.DEFAULTS[key])) + self.settings.endGroup() def info(self): return '' @@ -62,8 +62,6 @@ class Plugin(QtCore.QObject): return self._parent def set_status(self, status): self._parent.setStatus(status) - def settings(self): - return self._settings def load(self): self.logger.info('loading') @@ -82,7 +80,7 @@ class Plugin(QtCore.QObject): if dock_widget: QtGui.QApplication.instance().main_win.remove_dock(dock_widget) self._dock_widget = None - self._settingsWidget = None + self.settingsWidget = None self.disconnect(self.mpclient, QtCore.SIGNAL('connect_changed'), self.set_enabled) self.loaded = False def set_enabled(self, val): @@ -99,17 +97,17 @@ class Plugin(QtCore.QObject): class SettingsWidget(QtGui.QWidget): """ plugins should subclass this""" plugin = None - _settings = None + settings = None def __init__(self, plugin): QtGui.QWidget.__init__(self) self.plugin = plugin - self._settings = QtCore.QSettings() + self.settings = QtCore.QSettings() def settings(self): - return self._settings + return self.settings - def save_settings(self): + def savesettings(self): """ reimplement this""" pass diff --git a/nephilim/plugins/AlbumCover.py b/nephilim/plugins/AlbumCover.py index 2a80fc0..8321944 100644 --- a/nephilim/plugins/AlbumCover.py +++ b/nephilim/plugins/AlbumCover.py @@ -103,7 +103,7 @@ class wgAlbumCover(QtGui.QLabel): self.plugin.emit(QtCore.SIGNAL('cover_changed'), self.cover) self.logger.info('Cover set.') - if (write and self.plugin.settings().value(self.plugin.name + '/store').toBool() + if (write and self.plugin.settings.value(self.plugin.name + '/store').toBool() and self._cover_filepath): if self.cover.save(self._cover_filepath, 'png'): self.logger.info('Cover saved.') @@ -134,13 +134,13 @@ class wgAlbumCover(QtGui.QLabel): self.logger.info("autorefreshing cover") # generate filenames - (self._cover_dirname, self._cover_filepath) = generate_metadata_path(song, self.plugin.settings().value(self.plugin.name + '/coverdir').toString(), - self.plugin.settings().value(self.plugin.name + '/covername').toString()) + (self._cover_dirname, self._cover_filepath) = generate_metadata_path(song, self.plugin.settings.value(self.plugin.name + '/coverdir').toString(), + self.plugin.settings.value(self.plugin.name + '/covername').toString()) write = False if not QtCore.QFile.exists(self._cover_filepath): for i in (0, 1): - src = self.plugin.settings().value(self.plugin.name + '/method%i'%i).toInt()[0] + src = self.plugin.settings.value(self.plugin.name + '/method%i'%i).toInt()[0] if src == AC_FETCH_LOCAL_DIR and self._cover_dirname: cover = self._fetch_local(song) elif src == AC_FETCH_AMAZON: @@ -274,7 +274,7 @@ class AlbumCover(Plugin): def __init__(self, plugin): Plugin.SettingsWidget.__init__(self, plugin) - self.settings().beginGroup(self.plugin.name) + self.settings.beginGroup(self.plugin.name) # fetching methods comboboxes self.methods = [QtGui.QComboBox(), QtGui.QComboBox()] @@ -282,23 +282,23 @@ class AlbumCover(Plugin): method.addItem('No method.') method.addItem('Local dir') method.addItem('Amazon') - method.setCurrentIndex(self.settings().value('method' + str(i)).toInt()[0]) + method.setCurrentIndex(self.settings.value('method' + str(i)).toInt()[0]) # store covers groupbox self.store = QtGui.QGroupBox('Store covers.') self.store.setToolTip('Should %s store its own copy of covers?'%APPNAME) self.store.setCheckable(True) - self.store.setChecked(self.settings().value('store').toBool()) + self.store.setChecked(self.settings.value('store').toBool()) self.store.setLayout(QtGui.QGridLayout()) # paths to covers - self.coverdir = QtGui.QLineEdit(self.settings().value('coverdir').toString()) + self.coverdir = QtGui.QLineEdit(self.settings.value('coverdir').toString()) self.coverdir.setToolTip('Where should %s store covers.\n' '$musicdir will be expanded to path to MPD music library (as set by user)\n' '$songdir will be expanded to path to the song (relative to $musicdir\n' 'other tags same as in covername' %APPNAME) - self.covername = QtGui.QLineEdit(self.settings().value('covername').toString()) + self.covername = QtGui.QLineEdit(self.settings.value('covername').toString()) self.covername.setToolTip('Filename for %s cover files.\n' 'All tags supported by MPD will be expanded to their\n' 'values for current song, e.g. $title, $track, $artist,\n' @@ -313,16 +313,16 @@ class AlbumCover(Plugin): self._add_widget(self.methods[1], 'Method 1', 'Method to try if the first one fails.') self.layout().addWidget(self.store) - self.settings().endGroup() + self.settings.endGroup() def save_settings(self): - self.settings().beginGroup(self.plugin.name) - self.settings().setValue('method0', QVariant(self.methods[0].currentIndex())) - self.settings().setValue('method1', QVariant(self.methods[1].currentIndex())) - self.settings().setValue('coverdir', QVariant(self.coverdir.text())) - self.settings().setValue('covername', QVariant(self.covername.text())) - self.settings().setValue('store', QVariant(self.store.isChecked())) - self.settings().endGroup() + self.settings.beginGroup(self.plugin.name) + self.settings.setValue('method0', QVariant(self.methods[0].currentIndex())) + self.settings.setValue('method1', QVariant(self.methods[1].currentIndex())) + self.settings.setValue('coverdir', QVariant(self.coverdir.text())) + self.settings.setValue('covername', QVariant(self.covername.text())) + self.settings.setValue('store', QVariant(self.store.isChecked())) + self.settings.endGroup() self.plugin.o.refresh() def get_settings_widget(self): diff --git a/nephilim/plugins/Filebrowser.py b/nephilim/plugins/Filebrowser.py index 4c28eee..a566489 100644 --- a/nephilim/plugins/Filebrowser.py +++ b/nephilim/plugins/Filebrowser.py @@ -92,9 +92,9 @@ class wgFilebrowser(QtGui.QWidget): path_base = os.path.basename(filepath) try: if os.path.isdir(filepath): - shutil.copytree(filepath, '%s/%s'%(self.plugin.settings().value('MPD/music_dir').toString(), path_base)) + shutil.copytree(filepath, '%s/%s'%(self.plugin.settings.value('MPD/music_dir').toString(), path_base)) else: - shutil.copy(filepath, unicode(self.plugin.settings().value('MPD/music_dir').toString())) + shutil.copy(filepath, unicode(self.plugin.settings.value('MPD/music_dir').toString())) target_paths.append(path_base) except (OSError, IOError), e: self.logger.error('Error copying to collection: %s.'%e) diff --git a/nephilim/plugins/Library.py b/nephilim/plugins/Library.py index 91865bc..0eb5fd4 100644 --- a/nephilim/plugins/Library.py +++ b/nephilim/plugins/Library.py @@ -53,7 +53,7 @@ class Library(Plugin): self.modes = QtGui.QComboBox() self.modes.setEditable(True) - for mode in self.settings().value(self.plugin.name + '/modes').toStringList(): + for mode in self.settings.value(self.plugin.name + '/modes').toStringList(): self.modes.addItem(mode) self._add_widget(self.modes, 'Modes', 'How should the songs in library be grouped.\n' 'Should be written in form tag1/tag2/...,\n' @@ -63,7 +63,7 @@ class Library(Plugin): modes = [] for i in range(0, self.modes.count()): modes.append(self.modes.itemText(i)) - self.settings().setValue(self.plugin.name + '/modes', QVariant(modes)) + self.settings.setValue(self.plugin.name + '/modes', QVariant(modes)) self.plugin.o.refresh_modes() def get_settings_widget(self): diff --git a/nephilim/plugins/Lyrics.py b/nephilim/plugins/Lyrics.py index 33ea369..9239d24 100644 --- a/nephilim/plugins/Lyrics.py +++ b/nephilim/plugins/Lyrics.py @@ -128,7 +128,7 @@ class Lyrics(Plugin): def __new_lyrics_fetched(self, song, lyrics): self.logger.info('Got new lyrics.') self.__results += 1 - if lyrics and self.settings().value(self.name + '/store').toBool(): + if lyrics and self.settings.value(self.name + '/store').toBool(): self.save_lyrics_file(lyrics) return self.o.set_lyrics(song, lyrics) elif self.__results >= len(self.__fetchers) and not self.o.lyrics_loaded: @@ -271,24 +271,24 @@ class Lyrics(Plugin): def __init__(self, plugin): Plugin.SettingsWidget.__init__(self, plugin) - self.settings().beginGroup(self.plugin.name) + self.settings.beginGroup(self.plugin.name) # store lyrics groupbox self.store = QtGui.QGroupBox('Store lyrics.') self.store.setToolTip('Should %s store its own copy of lyrics?'%misc.APPNAME) self.store.setCheckable(True) - self.store.setChecked(self.settings().value('store').toBool()) + self.store.setChecked(self.settings.value('store').toBool()) self.store.setLayout(QtGui.QGridLayout()) # paths to lyrics - self.lyricdir = QtGui.QLineEdit(self.settings().value('lyricdir').toString()) + self.lyricdir = QtGui.QLineEdit(self.settings.value('lyricdir').toString()) self.lyricdir.setToolTip('Where should %s store lyrics.\n' '$musicdir will be expanded to path to MPD music library (as set by user)\n' '$songdir will be expanded to path to the song (relative to $musicdir\n' 'other tags same as in lyricname' %misc.APPNAME) - self.lyricname = QtGui.QLineEdit(self.settings().value('lyricname').toString()) + self.lyricname = QtGui.QLineEdit(self.settings.value('lyricname').toString()) self.lyricname.setToolTip('Filename for %s lyricsfiles.\n' 'All tags supported by MPD will be expanded to their\n' 'values for current song, e.g. $title, $track, $artist,\n' @@ -301,20 +301,20 @@ class Lyrics(Plugin): self.setLayout(QtGui.QVBoxLayout()) self.layout().addWidget(self.store) - self.settings().endGroup() + self.settings.endGroup() def save_settings(self): - self.settings().beginGroup(self.plugin.name) - self.settings().setValue('lyricdir', QVariant(self.lyricdir.text())) - self.settings().setValue('lyricname', QVariant(self.lyricname.text())) - self.settings().setValue('store', QVariant(self.store.isChecked())) - self.settings().endGroup() + self.settings.beginGroup(self.plugin.name) + self.settings.setValue('lyricdir', QVariant(self.lyricdir.text())) + self.settings.setValue('lyricname', QVariant(self.lyricname.text())) + self.settings.setValue('store', QVariant(self.store.isChecked())) + self.settings.endGroup() self.plugin.refresh() #### public #### def _load(self): for site in self.__available_sites: - if site in self.settings().value('%s/sites'%self.name).toStringList(): + if site in self.settings.value('%s/sites'%self.name).toStringList(): self.__fetchers[site] = self.__available_sites[site](self) self.o = LyricsWidget(self) for fetcher in self.__fetchers: @@ -342,8 +342,8 @@ class Lyrics(Plugin): return self.o.set_lyrics(None, None) (self.__lyrics_dir, self.__lyrics_path) = misc.generate_metadata_path(song, - self.settings().value(self.name + '/lyricdir').toString(), - self.settings().value(self.name + '/lyricname').toString()) + self.settings.value(self.name + '/lyricdir').toString(), + self.settings.value(self.name + '/lyricname').toString()) try: self.logger.info('Trying to read lyrics from file %s.'%self.__lyrics_path) file = open(self.__lyrics_path, 'r') @@ -378,8 +378,8 @@ class Lyrics(Plugin): if not song: path = self.__lyrics_path else: - path = misc.generate_metadata_path(song, self.settings().value(self.name + '/lyricdir').toString(), - self.settings().value(self.name + '/lyricname').toString()) + path = misc.generate_metadata_path(song, self.settings.value(self.name + '/lyricdir').toString(), + self.settings.value(self.name + '/lyricname').toString()) try: os.remove(path) diff --git a/nephilim/plugins/Notify.py b/nephilim/plugins/Notify.py index a686555..e2204fa 100644 --- a/nephilim/plugins/Notify.py +++ b/nephilim/plugins/Notify.py @@ -126,22 +126,22 @@ class Notify(Plugin): song = self.mpclient.current_song() if not song: return - self.settings().beginGroup(self.name) - self.o.show(expand_tags(self.settings().value('songformat').toString(), (song,)), self.settings().value('timer').toInt()[0], + self.settings.beginGroup(self.name) + self.o.show(expand_tags(self.settings.value('songformat').toString(), (song,)), self.settings.value('timer').toInt()[0], NOTIFY_PRIORITY_SONG) - self.settings().endGroup() + self.settings.endGroup() def onConnected(self): - self.o.show('%s loaded'%APPNAME, self.settings().value(self.name + '/timer').toInt()[0]) + self.o.show('%s loaded'%APPNAME, self.settings.value(self.name + '/timer').toInt()[0]) def onDisconnect(self): - self.o.show('Disconnected!', self.settings().value(self.name + '/timer').toInt()[0]) + self.o.show('Disconnected!', self.settings.value(self.name + '/timer').toInt()[0]) def onStateChange(self, new_state): - self.o.show(new_state, self.settings().value(self.name + '/timer').toInt()[0]) + self.o.show(new_state, self.settings.value(self.name + '/timer').toInt()[0]) def onVolumeChange(self, new_vol): - self.o.show('Volume: %i%%'%(new_vol), self.settings().value(self.name + '/timer').toInt()[0], priority = NOTIFY_PRIORITY_VOLUME) + self.o.show('Volume: %i%%'%(new_vol), self.settings.value(self.name + '/timer').toInt()[0], priority = NOTIFY_PRIORITY_VOLUME) class SettingsWidgetNotify(Plugin.SettingsWidget): format = None @@ -149,11 +149,11 @@ class Notify(Plugin): def __init__(self, plugin): Plugin.SettingsWidget.__init__(self, plugin) - self.settings().beginGroup(self.plugin.name) + self.settings.beginGroup(self.plugin.name) - self.format = QtGui.QLineEdit(self.settings().value('songformat').toString()) + self.format = QtGui.QLineEdit(self.settings.value('songformat').toString()) - self.timer = QtGui.QLineEdit(self.settings().value('timer').toString()) + self.timer = QtGui.QLineEdit(self.settings.value('timer').toString()) self.timer.setValidator(QtGui.QIntValidator(self.timer)) self.setLayout(QtGui.QVBoxLayout()) @@ -161,13 +161,13 @@ class Notify(Plugin): 'will be expanded to their values for current song,\n' 'e.g. $track, $title, $artist, $album, $length, $date, etc.') self._add_widget(self.timer, 'Duration', 'How long should notifications be displayed in ms.') - self.settings().endGroup() + self.settings.endGroup() def save_settings(self): - self.settings().beginGroup(self.plugin.name) - self.settings().setValue('songformat', QVariant(self.format.text())) - self.settings().setValue('timer', QVariant(self.timer.text().toInt()[0])) - self.settings().endGroup() + self.settings.beginGroup(self.plugin.name) + self.settings.setValue('songformat', QVariant(self.format.text())) + self.settings.setValue('timer', QVariant(self.timer.text().toInt()[0])) + self.settings.endGroup() self.plugin.onSongChange() def get_settings_widget(self): diff --git a/nephilim/plugins/Playlist.py b/nephilim/plugins/Playlist.py index da10677..085fa84 100644 --- a/nephilim/plugins/Playlist.py +++ b/nephilim/plugins/Playlist.py @@ -63,10 +63,10 @@ class PlaylistWidget(QtGui.QWidget): self.setSelectionMode(QtGui.QTreeWidget.ExtendedSelection) self.setAlternatingRowColors(True) self.setRootIsDecorated(False) - columns = self.plugin.settings().value(self.plugin.name + '/columns').toStringList() + columns = self.plugin.settings.value(self.plugin.name + '/columns').toStringList() self.setColumnCount(len(columns)) self.setHeaderLabels(columns) - self.header().restoreState(self.plugin.settings().value(self.plugin.name + '/header_state').toByteArray()) + self.header().restoreState(self.plugin.settings.value(self.plugin.name + '/header_state').toByteArray()) self.connect(self, QtCore.SIGNAL('itemActivated(QTreeWidgetItem*, int)'), self._song_activated) self.connect(self.header(), QtCore.SIGNAL('geometriesChanged()'), self._save_state) @@ -74,13 +74,13 @@ class PlaylistWidget(QtGui.QWidget): self.connect(self.plugin.mpclient, QtCore.SIGNAL('disconnected'), self.fill) def _save_state(self): - self.plugin.settings().setValue(self.plugin.name + '/header_state', QVariant(self.header().saveState())) + self.plugin.settings.setValue(self.plugin.name + '/header_state', QVariant(self.header().saveState())) def _song_activated(self, item): self.plugin.mpclient.play(item.data(0, QtCore.Qt.UserRole).toPyObject().id()) def fill(self): - columns = self.plugin.settings().value(self.plugin.name + '/columns').toStringList() + columns = self.plugin.settings.value(self.plugin.name + '/columns').toStringList() self.clear() for song in self.plugin.mpclient.playlist(): item = QtGui.QTreeWidgetItem() diff --git a/nephilim/plugins/Systray.py b/nephilim/plugins/Systray.py index 23f7210..558fc24 100644 --- a/nephilim/plugins/Systray.py +++ b/nephilim/plugins/Systray.py @@ -29,7 +29,7 @@ class Systray(Plugin): DEFAULTS = {'format': '$track - $title by $artist on $album ($length)'} def _load(self): - self.format = self.settings().value(self.name + '/format').toString() + self.format = self.settings.value(self.name + '/format').toString() class SystrayWheelEventObject(QtCore.QObject): """This class listens for systray-wheel events""" def eventFilter(self, object, event): @@ -98,15 +98,15 @@ class Systray(Plugin): def __init__(self, plugin): Plugin.SettingsWidget.__init__(self, plugin) - self.format = QtGui.QLineEdit(self.settings().value(self.plugin.name + '/format').toString()) + self.format = QtGui.QLineEdit(self.settings.value(self.plugin.name + '/format').toString()) self.setLayout(QtGui.QVBoxLayout()) self._add_widget(self.format, 'Tooltip format') def save_settings(self): - self.settings().beginGroup(self.plugin.name) - self.settings().setValue('format', QVariant(self.format.text())) - self.settings().endGroup() + self.settings.beginGroup(self.plugin.name) + self.settings.setValue('format', QVariant(self.format.text())) + self.settings.endGroup() def get_settings_widget(self): return self.SettingsWidgetSystray(self) diff --git a/nephilim/settings_wg.py b/nephilim/settings_wg.py index 81d4006..d8c1177 100644 --- a/nephilim/settings_wg.py +++ b/nephilim/settings_wg.py @@ -48,13 +48,13 @@ class SettingsWidget(QtGui.QWidget): plugin.Plugin.SettingsWidget.__init__(self, None) self.mpclient = mpclient - self.settings().beginGroup('MPD') - self.host_txt = QtGui.QLineEdit(self.settings().value('host', QVariant('localhost')).toString()) - self.port_txt = QtGui.QLineEdit(self.settings().value('port', QVariant('6600')).toString()) - self.pass_txt = QtGui.QLineEdit(self.settings().value('password').toString()) + self.settings.beginGroup('MPD') + self.host_txt = QtGui.QLineEdit(self.settings.value('host', QVariant('localhost')).toString()) + self.port_txt = QtGui.QLineEdit(self.settings.value('port', QVariant('6600')).toString()) + self.pass_txt = QtGui.QLineEdit(self.settings.value('password').toString()) self.pass_txt.setEchoMode(QtGui.QLineEdit.Password) - self.lib_txt = QtGui.QLineEdit(self.settings().value('music_dir', QVariant(os.path.expanduser('~/music/'))).toString()) - self.settings().endGroup() + self.lib_txt = QtGui.QLineEdit(self.settings.value('music_dir', QVariant(os.path.expanduser('~/music/'))).toString()) + self.settings.endGroup() self.update = QtGui.QPushButton('Update MPD database') self.connect(self.update, QtCore.SIGNAL('clicked()'), self.update_db) @@ -97,19 +97,19 @@ class SettingsWidget(QtGui.QWidget): def save_settings(self): reconnect = False - self.settings().beginGroup('MPD') - if self.host_txt.text() != self.settings().value('host').toString(): - self.settings().setValue('host', QVariant(self.host_txt.text())) + self.settings.beginGroup('MPD') + if self.host_txt.text() != self.settings.value('host').toString(): + self.settings.setValue('host', QVariant(self.host_txt.text())) reconnect = True - if self.port_txt.text() != self.settings().value('port').toString(): - self.settings().setValue('port', QVariant(self.port_txt.text())) + if self.port_txt.text() != self.settings.value('port').toString(): + self.settings.setValue('port', QVariant(self.port_txt.text())) reconnect = True - if self.pass_txt.text() != self.settings().value('password').toString(): - self.settings().setValue('password', QVariant(self.pass_txt.text())) + if self.pass_txt.text() != self.settings.value('password').toString(): + self.settings.setValue('password', QVariant(self.pass_txt.text())) if self.pass_txt.text(): self.mpclient.password(self.pass_txt.text()) - self.settings().setValue('music_dir', QVariant(self.lib_txt.text())) - self.settings().endGroup() + self.settings.setValue('music_dir', QVariant(self.lib_txt.text())) + self.settings.endGroup() if reconnect: self.mpclient.disconnect_mpd() @@ -171,7 +171,7 @@ class SettingsWidget(QtGui.QWidget): def save_clicked(self): for wg in self.settings_wg: - wg.save_settings() + wg.save_settings def close_clicked(self): self.close() |