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 )
|
||||
|
||||
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
|
||||
TYPE viewmodule
|
||||
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
||||
@ -28,6 +14,5 @@ calamares_add_plugin( netinstall
|
||||
netinstall.qrc
|
||||
LINK_LIBRARIES
|
||||
calamaresui
|
||||
KF5::KIOCore
|
||||
SHARED_LIB
|
||||
)
|
||||
|
@ -29,8 +29,9 @@
|
||||
#include <QMap>
|
||||
#include <QTextStream>
|
||||
|
||||
#include <KIO/Job>
|
||||
#include <KIO/StoredTransferJob>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkReply>
|
||||
|
||||
#include <QtDebug>
|
||||
#include <QtGlobal>
|
||||
@ -44,6 +45,7 @@ using CalamaresUtils::yamlToVariant;
|
||||
NetInstallPage::NetInstallPage( QWidget* parent )
|
||||
: QWidget( parent )
|
||||
, ui( new Ui::Page_NetInst )
|
||||
, m_networkManager( this )
|
||||
{
|
||||
ui->setupUi( this );
|
||||
}
|
||||
@ -88,18 +90,16 @@ void NetInstallPage::readGroups( const QByteArray& yamlData )
|
||||
}
|
||||
|
||||
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)" ) );
|
||||
return;
|
||||
}
|
||||
|
||||
auto transferJob = dynamic_cast<KIO::StoredTransferJob*>( job );
|
||||
Q_ASSERT( transferJob != nullptr );
|
||||
readGroups( transferJob->data() );
|
||||
readGroups( reply->readAll() );
|
||||
|
||||
QSignalMapper* mapper = new QSignalMapper( this );
|
||||
foreach ( const QString& groupKey, m_groupOrder )
|
||||
@ -120,7 +120,7 @@ NetInstallPage::dataIsHere( KJob* job )
|
||||
static_cast<void(QSignalMapper::*)()>(&QSignalMapper::map) );
|
||||
}
|
||||
|
||||
// TODO
|
||||
reply->deleteLater();
|
||||
emit checkReady( isReady() );
|
||||
}
|
||||
|
||||
@ -151,8 +151,14 @@ void NetInstallPage::loadGroupList()
|
||||
Calamares::JobQueue::instance()->globalStorage()->value(
|
||||
"groupsUrl" ).toString() );
|
||||
|
||||
KIO::Job* getJob = KIO::storedGet( confUrl, KIO::Reload, KIO::Overwrite | KIO::HideProgressInfo );
|
||||
connect ( getJob, &KIO::Job::result, this, &NetInstallPage::dataIsHere );
|
||||
QNetworkRequest request;
|
||||
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()
|
||||
|
@ -22,10 +22,11 @@
|
||||
#include "Typedefs.h"
|
||||
#include <QWidget>
|
||||
#include <QAbstractButton>
|
||||
#include <QNetworkAccessManager>
|
||||
|
||||
// required forward declarations
|
||||
class KJob;
|
||||
class QByteArray;
|
||||
class QNetworkReply;
|
||||
class GroupSelectionWidget;
|
||||
|
||||
namespace Ui
|
||||
@ -58,6 +59,7 @@ class NetInstallPage : public QWidget
|
||||
|
||||
public:
|
||||
NetInstallPage( QWidget* parent = nullptr );
|
||||
|
||||
void onActivate();
|
||||
|
||||
bool isReady();
|
||||
@ -73,7 +75,7 @@ public:
|
||||
QStringList selectedPackages() const;
|
||||
|
||||
public slots:
|
||||
void dataIsHere( KJob* );
|
||||
void dataIsHere( QNetworkReply* );
|
||||
|
||||
signals:
|
||||
void checkReady( bool );
|
||||
@ -86,6 +88,9 @@ private:
|
||||
|
||||
Ui::Page_NetInst* ui;
|
||||
|
||||
// Handles connection with the remote URL storing the configuration.
|
||||
QNetworkAccessManager m_networkManager;
|
||||
|
||||
QHash<QString, Group> m_groups;
|
||||
// For each group name, store the selection widget to retrieve UI
|
||||
// properties.
|
||||
|
Loading…
Reference in New Issue
Block a user