Skip to content

Commit 74e90df

Browse files
Andrew ArnesonAndrew Arneson
authored andcommitted
Revert QSettings location to IniFormat UserScope defaults
Adds `-c/--config-file <filename/dir>` argument to tag_studio.py
1 parent 6566682 commit 74e90df

2 files changed

Lines changed: 43 additions & 4 deletions

File tree

tagstudio/src/qt/ts_qt.py

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,6 @@
107107

108108
logging.basicConfig(format="%(message)s", level=logging.INFO)
109109

110-
# Keep settings in ini format in the current working directory.
111-
QSettings.setPath(QSettings.IniFormat, QSettings.UserScope, os.getcwd())
112-
113110

114111
class NavigationState:
115112
"""Represents a state of the Library grid view."""
@@ -189,7 +186,42 @@ def __init__(self, core, args):
189186

190187
self.SIGTERM.connect(self.handleSIGTERM)
191188

192-
self.settings = QSettings(QSettings.IniFormat, QSettings.UserScope, "TagStudio")
189+
if self.args.config_file:
190+
path = Path(self.args.config_file)
191+
if path.is_dir():
192+
path = path / "TagStudio.ini"
193+
self.settings = QSettings(str(path), QSettings.IniFormat)
194+
logging.info(
195+
f"[QT DRIVER] Directory provided defaulting to TagStudio.ini in directory, using {self.settings.fileName()}"
196+
)
197+
elif path.is_file():
198+
self.settings = QSettings(str(path), QSettings.IniFormat)
199+
logging.info(
200+
f"[QT DRIVER] Config File exists, using {self.settings.fileName()}"
201+
)
202+
else:
203+
if path.suffix == ".ini" and path.parent.is_dir():
204+
self.settings = QSettings(str(path), QSettings.IniFormat)
205+
logging.info(
206+
f"[QT DRIVER] Config File does not exist, valid path specified using {self.settings.fileName()}"
207+
)
208+
else:
209+
self.settings = QSettings(
210+
QSettings.IniFormat,
211+
QSettings.UserScope,
212+
"TagStudio",
213+
"TagStudio",
214+
)
215+
logging.warning(
216+
f"[QT DRIVER] Config File does not exist, defaulting to {self.settings.fileName()}"
217+
)
218+
else:
219+
self.settings = QSettings(
220+
QSettings.IniFormat, QSettings.UserScope, "TagStudio", "TagStudio"
221+
)
222+
logging.info(
223+
f"[QT DRIVER] Config File not specified, defaulting to {self.settings.fileName()}"
224+
)
193225

194226
max_threads = os.cpu_count()
195227
for i in range(max_threads):

tagstudio/tag_studio.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ def main():
2929
type=str,
3030
help="Path to a TagStudio Library folder to open on start.",
3131
)
32+
parser.add_argument(
33+
"-c", "--config-file",
34+
dest="config_file",
35+
type=str,
36+
help="Path to a TagStudio.ini config file to use"
37+
)
38+
3239
# parser.add_argument('--browse', dest='browse', action='store_true',
3340
# help='Jumps to entry browsing on startup.')
3441
# parser.add_argument('--external_preview', dest='external_preview', action='store_true',

0 commit comments

Comments
 (0)