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()
|
@QtCore.pyqtSlot()
|
||||||
def openDir(self):
|
def openDir(self):
|
||||||
if ostools.isOSX():
|
|
||||||
QtGui.QDesktopServices.openUrl(QtCore.QUrl("file:///" + os.path.join(_datadir, "logs"), QtCore.QUrl.TolerantMode))
|
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))
|
|
||||||
|
|
||||||
class PesterLogViewer(QtGui.QDialog):
|
class PesterLogViewer(QtGui.QDialog):
|
||||||
def __init__(self, chum, config, theme, parent):
|
def __init__(self, chum, config, theme, parent):
|
||||||
|
|
|
@ -29,5 +29,7 @@ def osVer():
|
||||||
def getDataDir():
|
def getDataDir():
|
||||||
if isOSX():
|
if isOSX():
|
||||||
return os.path.join(str(QDesktopServices.storageLocation(QDesktopServices.DataLocation)), "Pesterchum/")
|
return os.path.join(str(QDesktopServices.storageLocation(QDesktopServices.DataLocation)), "Pesterchum/")
|
||||||
|
elif isLinux():
|
||||||
|
return os.path.join(str(QDesktopServices.storageLocation(QDesktopServices.HomeLocation)), ".pesterchum/")
|
||||||
else:
|
else:
|
||||||
return ''
|
return os.path.join(str(QDesktopServices.storageLocation(QDesktopServices.DataLocation)), "pesterchum/")
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# pesterchum
|
# pesterchum
|
||||||
import os, sys, getopt
|
import os, shutil, sys, getopt
|
||||||
if os.path.dirname(sys.argv[0]):
|
if os.path.dirname(sys.argv[0]):
|
||||||
os.chdir(os.path.dirname(sys.argv[0]))
|
os.chdir(os.path.dirname(sys.argv[0]))
|
||||||
import version
|
import version
|
||||||
|
@ -47,8 +47,21 @@ if not ((major > 4) or (major == 4 and minor >= 6)):
|
||||||
_datadir = ostools.getDataDir()
|
_datadir = ostools.getDataDir()
|
||||||
# See, what I've done here is that _datadir is '' if we're not on OSX, so the
|
# 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.
|
# concatination is the same as if it wasn't there.
|
||||||
if _datadir and not os.path.exists(_datadir):
|
# UPDATE 2011-11-28 <Kiooeht>:
|
||||||
os.mkdir(_datadir)
|
# 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"):
|
if not os.path.exists(_datadir+"profiles"):
|
||||||
os.mkdir(_datadir+"profiles")
|
os.mkdir(_datadir+"profiles")
|
||||||
if not os.path.exists(_datadir+"pesterchum.js"):
|
if not os.path.exists(_datadir+"pesterchum.js"):
|
||||||
|
|
18
profile.py
18
profile.py
|
@ -311,8 +311,8 @@ class userConfig(object):
|
||||||
for dirname, dirnames, filenames in os.walk(_datadir+'themes'):
|
for dirname, dirnames, filenames in os.walk(_datadir+'themes'):
|
||||||
for d in dirnames:
|
for d in dirnames:
|
||||||
themes.append(d)
|
themes.append(d)
|
||||||
# For OSX, also load embedded themes.
|
# Also load embedded themes.
|
||||||
if ostools.isOSX():
|
if _datadir:
|
||||||
for dirname, dirnames, filenames in os.walk('themes'):
|
for dirname, dirnames, filenames in os.walk('themes'):
|
||||||
for d in dirnames:
|
for d in dirnames:
|
||||||
if d not in themes:
|
if d not in themes:
|
||||||
|
@ -430,7 +430,7 @@ class userProfile(object):
|
||||||
fp.close()
|
fp.close()
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def newUserProfile(chatprofile):
|
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)
|
newprofile = userProfile(chatprofile.handle)
|
||||||
else:
|
else:
|
||||||
newprofile = userProfile(chatprofile)
|
newprofile = userProfile(chatprofile)
|
||||||
|
@ -519,11 +519,15 @@ class PesterProfileDB(dict):
|
||||||
|
|
||||||
class pesterTheme(dict):
|
class pesterTheme(dict):
|
||||||
def __init__(self, name, default=False):
|
def __init__(self, name, default=False):
|
||||||
self.path = _datadir+"themes/%s" % (name)
|
possiblepaths = (_datadir+"themes/%s" % (name),
|
||||||
if not os.path.exists(self.path):
|
"themes/%s" % (name),
|
||||||
self.path = "themes/%s" % (name)
|
_datadir+"themes/pesterchum",
|
||||||
if not os.path.exists(self.path):
|
"themes/pesterchum")
|
||||||
self.path = "themes/pesterchum"
|
self.path = "themes/pesterchum"
|
||||||
|
for p in possiblepaths:
|
||||||
|
if os.path.exists(p):
|
||||||
|
self.path = p
|
||||||
|
break
|
||||||
|
|
||||||
self.name = name
|
self.name = name
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -18,7 +18,7 @@ class PythonQuirks(object):
|
||||||
for fn in os.listdir(os.path.join(self.home, 'quirks')):
|
for fn in os.listdir(os.path.join(self.home, 'quirks')):
|
||||||
if fn.endswith('.py') and not fn.startswith('_'):
|
if fn.endswith('.py') and not fn.startswith('_'):
|
||||||
filenames.append(os.path.join(self.home, 'quirks', fn))
|
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')):
|
if not os.path.exists(os.path.join(self._datadir, 'quirks')):
|
||||||
os.mkdir(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')):
|
for fn in os.listdir(os.path.join(self._datadir, 'quirks')):
|
||||||
|
|
Loading…
Reference in a new issue