From b770d869ae919f40a007652017caec59f13b2689 Mon Sep 17 00:00:00 2001 From: Vasily Date: Sun, 17 Mar 2019 11:59:45 +0100 Subject: [PATCH] Add initial planning for paths API The idea is to reduce manual string directories in the general code as much as possible, in order to reduce typos and general weirdness. --- build_scripts/qt/sources.pri | 6 ++++-- src/utils/paths.cpp | 19 +++++++++++++++++++ src/utils/paths.h | 25 +++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 src/utils/paths.cpp create mode 100644 src/utils/paths.h diff --git a/build_scripts/qt/sources.pri b/build_scripts/qt/sources.pri index e97b3c7..3cf35c7 100644 --- a/build_scripts/qt/sources.pri +++ b/build_scripts/qt/sources.pri @@ -15,7 +15,8 @@ SOURCES += src/main.cpp\ src/tabcontrollers/keyboardinput/KeyboardInputDummy.cpp \ src/openvr/openvr_init.cpp \ src/openvr/ivrinput.cpp \ - src/utils/setup.cpp + src/utils/setup.cpp \ + src/utils/paths.cpp HEADERS += src/overlaycontroller.h \ src/tabcontrollers/AudioTabController.h \ @@ -41,7 +42,8 @@ HEADERS += src/overlaycontroller.h \ src/openvr/ivrinput_action_set.h \ src/openvr/ivrinput_input_source.h \ src/openvr/ivrinput.h \ - src/utils/setup.h + src/utils/setup.h \ + src/utils/paths.h win32 { SOURCES += src/tabcontrollers/audiomanager/AudioManagerWindows.cpp \ diff --git a/src/utils/paths.cpp b/src/utils/paths.cpp new file mode 100644 index 0000000..fd958b2 --- /dev/null +++ b/src/utils/paths.cpp @@ -0,0 +1,19 @@ +#include "paths.h" +#include +namespace paths +{ +optional binaryDirectory() +{ + const auto binaryDir + = QStandardPaths::writableLocation( QStandardPaths::AppDataLocation ); + + if ( binaryDir != "" ) + { + return binaryDir.toStdString(); + } + else + { + return {}; + } +} +} // namespace paths diff --git a/src/utils/paths.h b/src/utils/paths.h new file mode 100644 index 0000000..7ce5685 --- /dev/null +++ b/src/utils/paths.h @@ -0,0 +1,25 @@ +#pragma once +#include +#include + +namespace paths +{ +using std::optional; +using std::string; + +optional binaryDirectory(); +optional binaryDirectoryFindFile( string fileName ); + +optional qmlDirectory(); +optional qmlDirectoryFindFile( string fileName ); + +optional imageDirectory(); +optional imageDirectoryFindFile( string fileName ); + +optional soundDirectory(); +optional soundDirectoryFindFile( string fileName ); + +optional settingsDirectory(); +optional settingsDirectoryFindFile( string fileName ); + +} // namespace paths