mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 10:46:35 +01:00
GM_Script: Download icon and display it in settings
This commit is contained in:
parent
4283260504
commit
f9feab7d9d
@ -22,12 +22,15 @@
|
|||||||
#include "delayedfilewatcher.h"
|
#include "delayedfilewatcher.h"
|
||||||
#include "mainapplication.h"
|
#include "mainapplication.h"
|
||||||
#include "webpage.h"
|
#include "webpage.h"
|
||||||
|
#include "networkmanager.h"
|
||||||
|
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QWebEngineScript>
|
#include <QWebEngineScript>
|
||||||
#include <QCryptographicHash>
|
#include <QCryptographicHash>
|
||||||
|
#include <QNetworkReply>
|
||||||
|
#include <QNetworkRequest>
|
||||||
|
|
||||||
GM_Script::GM_Script(GM_Manager* manager, const QString &filePath)
|
GM_Script::GM_Script(GM_Manager* manager, const QString &filePath)
|
||||||
: QObject(manager)
|
: QObject(manager)
|
||||||
@ -76,6 +79,11 @@ QString GM_Script::version() const
|
|||||||
return m_version;
|
return m_version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QIcon GM_Script::icon() const
|
||||||
|
{
|
||||||
|
return m_icon;
|
||||||
|
}
|
||||||
|
|
||||||
QUrl GM_Script::iconUrl() const
|
QUrl GM_Script::iconUrl() const
|
||||||
{
|
{
|
||||||
return m_iconUrl;
|
return m_iconUrl;
|
||||||
@ -183,6 +191,7 @@ void GM_Script::parseScript()
|
|||||||
m_include.clear();
|
m_include.clear();
|
||||||
m_exclude.clear();
|
m_exclude.clear();
|
||||||
m_require.clear();
|
m_require.clear();
|
||||||
|
m_icon = QIcon();
|
||||||
m_iconUrl.clear();
|
m_iconUrl.clear();
|
||||||
m_downloadUrl.clear();
|
m_downloadUrl.clear();
|
||||||
m_updateUrl.clear();
|
m_updateUrl.clear();
|
||||||
@ -295,6 +304,7 @@ void GM_Script::parseScript()
|
|||||||
m_script = QSL("(function(){%1\n%2\n%3\n})();").arg(gmValues, m_manager->requireScripts(m_require), fileData);
|
m_script = QSL("(function(){%1\n%2\n%3\n})();").arg(gmValues, m_manager->requireScripts(m_require), fileData);
|
||||||
m_valid = true;
|
m_valid = true;
|
||||||
|
|
||||||
|
downloadIcon();
|
||||||
downloadRequires();
|
downloadRequires();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,6 +318,19 @@ void GM_Script::reloadScript()
|
|||||||
emit scriptChanged();
|
emit scriptChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GM_Script::downloadIcon()
|
||||||
|
{
|
||||||
|
if (m_iconUrl.isValid()) {
|
||||||
|
QNetworkReply *reply = mApp->networkManager()->get(QNetworkRequest(m_iconUrl));
|
||||||
|
connect(reply, &QNetworkReply::finished, this, [=]() {
|
||||||
|
reply->deleteLater();
|
||||||
|
if (reply->error() == QNetworkReply::NoError) {
|
||||||
|
m_icon = QPixmap::fromImage(QImage::fromData(reply->readAll()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GM_Script::downloadRequires()
|
void GM_Script::downloadRequires()
|
||||||
{
|
{
|
||||||
for (const QString &url : qAsConst(m_require)) {
|
for (const QString &url : qAsConst(m_require)) {
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#define GM_SCRIPT_H
|
#define GM_SCRIPT_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QVector>
|
#include <QIcon>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
|
||||||
class QWebEngineScript;
|
class QWebEngineScript;
|
||||||
@ -44,7 +44,9 @@ public:
|
|||||||
QString description() const;
|
QString description() const;
|
||||||
QString version() const;
|
QString version() const;
|
||||||
|
|
||||||
|
QIcon icon() const;
|
||||||
QUrl iconUrl() const;
|
QUrl iconUrl() const;
|
||||||
|
|
||||||
QUrl downloadUrl() const;
|
QUrl downloadUrl() const;
|
||||||
QUrl updateUrl() const;
|
QUrl updateUrl() const;
|
||||||
|
|
||||||
@ -76,6 +78,7 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
void parseScript();
|
void parseScript();
|
||||||
void reloadScript();
|
void reloadScript();
|
||||||
|
void downloadIcon();
|
||||||
void downloadRequires();
|
void downloadRequires();
|
||||||
|
|
||||||
GM_Manager* m_manager;
|
GM_Manager* m_manager;
|
||||||
@ -90,6 +93,7 @@ private:
|
|||||||
QStringList m_exclude;
|
QStringList m_exclude;
|
||||||
QStringList m_require;
|
QStringList m_require;
|
||||||
|
|
||||||
|
QIcon m_icon;
|
||||||
QUrl m_iconUrl;
|
QUrl m_iconUrl;
|
||||||
QUrl m_downloadUrl;
|
QUrl m_downloadUrl;
|
||||||
QUrl m_updateUrl;
|
QUrl m_updateUrl;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* ============================================================
|
/* ============================================================
|
||||||
* GreaseMonkey plugin for Falkon
|
* GreaseMonkey plugin for Falkon
|
||||||
* Copyright (C) 2012-2017 David Rosca <nowrep@gmail.com>
|
* Copyright (C) 2012-2018 David Rosca <nowrep@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -155,6 +155,7 @@ void GM_Settings::loadScripts()
|
|||||||
foreach (GM_Script* script, m_manager->allScripts()) {
|
foreach (GM_Script* script, m_manager->allScripts()) {
|
||||||
QListWidgetItem* item = new QListWidgetItem(ui->listWidget);
|
QListWidgetItem* item = new QListWidgetItem(ui->listWidget);
|
||||||
item->setText(script->name());
|
item->setText(script->name());
|
||||||
|
item->setIcon(script->icon());
|
||||||
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
|
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
|
||||||
item->setCheckState(script->isEnabled() ? Qt::Checked : Qt::Unchecked);
|
item->setCheckState(script->isEnabled() ? Qt::Checked : Qt::Unchecked);
|
||||||
item->setData(Qt::UserRole + 10, QVariant::fromValue((void*)script));
|
item->setData(Qt::UserRole + 10, QVariant::fromValue((void*)script));
|
||||||
|
Loading…
Reference in New Issue
Block a user