mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2024-10-01 01:06:10 -04:00
Provide an error dialog if for any reason we can't access the settings file.
This commit is contained in:
parent
e9d42fba35
commit
13b2d47be5
@ -8,6 +8,7 @@
|
|||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QResource>
|
#include <QResource>
|
||||||
|
#include <QSettings>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
class MyLLM: public LLM { };
|
class MyLLM: public LLM { };
|
||||||
@ -48,7 +49,13 @@ LLM::LLM()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_compatHardware = minimal;
|
m_compatHardware = minimal;
|
||||||
emit compatHardwareChanged();
|
}
|
||||||
|
|
||||||
|
bool LLM::hasSettingsAccess() const
|
||||||
|
{
|
||||||
|
QSettings settings;
|
||||||
|
settings.sync();
|
||||||
|
return settings.status() == QSettings::NoError;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LLM::checkForUpdates() const
|
bool LLM::checkForUpdates() const
|
||||||
|
@ -6,12 +6,11 @@
|
|||||||
class LLM : public QObject
|
class LLM : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(bool compatHardware READ compatHardware NOTIFY compatHardwareChanged)
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static LLM *globalInstance();
|
static LLM *globalInstance();
|
||||||
|
|
||||||
bool compatHardware() const { return m_compatHardware; }
|
Q_INVOKABLE bool hasSettingsAccess() const;
|
||||||
|
Q_INVOKABLE bool compatHardware() const { return m_compatHardware; }
|
||||||
|
|
||||||
Q_INVOKABLE bool checkForUpdates() const;
|
Q_INVOKABLE bool checkForUpdates() const;
|
||||||
Q_INVOKABLE bool directoryExists(const QString &path) const;
|
Q_INVOKABLE bool directoryExists(const QString &path) const;
|
||||||
@ -22,7 +21,6 @@ public:
|
|||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void chatListModelChanged();
|
void chatListModelChanged();
|
||||||
void modelListChanged();
|
void modelListChanged();
|
||||||
void compatHardwareChanged();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_compatHardware;
|
bool m_compatHardware;
|
||||||
|
@ -89,14 +89,22 @@ Window {
|
|||||||
|
|
||||||
property bool hasShownModelDownload: false
|
property bool hasShownModelDownload: false
|
||||||
property bool hasShownFirstStart: false
|
property bool hasShownFirstStart: false
|
||||||
|
property bool hasShownSettingsAccess: false
|
||||||
|
|
||||||
function startupDialogs() {
|
function startupDialogs() {
|
||||||
if (!LLM.compatHardware) {
|
if (!LLM.compatHardware()) {
|
||||||
Network.sendNonCompatHardware();
|
Network.sendNonCompatHardware();
|
||||||
errorCompatHardware.open();
|
errorCompatHardware.open();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if we have access to settings and if not show an error
|
||||||
|
if (!hasShownSettingsAccess && !LLM.hasSettingsAccess()) {
|
||||||
|
errorSettingsAccess.open();
|
||||||
|
hasShownSettingsAccess = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// check for first time start of this version
|
// check for first time start of this version
|
||||||
if (!hasShownFirstStart && Download.isFirstStart()) {
|
if (!hasShownFirstStart && Download.isFirstStart()) {
|
||||||
firstStartDialog.open();
|
firstStartDialog.open();
|
||||||
@ -135,6 +143,20 @@ Window {
|
|||||||
+ qsTr("https://en.wikipedia.org/wiki/Advanced_Vector_Extensions</a>")
|
+ qsTr("https://en.wikipedia.org/wiki/Advanced_Vector_Extensions</a>")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PopupDialog {
|
||||||
|
id: errorSettingsAccess
|
||||||
|
anchors.centerIn: parent
|
||||||
|
shouldTimeOut: false
|
||||||
|
shouldShowBusy: false
|
||||||
|
modal: true
|
||||||
|
text: qsTr("<h3>Encountered an error starting up:</h3><br>")
|
||||||
|
+ qsTr("<i>\"Inability to access settings file.\"</i>")
|
||||||
|
+ qsTr("<br><br>Unfortunately, something is preventing the program from accessing ")
|
||||||
|
+ qsTr("the settings file. This could be caused by incorrect permissions in the local ")
|
||||||
|
+ qsTr("app config directory where the settings file is located. ")
|
||||||
|
+ qsTr("Check out our <a href=\"https://discord.gg/4M2QFmTt2k\">discord channel</a> for help.")
|
||||||
|
}
|
||||||
|
|
||||||
StartupDialog {
|
StartupDialog {
|
||||||
id: firstStartDialog
|
id: firstStartDialog
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
Loading…
Reference in New Issue
Block a user