summaryrefslogtreecommitdiffstats
path: root/src/SettingsPaths.cpp
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2022-08-05 10:54:12 +0900
committerMichele Calgaro <[email protected]>2022-08-05 11:10:14 +0900
commit430373ae38565e0d7f62b8fca0cbad73de73ec7f (patch)
tree670a7322ddd2732c8824b1fb73090b937e2a1f82 /src/SettingsPaths.cpp
parentd833de5bbe40d780fe02dc95d1c981a4b1007108 (diff)
downloaduniversal-indent-gui-tqt-430373ae38565e0d7f62b8fca0cbad73de73ec7f.tar.gz
universal-indent-gui-tqt-430373ae38565e0d7f62b8fca0cbad73de73ec7f.zip
Format code using uncrustify
Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'src/SettingsPaths.cpp')
-rw-r--r--[-rwxr-xr-x]src/SettingsPaths.cpp380
1 files changed, 207 insertions, 173 deletions
diff --git a/src/SettingsPaths.cpp b/src/SettingsPaths.cpp
index f0b5b22..a8016f7 100755..100644
--- a/src/SettingsPaths.cpp
+++ b/src/SettingsPaths.cpp
@@ -37,14 +37,13 @@
paths needed for settings can be retrieved.
*/
-bool SettingsPaths::_alreadyInitialized = false;
+bool SettingsPaths::_alreadyInitialized = false;
TQString SettingsPaths::_applicationBinaryPath = "";
-TQString SettingsPaths::_settingsPath = "";
+TQString SettingsPaths::_settingsPath = "";
TQString SettingsPaths::_globalFilesPath = "";
-TQString SettingsPaths::_indenterPath = "";
-TQString SettingsPaths::_tempPath = "";
-bool SettingsPaths::_portableMode = false;
-
+TQString SettingsPaths::_indenterPath = "";
+TQString SettingsPaths::_tempPath = "";
+bool SettingsPaths::_portableMode = false;
/*!
\brief Initializes all available information about the paths.
@@ -56,220 +55,255 @@ bool SettingsPaths::_portableMode = false;
Means also that the directory "indenters" has to be there.
In not portable mode (multiuser mode) only users home directory is used for writing config data.
*/
-void SettingsPaths::init() {
- _alreadyInitialized = true;
+void SettingsPaths::init()
+{
+ _alreadyInitialized = true;
- tqDebug() << __LINE__ << " " << __FUNCTION__ << ": Initializing application paths.";
+ tqDebug() << __LINE__ << " " << __FUNCTION__ << ": Initializing application paths.";
- // Get the applications binary path, with respect to MacOSXs use of the .app folder.
- _applicationBinaryPath = TQCoreApplication::applicationDirPath();
- // Remove any trailing slashes
- while ( _applicationBinaryPath.right(1) == "/" ) {
- _applicationBinaryPath.chop(1);
- }
+ // Get the applications binary path, with respect to MacOSXs use of the .app folder.
+ _applicationBinaryPath = TQCoreApplication::applicationDirPath();
+ // Remove any trailing slashes
+ while (_applicationBinaryPath.right(1) == "/")
+ {
+ _applicationBinaryPath.chop(1);
+ }
#ifdef UNIVERSALINDENTGUI_NPP_EXPORTS
- _applicationBinaryPath += "/plugins/uigui";
+ _applicationBinaryPath += "/plugins/uigui";
#endif
#ifdef Q_OS_MAC
- // Because on Mac universal binaries are used, the binary path is not equal
- // to the applications (.app) path. So get the .apps path here.
- int indexOfDotApp = _applicationBinaryPath.indexOf(".app");
- if ( indexOfDotApp != -1 ) {
- // Cut off after the dot of ".app".
- _applicationBinaryPath = _applicationBinaryPath.left( indexOfDotApp-1 );
- // Cut off after the first slash that was in front of ".app" (normally this is the word "UniversalIndentGUI")
- _applicationBinaryPath = _applicationBinaryPath.left( _applicationBinaryPath.lastIndexOf("/") );
- }
+ // Because on Mac universal binaries are used, the binary path is not equal
+ // to the applications (.app) path. So get the .apps path here.
+ int indexOfDotApp = _applicationBinaryPath.indexOf(".app");
+ if (indexOfDotApp != -1)
+ {
+ // Cut off after the dot of ".app".
+ _applicationBinaryPath = _applicationBinaryPath.left(indexOfDotApp - 1);
+ // Cut off after the first slash that was in front of ".app" (normally this is the word
+ // "UniversalIndentGUI")
+ _applicationBinaryPath = _applicationBinaryPath.left(_applicationBinaryPath.lastIndexOf("/"));
+ }
#endif
- // If the "config" directory is a subdir of the applications binary path, use this one (portable mode)
- _settingsPath = _applicationBinaryPath + "/config";
- if ( TQFile::exists( _settingsPath ) ) {
- _portableMode = true;
- TQDir dirCreator;
- _globalFilesPath = _applicationBinaryPath;
- _indenterPath = _applicationBinaryPath + "/indenters";
- dirCreator.mkpath( _settingsPath );
- _tempPath = _applicationBinaryPath + "/temp";
- //TODO: If the portable drive has write protection, use local temp path and clean it up on exit.
- dirCreator.mkpath( _tempPath );
- }
- // ... otherwise use the system specific global application data path.
- else {
- _portableMode = false;
- TQDir dirCreator;
+ // If the "config" directory is a subdir of the applications binary path, use this one (portable
+ // mode)
+ _settingsPath = _applicationBinaryPath + "/config";
+ if (TQFile::exists(_settingsPath))
+ {
+ _portableMode = true;
+ TQDir dirCreator;
+ _globalFilesPath = _applicationBinaryPath;
+ _indenterPath = _applicationBinaryPath + "/indenters";
+ dirCreator.mkpath(_settingsPath);
+ _tempPath = _applicationBinaryPath + "/temp";
+ //TODO: If the portable drive has write protection, use local temp path and clean it up on exit.
+ dirCreator.mkpath(_tempPath);
+ }
+ // ... otherwise use the system specific global application data path.
+ else
+ {
+ _portableMode = false;
+ TQDir dirCreator;
#ifdef Q_OS_WIN
- // Get the local users application settings directory.
- // Remove any trailing slashes.
- _settingsPath = TQDir::fromNativeSeparators( qgetenv("APPDATA") );
- while ( _settingsPath.right(1) == "/" ) {
- _settingsPath.chop(1);
- }
- _settingsPath = _settingsPath + "/UniversalIndentGUI";
-
- // On windows systems the directories "indenters", "translations" are subdirs of the _applicationBinaryPath.
- _globalFilesPath = _applicationBinaryPath;
+ // Get the local users application settings directory.
+ // Remove any trailing slashes.
+ _settingsPath = TQDir::fromNativeSeparators(qgetenv("APPDATA"));
+ while (_settingsPath.right(1) == "/")
+ {
+ _settingsPath.chop(1);
+ }
+ _settingsPath = _settingsPath + "/UniversalIndentGUI";
+
+ // On windows systems the directories "indenters", "translations" are subdirs of the
+ // _applicationBinaryPath.
+ _globalFilesPath = _applicationBinaryPath;
#else
- // Remove any trailing slashes.
- _settingsPath = TQDir::homePath();
- while ( _settingsPath.right(1) == "/" ) {
- _settingsPath.chop(1);
- }
- _settingsPath = _settingsPath + "/.universalindentgui";
- _globalFilesPath = "/usr/share/universalindentgui";
+ // Remove any trailing slashes.
+ _settingsPath = TQDir::homePath();
+ while (_settingsPath.right(1) == "/")
+ {
+ _settingsPath.chop(1);
+ }
+ _settingsPath = _settingsPath + "/.universalindentgui";
+ _globalFilesPath = "/usr/share/universalindentgui";
#endif
- dirCreator.mkpath( _settingsPath );
- // If a highlighter config file does not exist in the users home config dir
- // copy the default config file over there.
- if ( !TQFile::exists(_settingsPath+"/UiGuiSyntaxHighlightConfig.ini") ) {
- TQFile::copy( _globalFilesPath+"/config/UiGuiSyntaxHighlightConfig.ini", _settingsPath+"/UiGuiSyntaxHighlightConfig.ini" );
- }
- _indenterPath = _globalFilesPath + "/indenters";
-
- // On different systems it may be that "TQDir::tempPath()" ends with a "/" or not. So check this.
- // Remove any trailing slashes.
- _tempPath = TQDir::tempPath();
- while ( _tempPath.right(1) == "/" ) {
- _tempPath.chop(1);
- }
- _tempPath = _tempPath + "/UniversalIndentGUI";
-
-#if defined(Q_OS_WIN32)
- dirCreator.mkpath( _tempPath );
+ dirCreator.mkpath(_settingsPath);
+ // If a highlighter config file does not exist in the users home config dir
+ // copy the default config file over there.
+ if (!TQFile::exists(_settingsPath + "/UiGuiSyntaxHighlightConfig.ini"))
+ {
+ TQFile::copy(_globalFilesPath + "/config/UiGuiSyntaxHighlightConfig.ini",
+ _settingsPath + "/UiGuiSyntaxHighlightConfig.ini");
+ }
+ _indenterPath = _globalFilesPath + "/indenters";
+
+ // On different systems it may be that "TQDir::tempPath()" ends with a "/" or not. So check
+ // this.
+ // Remove any trailing slashes.
+ _tempPath = TQDir::tempPath();
+ while (_tempPath.right(1) == "/")
+ {
+ _tempPath.chop(1);
+ }
+ _tempPath = _tempPath + "/UniversalIndentGUI";
+
+#if defined (Q_OS_WIN32)
+ dirCreator.mkpath(_tempPath);
#else
- // On Unix based systems create a random temporary directory for security
- // reasons. Otherwise an evil human being could create a symbolic link
- // to an important existing file which gets overwritten when UiGUI writes
- // into this normally temporary but linked file.
- char *pathTemplate = new char[_tempPath.length()+8];
- TQByteArray pathTemplateTQBA = TQString(_tempPath + "-XXXXXX").toAscii();
- delete [] pathTemplate;
- pathTemplate = pathTemplateTQBA.data();
- pathTemplate = mkdtemp( pathTemplate );
- _tempPath = pathTemplate;
+ // On Unix based systems create a random temporary directory for security
+ // reasons. Otherwise an evil human being could create a symbolic link
+ // to an important existing file which gets overwritten when UiGUI writes
+ // into this normally temporary but linked file.
+ char *pathTemplate = new char[_tempPath.length() + 8];
+ TQByteArray pathTemplateTQBA = TQString(_tempPath + "-XXXXXX").toAscii();
+ delete[] pathTemplate;
+ pathTemplate = pathTemplateTQBA.data();
+ pathTemplate = mkdtemp(pathTemplate);
+ _tempPath = pathTemplate;
#endif
- }
-
- tqDebug() << __LINE__ << " " << __FUNCTION__ << ": Paths are:" \
- "<ul><li>_applicationBinaryPath=" << _applicationBinaryPath \
- << "</li><li>_settingsPath=" << _settingsPath \
- << "</li><li>_globalFilesPath=" << _globalFilesPath \
- << "</li><li>_indenterPath=" << _indenterPath \
- << "</li><li>_tempPath=" << _tempPath \
- << "</li><li>Running in portable mode=" << _portableMode << "</li></ul>";
+ }
+
+ tqDebug() << __LINE__ << " " << __FUNCTION__ << ": Paths are:" \
+ "<ul><li>_applicationBinaryPath=" <<
+ _applicationBinaryPath << "</li><li>_settingsPath=" << _settingsPath <<
+ "</li><li>_globalFilesPath=" << _globalFilesPath << "</li><li>_indenterPath=" <<
+ _indenterPath << "</li><li>_tempPath=" << _tempPath <<
+ "</li><li>Running in portable mode=" << _portableMode << "</li></ul>";
}
-
/*!
\brief Returns the path of the applications executable.
*/
-const TQString SettingsPaths::getApplicationBinaryPath() {
- if ( !_alreadyInitialized ) {
- SettingsPaths::init();
- }
- return _applicationBinaryPath;
+const TQString SettingsPaths::getApplicationBinaryPath()
+{
+ if (!_alreadyInitialized)
+ {
+ SettingsPaths::init();
+ }
+ return _applicationBinaryPath;
}
-
/*!
\brief Returns the path where all settings are being/should be written to.
*/
-const TQString SettingsPaths::getSettingsPath() {
- if ( !_alreadyInitialized ) {
- SettingsPaths::init();
- }
- return _settingsPath;
+const TQString SettingsPaths::getSettingsPath()
+{
+ if (!_alreadyInitialized)
+ {
+ SettingsPaths::init();
+ }
+ return _settingsPath;
}
-
/*!
\brief Returns the path where the files concerning all users reside. For example translations.
*/
-const TQString SettingsPaths::getGlobalFilesPath() {
- if ( !_alreadyInitialized ) {
- SettingsPaths::init();
- }
- return _globalFilesPath;
+const TQString SettingsPaths::getGlobalFilesPath()
+{
+ if (!_alreadyInitialized)
+ {
+ SettingsPaths::init();
+ }
+ return _globalFilesPath;
}
-
/*!
\brief Returns the path where the indenter executables reside.
*/
-const TQString SettingsPaths::getIndenterPath() {
- if ( !_alreadyInitialized ) {
- SettingsPaths::init();
- }
- return _indenterPath;
+const TQString SettingsPaths::getIndenterPath()
+{
+ if (!_alreadyInitialized)
+ {
+ SettingsPaths::init();
+ }
+ return _indenterPath;
}
-
/*!
\brief Returns the path where the where all temporary data should be written to.
*/
-const TQString SettingsPaths::getTempPath() {
- if ( !_alreadyInitialized ) {
- SettingsPaths::init();
- }
- return _tempPath;
+const TQString SettingsPaths::getTempPath()
+{
+ if (!_alreadyInitialized)
+ {
+ SettingsPaths::init();
+ }
+ return _tempPath;
}
-
/*!
\brief Returns true if portable mode shall be used.
*/
-bool SettingsPaths::getPortableMode() {
- if ( !_alreadyInitialized ) {
- SettingsPaths::init();
- }
- return _portableMode;
+bool SettingsPaths::getPortableMode()
+{
+ if (!_alreadyInitialized)
+ {
+ SettingsPaths::init();
+ }
+ return _portableMode;
}
-
/*!
\brief Completely deletes the created temporary directory with all of its content.
*/
-void SettingsPaths::cleanAndRemoveTempDir() {
- TQDirIterator dirIterator(_tempPath, TQDirIterator::Subdirectories);
- TQStack<TQString> directoryStack;
- bool noErrorsOccurred = true;
-
- while ( dirIterator.hasNext() ) {
- TQString currentDirOrFile = dirIterator.next();
- // If this dummy call isn't done here, calling "dirIterator.fileInfo().isDir()" later somehow fails.
- dirIterator.fileInfo();
-
- if ( !currentDirOrFile.isEmpty() && dirIterator.fileName() != "." && dirIterator.fileName() != ".." ) {
- // There is a path on the stack but the current path doesn't start with that path.
- // So we changed into another parent directory and the one on the stack can be deleted
- // since it must be empty.
- if ( !directoryStack.isEmpty() && !currentDirOrFile.startsWith(directoryStack.top()) ) {
- TQString dirToBeRemoved = directoryStack.pop();
- bool couldRemoveDir = TQDir(dirToBeRemoved).rmdir(dirToBeRemoved);
- noErrorsOccurred &= couldRemoveDir;
- if ( couldRemoveDir == false )
- tqWarning() << __LINE__ << " " << __FUNCTION__ << "Could not remove the directory: " << dirToBeRemoved;
- //tqDebug() << "Removing Dir " << directoryStack.pop();
- }
-
- // If the iterator currently points to a directory push it onto the stack.
- if ( dirIterator.fileInfo().isDir() ) {
- directoryStack.push( currentDirOrFile );
- //tqDebug() << "Pushing onto Stack " << currentDirOrFile;
- }
- // otherwise it must be a file, so delete it.
- else {
- bool couldRemoveFile = TQFile::remove( currentDirOrFile );
- noErrorsOccurred &= couldRemoveFile;
- if ( couldRemoveFile == false )
- tqWarning() << __LINE__ << " " << __FUNCTION__ << "Could not remove the file: " << currentDirOrFile;
- //tqDebug() << "Removing File " << currentDirOrFile;
- }
- }
- }
- noErrorsOccurred &= TQDir(_tempPath).rmdir(_tempPath);
- if ( noErrorsOccurred == false )
- tqWarning() << __LINE__ << " " << __FUNCTION__ << "While cleaning up the temp dir an error occurred.";
+void SettingsPaths::cleanAndRemoveTempDir()
+{
+ TQDirIterator dirIterator(_tempPath, TQDirIterator::Subdirectories);
+ TQStack<TQString> directoryStack;
+ bool noErrorsOccurred = true;
+
+ while (dirIterator.hasNext())
+ {
+ TQString currentDirOrFile = dirIterator.next();
+ // If this dummy call isn't done here, calling "dirIterator.fileInfo().isDir()" later somehow
+ // fails.
+ dirIterator.fileInfo();
+
+ if (!currentDirOrFile.isEmpty() && dirIterator.fileName() != "." &&
+ dirIterator.fileName() != "..")
+ {
+ // There is a path on the stack but the current path doesn't start with that path.
+ // So we changed into another parent directory and the one on the stack can be deleted
+ // since it must be empty.
+ if (!directoryStack.isEmpty() && !currentDirOrFile.startsWith(directoryStack.top()))
+ {
+ TQString dirToBeRemoved = directoryStack.pop();
+ bool couldRemoveDir = TQDir(dirToBeRemoved).rmdir(dirToBeRemoved);
+ noErrorsOccurred &= couldRemoveDir;
+ if (couldRemoveDir == false)
+ {
+ tqWarning() << __LINE__ << " " << __FUNCTION__ << "Could not remove the directory: " <<
+ dirToBeRemoved;
+ }
+ //tqDebug() << "Removing Dir " << directoryStack.pop();
+ }
+
+ // If the iterator currently points to a directory push it onto the stack.
+ if (dirIterator.fileInfo().isDir())
+ {
+ directoryStack.push(currentDirOrFile);
+ //tqDebug() << "Pushing onto Stack " << currentDirOrFile;
+ }
+ // otherwise it must be a file, so delete it.
+ else
+ {
+ bool couldRemoveFile = TQFile::remove(currentDirOrFile);
+ noErrorsOccurred &= couldRemoveFile;
+ if (couldRemoveFile == false)
+ {
+ tqWarning() << __LINE__ << " " << __FUNCTION__ << "Could not remove the file: " <<
+ currentDirOrFile;
+ }
+ //tqDebug() << "Removing File " << currentDirOrFile;
+ }
+ }
+ }
+ noErrorsOccurred &= TQDir(_tempPath).rmdir(_tempPath);
+ if (noErrorsOccurred == false)
+ {
+ tqWarning() << __LINE__ << " " << __FUNCTION__ <<
+ "While cleaning up the temp dir an error occurred.";
+ }
}