Use data directory on all OSs
This commit is contained in:
parent
463801d504
commit
829fedcba5
5 changed files with 33 additions and 17 deletions
|
@ -125,10 +125,7 @@ class PesterLogUserSelect(QtGui.QDialog):
|
|||
|
||||
@QtCore.pyqtSlot()
|
||||
def openDir(self):
|
||||
if ostools.isOSX():
|
||||
QtGui.QDesktopServices.openUrl(QtCore.QUrl("file:///" + os.path.join(_datadir, "logs"), QtCore.QUrl.TolerantMode))
|
||||
else:
|
||||
QtGui.QDesktopServices.openUrl(QtCore.QUrl("file:///" + os.path.join(os.getcwd(), "logs"), QtCore.QUrl.TolerantMode))
|
||||
QtGui.QDesktopServices.openUrl(QtCore.QUrl("file:///" + os.path.join(_datadir, "logs"), QtCore.QUrl.TolerantMode))
|
||||
|
||||
class PesterLogViewer(QtGui.QDialog):
|
||||
def __init__(self, chum, config, theme, parent):
|
||||
|
|
|
@ -29,5 +29,7 @@ def osVer():
|
|||
def getDataDir():
|
||||
if isOSX():
|
||||
return os.path.join(str(QDesktopServices.storageLocation(QDesktopServices.DataLocation)), "Pesterchum/")
|
||||
elif isLinux():
|
||||
return os.path.join(str(QDesktopServices.storageLocation(QDesktopServices.HomeLocation)), ".pesterchum/")
|
||||
else:
|
||||
return ''
|
||||
return os.path.join(str(QDesktopServices.storageLocation(QDesktopServices.DataLocation)), "pesterchum/")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# pesterchum
|
||||
import os, sys, getopt
|
||||
import os, shutil, sys, getopt
|
||||
if os.path.dirname(sys.argv[0]):
|
||||
os.chdir(os.path.dirname(sys.argv[0]))
|
||||
import version
|
||||
|
@ -47,8 +47,21 @@ if not ((major > 4) or (major == 4 and minor >= 6)):
|
|||
_datadir = ostools.getDataDir()
|
||||
# See, what I've done here is that _datadir is '' if we're not on OSX, so the
|
||||
# concatination is the same as if it wasn't there.
|
||||
if _datadir and not os.path.exists(_datadir):
|
||||
os.mkdir(_datadir)
|
||||
# UPDATE 2011-11-28 <Kiooeht>:
|
||||
# Now using data directory as defined by QDesktopServices on all platforms
|
||||
# (on Linux, same as using xdg). To stay safe with older versions, copy any
|
||||
# data (profiles, logs, etc) from old location to new data directory.
|
||||
|
||||
if _datadir:
|
||||
if not os.path.exists(_datadir):
|
||||
os.makedirs(_datadir)
|
||||
if not os.path.exists(_datadir+"profiles/") and os.path.exists("profiles/"):
|
||||
shutil.move("profiles/", _datadir+"profiles/")
|
||||
if not os.path.exists(_datadir+"pesterchum.js") and os.path.exists("pesterchum.js"):
|
||||
shutil.move("pesterchum.js", _datadir+"pesterchum.js")
|
||||
if not os.path.exists(_datadir+"logs/") and os.path.exists("logs/"):
|
||||
shutil.move("logs/", _datadir+"logs/")
|
||||
|
||||
if not os.path.exists(_datadir+"profiles"):
|
||||
os.mkdir(_datadir+"profiles")
|
||||
if not os.path.exists(_datadir+"pesterchum.js"):
|
||||
|
|
20
profile.py
20
profile.py
|
@ -311,8 +311,8 @@ class userConfig(object):
|
|||
for dirname, dirnames, filenames in os.walk(_datadir+'themes'):
|
||||
for d in dirnames:
|
||||
themes.append(d)
|
||||
# For OSX, also load embedded themes.
|
||||
if ostools.isOSX():
|
||||
# Also load embedded themes.
|
||||
if _datadir:
|
||||
for dirname, dirnames, filenames in os.walk('themes'):
|
||||
for d in dirnames:
|
||||
if d not in themes:
|
||||
|
@ -430,7 +430,7 @@ class userProfile(object):
|
|||
fp.close()
|
||||
@staticmethod
|
||||
def newUserProfile(chatprofile):
|
||||
if os.path.exists("profiles/%s.js" % (chatprofile.handle)):
|
||||
if os.path.exists("%s/%s.js" % (_datadir+"profiles", chatprofile.handle)):
|
||||
newprofile = userProfile(chatprofile.handle)
|
||||
else:
|
||||
newprofile = userProfile(chatprofile)
|
||||
|
@ -519,11 +519,15 @@ class PesterProfileDB(dict):
|
|||
|
||||
class pesterTheme(dict):
|
||||
def __init__(self, name, default=False):
|
||||
self.path = _datadir+"themes/%s" % (name)
|
||||
if not os.path.exists(self.path):
|
||||
self.path = "themes/%s" % (name)
|
||||
if not os.path.exists(self.path):
|
||||
self.path = "themes/pesterchum"
|
||||
possiblepaths = (_datadir+"themes/%s" % (name),
|
||||
"themes/%s" % (name),
|
||||
_datadir+"themes/pesterchum",
|
||||
"themes/pesterchum")
|
||||
self.path = "themes/pesterchum"
|
||||
for p in possiblepaths:
|
||||
if os.path.exists(p):
|
||||
self.path = p
|
||||
break
|
||||
|
||||
self.name = name
|
||||
try:
|
||||
|
|
|
@ -18,7 +18,7 @@ class PythonQuirks(object):
|
|||
for fn in os.listdir(os.path.join(self.home, 'quirks')):
|
||||
if fn.endswith('.py') and not fn.startswith('_'):
|
||||
filenames.append(os.path.join(self.home, 'quirks', fn))
|
||||
if ostools.isOSX():
|
||||
if self._datadir:
|
||||
if not os.path.exists(os.path.join(self._datadir, 'quirks')):
|
||||
os.mkdir(os.path.join(self._datadir, 'quirks'))
|
||||
for fn in os.listdir(os.path.join(self._datadir, 'quirks')):
|
||||
|
|
Loading…
Reference in a new issue