wenn ich das richtig sehe werden die Applikationseinstellungen von QCad in der qcad3.ini auf C:\Dokumente und Einstellungen\XXXXX\Anwendungsdaten\RibbonSoft gespeichert - richtig?
Das bedeutet aber das wenn ich QCad auf einem USB Stick verwende und diesen auf immer wieder unterschiedlichen Rechnern einsetzte ich jedes mal alle Einstellungen neu machen muss. Auch der Autosave Pfad den ich natürlich sinngemäß auf den USB Stick pointe ist davon betroffen.
Das ist natürlich sehr aufwendig und ich frage mich wo der Nutzen für mich liegt das einmal gemachte Einstellungen nicht mehr genutzt werden können.
Jeder Rechner an dem ich arbeite bekommt von mir ungewollt gespeicherte Dateien hinterlassen.
Wenn ich nicht aufpasse sind auch meine Datensicherungen (Autosave) auf dem Rechner den ich vielleicht nie wieder benutzen werde - wie komme ich dann an diese Sicherungen heran?
Frage: Ist es möglich das ich diese Speicherorte auf den USB Stick verlegen kann damit ich nicht immer wieder alles neu machen muss und ich definitiv alles was ich auf dem USB-Stick mitgebracht habe auch wieder mitnehme - inklusive meiner eines Tages vielleicht sehr wichtigen Autosave Speicherungen?
Vielleicht sogar als Option in den Applikationseinstellungen wie z.B.
Verwendung auf PC oder Mobiler Speicher
Der Pfad der Konfigurationsdatei wird vom System vorgegeben und ist weitgehend standardisiert. Es handelt sich dabei um einen versteckten Pfad an dem Sie sicher Schreibberechtigung haben was z.B. im Installationsverzeichnis von QCAD in der Regel nicht der Fall ist.
Eine Option sollte möglich sein. QCAD müsste dann natürlich immer erst prüfen, ob es im Applikationsverzeichnis eine QCAD3.ini gibt. Falls ja, wird diese verwendet, sonst die auf dem PC. Falls das gemeint ist, bitte Feature Request unter:
QCAD greift schon beim Start intensiv auf die QCAD3.ini zu. Schon vor dem Start muss also klar sein, wo die Datei zu finden ist.
Einmal angenommen, QCAD hätte in den Einstellungen eine Option zum Setzen des Pfades der QCAD3.ini. Diese Einstellung würde dann in der QCAD3.ini gespeichert. Die QCAD3.ini kann dann beim nächsten Start aber nicht mehr gefunden werden, weil sie ja irgendwo sein kann (Benutzerdefiniert).
Die einzige Lösung, die ich mir denken kann, ist eine Kommandozeilenoption (z.B.: Start von QCAD in der Kommandozeile mit: qcad.exe -config z:\QCAD3.ini). Das wiederum wäre aber wohl gerade für Windowsbenutzer sehr ungewöhnlich. Ich weiss nicht wie realistisch diese Lösung für dich wäre. Wird die Kommandozeilenoption nicht angegeben, so wird natürlich sofort im Standardpfad eine neue QCAD3.ini angelegt.
Bestände die Möglichkeit dies auch direkt in einer Programmstartverknüpfung zu hinterlegen?
Also eine Verknüfung auf dem USB Stick anlegen zur qcad.exe mit folgenden Eigenschaften:
Falls ich mit so einer Verknüpfung (welche auch Windows usern geläufiger ist als die Kommandozeilengeschichte) in der Lage wäre QCAD zu zwingen “nur” die ini auf dem USB Stick zu verwenden und etwaige Änderungen von mir auch “nur” wieder auf dem USB Stick gespeichert werden wäre es eine absolut akzeptable Lösung für mich.
Hier eine experimentelle Implementation der -config Option: autostart.js (22.2 KB)
Diese Datei ersetzt die Datei /scripts/autostart.js
Benutzung:
qcad.exe -config z:\Sollte QCAD3.ini erzeugen in z:\QCAD\QCAD3.ini. Das Unterverzeichnis “QCAD”, sowie der Dateiname “QCAD3.ini” sind nicht konfigurierbar.
In z:\QCAD werden ausserdem die Datenbank der Teilebibliothek und Autosaves von unbenannten Dokumenten gespeichert.
Eigentlich wollte ich mich gerade entschuldigen für die verzögerte Reaktion aber mit der Beantwortung Deiner Frage erledigt sich das wahrscheinlich.
Nein … nicht zurück und ja … noch auf! 9h Zeitunterschied
Ich habe heute ein wenig mit Deinen Lösungen gespielt und denke das ist der ideale Ansatz. Vielen Dank dafür! Technisch funktioniert alles bestens und die Verknüpfung in Windows klappt auch tadellos.
Was mich ein wenig irritiert hat ist das vorprogrammierte “QCAD” Verzeichnis welches immer zum tragen kommt. Ich denke aber das basiert auf die “Zweckentfremdung” der Aufgabe unter Anwenderdaten die ini in einem QCAD Verzeichnis abzulegen.
Trotzdem hier ein Beispiel:
QCAD und die qcad3.ini liegen auf meinem USB-Stick in:
F:\CAD\QCAD
Verknüpfung zum Aufruf mit dieser ini muss dann lauten:
F:\CAD\QCAD\qcad.exe -config F:\CAD
erwartet hatte ich aber das folgenden Befehl richtig gewesen wäre:
F:\CAD\QCAD\qcad.exe -config F:\CAD\QCAD
Beim spielen habe ich festgestellt das auch andere locations möglich sind - was mir am besten gefallen würde.
Also habe ich mir eine Verknüpfung gemacht:
F:\CAD\QCAD\qcad.exe -config F:\CAD\start_ini
Aber auch hier wird selbsttätig noch ein Verzeichnis dran gehängt:
F:\CAD\start_ini\QCAD
indem dann letztendlich die qcad3.ini gespeichert wird.
Long story short:
Ich denke für den User am wenigsten verwirrend und am leichtesten zu pflegen wäre wenn folgendes als absoluten Pfad angeben werden könnte:
z.B.
F:\CAD\QCAD\start_ini
wobei dann die qcad3.ini direkt im Ordner start_ini aufgerufen oder auch gespeichert würde.
Haha - habe auch öfter das Gefühl, dass ich in der falschen Zeitzone zuhause bin
Ich habe heute ein wenig mit Deinen Lösungen gespielt und denke das ist der ideale Ansatz. Vielen Dank dafür!
Kein Problem
Ich denke für den User am wenigsten verwirrend und am leichtesten zu pflegen wäre wenn folgendes als absoluten Pfad angeben werden könnte:
z.B.
F:\CAD\QCAD\start_ini
wobei dann die qcad3.ini direkt im Ordner start_ini aufgerufen oder auch gespeichert würde.
Das geht von Qt aus nicht. QCAD verwendet die QSettings Klasse des Qt Toolkits und ein Unterverzeichnis mit Applikationsname als Name wird da automatisch erstellt. Das macht auch durchaus Sinn, weil normalerweise ja in solchen Konfigurationsverzeichnissen Daten von verschiedenen Applikationen abgelegt werden. Namenskonflikte müssen also unbedingt vermieden werden.
Vorschlag:
F:\CAD\QCAD\qcad.exe -config F:\config
So werden die QCAD Konfigurationsdateien in F:\config\QCAD abgelegt. Falls noch eine andere Applikation dieses Verzeichnis benutzen würde, würden diese Daten dann z.B. in F:\config\AndereApp abgelegt.
Ok, das Qt das nicht macht um auf der sicheren Seite zu sein ist nachvollziehbar. Für mich als solches ist eine gute Lösung für ein eigenständiges Mobiles QCAD gefunden - also werde ich gerne damit leben können.
Ja, das config Verzeichnis macht Sinn - ich denke ich werde das dann auch so umsetzen.
qcad.exe -h zeigt wie üblich bei Kommandozeilenwerkzeugen die Hilfe an:
Usage: qcad.exe [Options] [Files to open]
-allow-multiple-instances Don’t try to avoid multiple instances from running
simultaneously.
-always-load-scripts Forces reloading of scripts when they are used.
This is mainly useful during script development,
to apply changes without restarting QCAD.
-app-id [ID] Set application ID. Multiple instances of the
same application (same ID) cannot run
simultaneously unless -allow-multiple-instances
is used.
-autostart [script file] Starts the given script file instead of the default
scripts/autostart.js. Note that with this option,
QCAD is not started but rather the application
implemented in the given script.
-config [path] Reads and stores settings to QCAD3.ini at the given
location instead of the default location.
-enable-script-debugger Enables the script debugger.
NOT recommended as this may cause unexpected
behavior when using QCAD.
-exec [script file] [options] Executes the given script file directly
after staring QCAD. Options after the script
file are passed on to the script.
-gui-css-file [CSS file] Loads the specified CSS file.
-gui-style [StyleName] Loads a predefined style. Available styles are:
None, BlueSteel, Flat, Simple
-help Displays this help.
-locale [locale] Sets the locale to be used (overrides
the language set in the preferences).
E.g. ‘-locale de’ starts QCAD in German.
-no-gui Don’t use GUI. X11: don’t connect to X11 server.
-no-show Use but don’t display GUI.
-filter [filter] Opens the subsequent file(s) with the explicitly
given import filter.
-rescan Rescan scripts folder for new add-ons
-version Displays the application version.
-quit Quits QCAD, for example after executing the
given script(s).
eigentlich geht das schon etwas OT aber da wir hier schon darüber gesprochen haben …
Ich benötige QCAD manchmal in Deutsch und manchmal in English. Dafür habe ich meine “Original Version” in English eingerichtet und starte für den anderen Fall QCAD unter Windows mit “C:\Programme\QCAD Pro 3.5.1\qcad.exe” -locale de".
Nun habe ich gesehen das es scheinbar auch ein Kommandozeilenwerkzeug gibt um mir die QCAD Version anzeigen zu lassen. Nur versuche ich QCAD mit “C:\Programme\QCAD Pro 3.5.1\qcad.exe” -version" zu starten … passiert gar nichts.
Ich dachte (hoffte) ich könnte so erreichen das QCAD in der Bedienoberfläche die Version anzeigt. Da es nicht funktioniert weiß ich nicht ob ich mit meiner Vermutung der Anzeige richtig liege …
Wäre das generell so möglich und könnte ich das auch noch kombinieren für “Deutsch” und “Version” mit etwas ähnlichem wie:
“C:\Programme\QCAD Pro 3.5.1\qcad.exe” -locale de -version
Die Kommandozeilenoptionen -version und -help sind Standardoptionen, die von Kommandozeilenwerkzeugen in der Regel angeboten werden, um die Version, respektive Hilfe zu Kommandozeilenoptionen anzuzeigen.
Die Ausgabe erfolgt dabei an standard output (stdout). Unter Windows müsste man wohl stdout in eine Datei umleiten, um an die Ausgabe zu kommen, da unter Windows GUI Applikationen nicht mit dem Terminal verbunden sind:
qcad.exe 1>output.txt
type output.txtDie Kommandozeile ist unter Windows praktisch unbrauchbar. Diese Optionen sind dann auch vor allem für Linux und OS X Benutzer (und allenfalls cygwin Benutzer) interessant.