Don't show the download button if we are not connected to an online network.

Signed-off-by: Adam Treat <treat.adam@gmail.com>
This commit is contained in:
Adam Treat 2024-02-07 09:53:14 -05:00 committed by AT
parent 4258bb1f8a
commit 260a56c748
3 changed files with 18 additions and 2 deletions

View File

@ -9,6 +9,7 @@
#include <QResource>
#include <QSettings>
#include <QUrl>
#include <QNetworkInformation>
#include <fstream>
#ifndef GPT4ALL_OFFLINE_INSTALLER
@ -39,6 +40,10 @@ LLM::LLM()
#endif
m_compatHardware = minimal;
QNetworkInformation::loadDefaultBackend();
connect(QNetworkInformation::instance(), &QNetworkInformation::reachabilityChanged,
this, &LLM::isNetworkOnlineChanged);
}
bool LLM::hasSettingsAccess() const
@ -100,3 +105,11 @@ QString LLM::systemTotalRAMInGBString() const
{
return QString::fromStdString(getSystemTotalRAMInGBString());
}
bool LLM::isNetworkOnline() const
{
if (!QNetworkInformation::instance())
return false;
return QNetworkInformation::instance()->reachability() == QNetworkInformation::Reachability::Online;
}

View File

@ -6,6 +6,8 @@
class LLM : public QObject
{
Q_OBJECT
Q_PROPERTY(bool isNetworkOnline READ isNetworkOnline NOTIFY isNetworkOnlineChanged)
public:
static LLM *globalInstance();
@ -17,10 +19,10 @@ public:
Q_INVOKABLE static bool fileExists(const QString &path);
Q_INVOKABLE qint64 systemTotalRAMInGB() const;
Q_INVOKABLE QString systemTotalRAMInGBString() const;
Q_INVOKABLE bool isNetworkOnline() const;
Q_SIGNALS:
void chatListModelChanged();
void modelListChanged();
void isNetworkOnlineChanged();
private:
bool m_compatHardware;

View File

@ -869,6 +869,7 @@ Window {
MyButton {
id: downloadButton
visible: LLM.isNetworkOnline
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: 40
text: qsTr("Download models")