# # Copyright (C) 2008 jerous # Copyright (C) 2009 Anton Khirnov # # Nephilim is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Nephilim is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Nephilim. If not, see . # from PyQt4 import QtCore, QtGui import socket import logging import os socket.setdefaulttimeout(8) appIcon = 'gfx/nephilim_small.png' APPNAME = 'nephilim' ORGNAME = 'nephilim' def sec2min(secs): """Converts seconds to min:sec.""" min=int(secs/60) sec=secs%60 if sec<10:sec='0'+str(sec) return str(min)+':'+str(sec) class Button(QtGui.QPushButton): iconSize=32 """A simple Button class which calls $onClick when clicked.""" def __init__(self, caption, onClick=None, iconPath=None, iconOnly=False, parent=None): QtGui.QPushButton.__init__(self, parent) if onClick: self.connect(self, QtCore.SIGNAL('clicked(bool)'), onClick) if iconPath: self.changeIcon(iconPath) if not(iconPath and iconOnly): QtGui.QPushButton.setText(self, caption) self.setToolTip(caption) def setText(self, caption): self.setToolTip(caption) if self.icon()==None: self.setText(caption) def changeIcon(self, iconPath): icon=QtGui.QIcon() icon.addFile(iconPath, QtCore.QSize(self.iconSize, self.iconSize)) self.setIcon(icon) def expand_tags(str, expanders): #ensure that str is QString str = QtCore.QString(str) for expander in expanders: str = expander.expand_tags(str) #remove unexpanded tags return str.replace(QtCore.QRegExp('\\$\\w+'), '') def generate_metadata_path(song, dir_tag, file_tag): """Generate dirname and (db files only) full file path for reading/writing metadata files (cover, lyrics) from $tags in dir/filename.""" if QtCore.QDir.isAbsolutePath(song.filepath()): dirname = os.path.dirname(song.filepath()) filepath = '' elif '://' in song.filepath(): # we are streaming dirname = '' filepath = '' else: dirname = expand_tags(dir_tag, (QtGui.QApplication.instance(), song)) filepath = '%s/%s'%(dirname, expand_tags(file_tag, (QtGui.QApplication.instance(), song)).replace('/', '_')) return dirname, filepath