mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
added error message if settings initalizion failed
This commit is contained in:
parent
7fa2c7b4a5
commit
2b9b96abb5
|
@ -8,6 +8,7 @@
|
|||
#include <csignal>
|
||||
|
||||
#include "Application.hpp"
|
||||
#include "common/Modes.hpp"
|
||||
#include "common/NetworkManager.hpp"
|
||||
#include "singletons/Paths.hpp"
|
||||
#include "singletons/Resources.hpp"
|
||||
|
|
33
src/main.cpp
33
src/main.cpp
|
@ -5,6 +5,7 @@
|
|||
#include "BrowserExtension.hpp"
|
||||
#include "RunGui.hpp"
|
||||
#include "common/Args.hpp"
|
||||
#include "common/Modes.hpp"
|
||||
#include "singletons/Paths.hpp"
|
||||
#include "singletons/Settings.hpp"
|
||||
#include "util/IncognitoBrowser.hpp"
|
||||
|
@ -28,9 +29,35 @@ int main(int argc, char **argv)
|
|||
else
|
||||
{
|
||||
initArgs(args);
|
||||
Paths paths;
|
||||
Settings settings(paths.settingsDirectory);
|
||||
Paths *paths{};
|
||||
|
||||
runGui(a, paths, settings);
|
||||
try
|
||||
{
|
||||
paths = new Paths;
|
||||
}
|
||||
catch (std::runtime_error &error)
|
||||
{
|
||||
QMessageBox box;
|
||||
if (Modes::getInstance().isPortable)
|
||||
{
|
||||
box.setText(
|
||||
error.what() +
|
||||
QStringLiteral(
|
||||
"\n\nInfo: Portable mode requires the application to "
|
||||
"be in a writeable location. If you don't want "
|
||||
"portable mode reinstall the application. "
|
||||
"https://chatterino.com."));
|
||||
}
|
||||
else
|
||||
{
|
||||
box.setText(error.what());
|
||||
}
|
||||
box.exec();
|
||||
return 1;
|
||||
}
|
||||
|
||||
Settings settings(paths->settingsDirectory);
|
||||
|
||||
runGui(a, *paths, settings);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
#include "common/Modes.hpp"
|
||||
#include "util/CombinePath.hpp"
|
||||
|
||||
using namespace std::literals;
|
||||
|
||||
namespace chatterino {
|
||||
|
||||
Paths *Paths::instance = nullptr;
|
||||
|
@ -22,7 +24,7 @@ Paths::Paths()
|
|||
this->initAppFilePathHash();
|
||||
|
||||
this->initCheckPortable();
|
||||
this->initAppDataDirectory();
|
||||
this->initRootDirectory();
|
||||
this->initSubDirectories();
|
||||
}
|
||||
|
||||
|
@ -76,7 +78,7 @@ void Paths::initCheckPortable()
|
|||
combinePath(QCoreApplication::applicationDirPath(), "portable"));
|
||||
}
|
||||
|
||||
void Paths::initAppDataDirectory()
|
||||
void Paths::initRootDirectory()
|
||||
{
|
||||
assert(this->portable_.is_initialized());
|
||||
|
||||
|
@ -95,8 +97,8 @@ void Paths::initAppDataDirectory()
|
|||
QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
|
||||
if (path.isEmpty())
|
||||
{
|
||||
throw std::runtime_error(
|
||||
"Error finding writable location for settings");
|
||||
throw std::runtime_error("Could not create directory \""s +
|
||||
path.toStdString() + "\"");
|
||||
}
|
||||
|
||||
// create directory Chatterino2 instead of chatterino on windows because the
|
||||
|
@ -123,8 +125,8 @@ void Paths::initSubDirectories()
|
|||
|
||||
if (!QDir().mkpath(path))
|
||||
{
|
||||
throw std::runtime_error(
|
||||
"Error creating appdata path %appdata%/chatterino/" + name);
|
||||
throw std::runtime_error("Could not create directory \""s +
|
||||
path.toStdString() + "\"");
|
||||
}
|
||||
|
||||
return path;
|
||||
|
|
|
@ -39,7 +39,7 @@ public:
|
|||
private:
|
||||
void initAppFilePathHash();
|
||||
void initCheckPortable();
|
||||
void initAppDataDirectory();
|
||||
void initRootDirectory();
|
||||
void initSubDirectories();
|
||||
|
||||
boost::optional<bool> portable_;
|
||||
|
|
Loading…
Reference in a new issue