Use QNetworkAccessManager instead of KIO to download the config; remove KIO dep.
This commit is contained in:
parent
8798dc03ea
commit
e462c3c8d8
@ -1,19 +1,5 @@
|
|||||||
#include(KDEInstallDirs)
|
|
||||||
#include(KDECMakeSettings)
|
|
||||||
#include(KDECompilerSettings)
|
|
||||||
|
|
||||||
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
|
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
|
||||||
|
|
||||||
list( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
|
|
||||||
|
|
||||||
find_package(ECM 1.0.0 REQUIRED NO_MODULE)
|
|
||||||
list( APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
|
|
||||||
|
|
||||||
set(KF5_MIN_VERSION "5.2.0")
|
|
||||||
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
|
||||||
KIO # KIO
|
|
||||||
)
|
|
||||||
|
|
||||||
calamares_add_plugin( netinstall
|
calamares_add_plugin( netinstall
|
||||||
TYPE viewmodule
|
TYPE viewmodule
|
||||||
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
||||||
@ -28,6 +14,5 @@ calamares_add_plugin( netinstall
|
|||||||
netinstall.qrc
|
netinstall.qrc
|
||||||
LINK_LIBRARIES
|
LINK_LIBRARIES
|
||||||
calamaresui
|
calamaresui
|
||||||
KF5::KIOCore
|
|
||||||
SHARED_LIB
|
SHARED_LIB
|
||||||
)
|
)
|
||||||
|
@ -29,8 +29,9 @@
|
|||||||
#include <QMap>
|
#include <QMap>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
|
|
||||||
#include <KIO/Job>
|
#include <QNetworkAccessManager>
|
||||||
#include <KIO/StoredTransferJob>
|
#include <QNetworkRequest>
|
||||||
|
#include <QNetworkReply>
|
||||||
|
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
@ -44,6 +45,7 @@ using CalamaresUtils::yamlToVariant;
|
|||||||
NetInstallPage::NetInstallPage( QWidget* parent )
|
NetInstallPage::NetInstallPage( QWidget* parent )
|
||||||
: QWidget( parent )
|
: QWidget( parent )
|
||||||
, ui( new Ui::Page_NetInst )
|
, ui( new Ui::Page_NetInst )
|
||||||
|
, m_networkManager( this )
|
||||||
{
|
{
|
||||||
ui->setupUi( this );
|
ui->setupUi( this );
|
||||||
}
|
}
|
||||||
@ -88,18 +90,16 @@ void NetInstallPage::readGroups( const QByteArray& yamlData )
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
NetInstallPage::dataIsHere( KJob* job )
|
NetInstallPage::dataIsHere( QNetworkReply* reply )
|
||||||
{
|
{
|
||||||
if ( job->error() )
|
if ( reply->error() != QNetworkReply::NoError )
|
||||||
{
|
{
|
||||||
cDebug() << job->errorString();
|
cDebug() << reply->errorString();
|
||||||
ui->netinst_status->setText( tr( "Network Installation. (Disabled: Unable to fetch package lists, check your network connection)" ) );
|
ui->netinst_status->setText( tr( "Network Installation. (Disabled: Unable to fetch package lists, check your network connection)" ) );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto transferJob = dynamic_cast<KIO::StoredTransferJob*>( job );
|
readGroups( reply->readAll() );
|
||||||
Q_ASSERT( transferJob != nullptr );
|
|
||||||
readGroups( transferJob->data() );
|
|
||||||
|
|
||||||
QSignalMapper* mapper = new QSignalMapper( this );
|
QSignalMapper* mapper = new QSignalMapper( this );
|
||||||
foreach ( const QString& groupKey, m_groupOrder )
|
foreach ( const QString& groupKey, m_groupOrder )
|
||||||
@ -120,7 +120,7 @@ NetInstallPage::dataIsHere( KJob* job )
|
|||||||
static_cast<void(QSignalMapper::*)()>(&QSignalMapper::map) );
|
static_cast<void(QSignalMapper::*)()>(&QSignalMapper::map) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
reply->deleteLater();
|
||||||
emit checkReady( isReady() );
|
emit checkReady( isReady() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,8 +151,14 @@ void NetInstallPage::loadGroupList()
|
|||||||
Calamares::JobQueue::instance()->globalStorage()->value(
|
Calamares::JobQueue::instance()->globalStorage()->value(
|
||||||
"groupsUrl" ).toString() );
|
"groupsUrl" ).toString() );
|
||||||
|
|
||||||
KIO::Job* getJob = KIO::storedGet( confUrl, KIO::Reload, KIO::Overwrite | KIO::HideProgressInfo );
|
QNetworkRequest request;
|
||||||
connect ( getJob, &KIO::Job::result, this, &NetInstallPage::dataIsHere );
|
request.setUrl( QUrl( confUrl ) );
|
||||||
|
// Follows all redirects except unsafe ones (https to http).
|
||||||
|
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||||
|
|
||||||
|
connect(&m_networkManager, &QNetworkAccessManager::finished,
|
||||||
|
this, &NetInstallPage::dataIsHere);
|
||||||
|
m_networkManager.get(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetInstallPage::onActivate()
|
void NetInstallPage::onActivate()
|
||||||
|
@ -22,10 +22,11 @@
|
|||||||
#include "Typedefs.h"
|
#include "Typedefs.h"
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QAbstractButton>
|
#include <QAbstractButton>
|
||||||
|
#include <QNetworkAccessManager>
|
||||||
|
|
||||||
// required forward declarations
|
// required forward declarations
|
||||||
class KJob;
|
|
||||||
class QByteArray;
|
class QByteArray;
|
||||||
|
class QNetworkReply;
|
||||||
class GroupSelectionWidget;
|
class GroupSelectionWidget;
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
@ -58,6 +59,7 @@ class NetInstallPage : public QWidget
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
NetInstallPage( QWidget* parent = nullptr );
|
NetInstallPage( QWidget* parent = nullptr );
|
||||||
|
|
||||||
void onActivate();
|
void onActivate();
|
||||||
|
|
||||||
bool isReady();
|
bool isReady();
|
||||||
@ -73,7 +75,7 @@ public:
|
|||||||
QStringList selectedPackages() const;
|
QStringList selectedPackages() const;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void dataIsHere( KJob* );
|
void dataIsHere( QNetworkReply* );
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void checkReady( bool );
|
void checkReady( bool );
|
||||||
@ -86,6 +88,9 @@ private:
|
|||||||
|
|
||||||
Ui::Page_NetInst* ui;
|
Ui::Page_NetInst* ui;
|
||||||
|
|
||||||
|
// Handles connection with the remote URL storing the configuration.
|
||||||
|
QNetworkAccessManager m_networkManager;
|
||||||
|
|
||||||
QHash<QString, Group> m_groups;
|
QHash<QString, Group> m_groups;
|
||||||
// For each group name, store the selection widget to retrieve UI
|
// For each group name, store the selection widget to retrieve UI
|
||||||
// properties.
|
// properties.
|
||||||
|
Loading…
Reference in New Issue
Block a user