add a switch to turn off raw XML saving
This commit is contained in:
parent
c8bfcf6ffe
commit
3a948c6825
@ -15,6 +15,8 @@ set(SOURCES
|
|||||||
src/gui/standardaccountdetails.h
|
src/gui/standardaccountdetails.h
|
||||||
src/gui/standardfeeddetails.cpp
|
src/gui/standardfeeddetails.cpp
|
||||||
src/gui/standardfeeddetails.h
|
src/gui/standardfeeddetails.h
|
||||||
|
src/gui/standardfeedexpdetails.cpp
|
||||||
|
src/gui/standardfeedexpdetails.h
|
||||||
src/parsers/atomparser.cpp
|
src/parsers/atomparser.cpp
|
||||||
src/parsers/atomparser.h
|
src/parsers/atomparser.h
|
||||||
src/parsers/feedparser.cpp
|
src/parsers/feedparser.cpp
|
||||||
@ -46,6 +48,7 @@ set(UI_FILES
|
|||||||
src/gui/formstandardimportexport.ui
|
src/gui/formstandardimportexport.ui
|
||||||
src/gui/standardaccountdetails.ui
|
src/gui/standardaccountdetails.ui
|
||||||
src/gui/standardfeeddetails.ui
|
src/gui/standardfeeddetails.ui
|
||||||
|
src/gui/standardfeedexpdetails.ui
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add ZLIB.
|
# Add ZLIB.
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#include "src/gui/formstandardfeeddetails.h"
|
#include "src/gui/formstandardfeeddetails.h"
|
||||||
|
|
||||||
#include "src/gui/standardfeeddetails.h"
|
#include "src/gui/standardfeeddetails.h"
|
||||||
|
#include "src/gui/standardfeedexpdetails.h"
|
||||||
#include "src/standardfeed.h"
|
#include "src/standardfeed.h"
|
||||||
|
|
||||||
#include <librssguard/database/databasequeries.h>
|
#include <librssguard/database/databasequeries.h>
|
||||||
@ -25,9 +26,11 @@ FormStandardFeedDetails::FormStandardFeedDetails(ServiceRoot* service_root,
|
|||||||
const QString& url,
|
const QString& url,
|
||||||
QWidget* parent)
|
QWidget* parent)
|
||||||
: FormFeedDetails(service_root, parent), m_standardFeedDetails(new StandardFeedDetails(this)),
|
: FormFeedDetails(service_root, parent), m_standardFeedDetails(new StandardFeedDetails(this)),
|
||||||
m_authDetails(new AuthenticationDetails(false, this)), m_parentToSelect(parent_to_select), m_urlToProcess(url) {
|
m_standardFeedExpDetails(new StandardFeedExpDetails(this)), m_authDetails(new AuthenticationDetails(false, this)),
|
||||||
|
m_parentToSelect(parent_to_select), m_urlToProcess(url) {
|
||||||
insertCustomTab(m_standardFeedDetails, tr("General"), 0);
|
insertCustomTab(m_standardFeedDetails, tr("General"), 0);
|
||||||
insertCustomTab(m_authDetails, tr("Network"), 2);
|
insertCustomTab(m_authDetails, tr("Network"), 2);
|
||||||
|
insertCustomTab(m_standardFeedExpDetails, tr("Experimental"));
|
||||||
activateTab(0);
|
activateTab(0);
|
||||||
|
|
||||||
connect(m_standardFeedDetails->m_ui.m_btnFetchMetadata,
|
connect(m_standardFeedDetails->m_ui.m_btnFetchMetadata,
|
||||||
@ -117,6 +120,10 @@ void FormStandardFeedDetails::apply() {
|
|||||||
std_feed->setProtection(m_authDetails->authenticationType());
|
std_feed->setProtection(m_authDetails->authenticationType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isChangeAllowed(m_standardFeedExpDetails->m_ui.m_mcbDontUseRawXml)) {
|
||||||
|
std_feed->setDontUseRawXmlSaving(m_standardFeedExpDetails->m_ui.m_cbDontUseRawXml->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
if (isChangeAllowed(m_authDetails->findChild<MultiFeedEditCheckBox*>(QSL("m_mcbAuthentication")))) {
|
if (isChangeAllowed(m_authDetails->findChild<MultiFeedEditCheckBox*>(QSL("m_mcbAuthentication")))) {
|
||||||
std_feed->setUsername(m_authDetails->username());
|
std_feed->setUsername(m_authDetails->username());
|
||||||
std_feed->setPassword(m_authDetails->password());
|
std_feed->setPassword(m_authDetails->password());
|
||||||
@ -171,6 +178,9 @@ void FormStandardFeedDetails::loadFeedData() {
|
|||||||
->addActionWidget(m_authDetails->findChild<QGroupBox*>(QSL("m_gbAuthentication")));
|
->addActionWidget(m_authDetails->findChild<QGroupBox*>(QSL("m_gbAuthentication")));
|
||||||
|
|
||||||
m_standardFeedDetails->m_ui.m_btnFetchMetadata->setEnabled(false);
|
m_standardFeedDetails->m_ui.m_btnFetchMetadata->setEnabled(false);
|
||||||
|
|
||||||
|
m_standardFeedExpDetails->m_ui.m_mcbDontUseRawXml
|
||||||
|
->addActionWidget(m_standardFeedExpDetails->m_ui.m_cbDontUseRawXml);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// We hide batch selectors.
|
// We hide batch selectors.
|
||||||
@ -195,5 +205,7 @@ void FormStandardFeedDetails::loadFeedData() {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_standardFeedDetails->setExistingFeed(std_feed);
|
m_standardFeedDetails->setExistingFeed(std_feed);
|
||||||
|
|
||||||
|
m_standardFeedExpDetails->m_ui.m_cbDontUseRawXml->setChecked(std_feed->dontUseRawXmlSaving());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include <librssguard/services/abstract/gui/formfeeddetails.h>
|
#include <librssguard/services/abstract/gui/formfeeddetails.h>
|
||||||
|
|
||||||
class StandardFeedDetails;
|
class StandardFeedDetails;
|
||||||
|
class StandardFeedExpDetails;
|
||||||
class StandardServiceRoot;
|
class StandardServiceRoot;
|
||||||
class AuthenticationDetails;
|
class AuthenticationDetails;
|
||||||
class StandardFeed;
|
class StandardFeed;
|
||||||
@ -31,6 +32,7 @@ class FormStandardFeedDetails : public FormFeedDetails {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
StandardFeedDetails* m_standardFeedDetails;
|
StandardFeedDetails* m_standardFeedDetails;
|
||||||
|
StandardFeedExpDetails* m_standardFeedExpDetails;
|
||||||
AuthenticationDetails* m_authDetails;
|
AuthenticationDetails* m_authDetails;
|
||||||
RootItem* m_parentToSelect;
|
RootItem* m_parentToSelect;
|
||||||
QString m_urlToProcess;
|
QString m_urlToProcess;
|
||||||
|
25
src/librssguard-standard/src/gui/standardfeedexpdetails.cpp
Normal file
25
src/librssguard-standard/src/gui/standardfeedexpdetails.cpp
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// For license of this file, see <project-root-folder>/LICENSE.md.
|
||||||
|
|
||||||
|
#include "src/gui/standardfeedexpdetails.h"
|
||||||
|
|
||||||
|
#include "src/definitions.h"
|
||||||
|
|
||||||
|
#include <librssguard/3rd-party/boolinq/boolinq.h>
|
||||||
|
#include <librssguard/exceptions/applicationexception.h>
|
||||||
|
#include <librssguard/exceptions/networkexception.h>
|
||||||
|
#include <librssguard/exceptions/scriptexception.h>
|
||||||
|
#include <librssguard/miscellaneous/iconfactory.h>
|
||||||
|
#include <librssguard/miscellaneous/textfactory.h>
|
||||||
|
#include <librssguard/network-web/networkfactory.h>
|
||||||
|
#include <librssguard/services/abstract/category.h>
|
||||||
|
|
||||||
|
#include <QFileDialog>
|
||||||
|
#include <QImageReader>
|
||||||
|
#include <QMenu>
|
||||||
|
#include <QMimeData>
|
||||||
|
#include <QTextCodec>
|
||||||
|
#include <QtGlobal>
|
||||||
|
|
||||||
|
StandardFeedExpDetails::StandardFeedExpDetails(QWidget* parent) : QWidget(parent) {
|
||||||
|
m_ui.setupUi(this);
|
||||||
|
}
|
28
src/librssguard-standard/src/gui/standardfeedexpdetails.h
Normal file
28
src/librssguard-standard/src/gui/standardfeedexpdetails.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// For license of this file, see <project-root-folder>/LICENSE.md.
|
||||||
|
|
||||||
|
#ifndef STANDARDFEEDEXPDETAILS_H
|
||||||
|
#define STANDARDFEEDEXPDETAILS_H
|
||||||
|
|
||||||
|
#include "src/standardfeed.h"
|
||||||
|
|
||||||
|
#include "ui_standardfeedexpdetails.h"
|
||||||
|
|
||||||
|
#include <QNetworkProxy>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
class Category;
|
||||||
|
class RootItem;
|
||||||
|
|
||||||
|
class StandardFeedExpDetails : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
friend class FormStandardFeedDetails;
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit StandardFeedExpDetails(QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::StandardFeedExpDetails m_ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // STANDARDFEEDEXPDETAILS_H
|
38
src/librssguard-standard/src/gui/standardfeedexpdetails.ui
Normal file
38
src/librssguard-standard/src/gui/standardfeedexpdetails.ui
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>StandardFeedExpDetails</class>
|
||||||
|
<widget class="QWidget" name="StandardFeedExpDetails">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>360</width>
|
||||||
|
<height>197</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QCheckBox" name="m_cbDontUseRawXml">
|
||||||
|
<property name="text">
|
||||||
|
<string>Use older mechanism for extracting raw XML data</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="MultiFeedEditCheckBox" name="m_mcbDontUseRawXml"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>MultiFeedEditCheckBox</class>
|
||||||
|
<extends>QCheckBox</extends>
|
||||||
|
<header>multifeededitcheckbox.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
@ -79,17 +79,16 @@ QPair<StandardFeed*, QList<IconLocation>> FeedParser::guessFeed(const QByteArray
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString FeedParser::xmlMessageRawContents(const QDomElement& msg_element) const {
|
QString FeedParser::xmlMessageRawContents(const QDomElement& msg_element) const {
|
||||||
QString raw_contents;
|
if (dontUseRawXmlSaving()) {
|
||||||
QTextStream str(&raw_contents);
|
return msg_element.text();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
QString raw_contents;
|
||||||
|
QTextStream str(&raw_contents);
|
||||||
|
|
||||||
msg_element.save(str, 0, QDomNode::EncodingPolicy::EncodingFromTextStream);
|
msg_element.save(str, 0, QDomNode::EncodingPolicy::EncodingFromTextStream);
|
||||||
return raw_contents;
|
return raw_contents;
|
||||||
|
}
|
||||||
/*
|
|
||||||
qDebugNN << msg_element.text();
|
|
||||||
|
|
||||||
return msg_element.text();
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonArray FeedParser::jsonMessageElements() {
|
QJsonArray FeedParser::jsonMessageElements() {
|
||||||
@ -345,25 +344,30 @@ QString FeedParser::xmlMrssTextFromPath(const QDomElement& msg_element, const QS
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString FeedParser::xmlRawChild(const QDomElement& container) const {
|
QString FeedParser::xmlRawChild(const QDomElement& container) const {
|
||||||
QString raw;
|
if (dontUseRawXmlSaving()) {
|
||||||
auto children = container.childNodes();
|
return container.text();
|
||||||
|
|
||||||
for (int i = 0; i < children.size(); i++) {
|
|
||||||
auto child = children.at(i);
|
|
||||||
|
|
||||||
if (child.isCDATASection()) {
|
|
||||||
raw += child.toCDATASection().data();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
QString raw_ch;
|
|
||||||
QTextStream str(&raw_ch);
|
|
||||||
|
|
||||||
child.save(str, 0);
|
|
||||||
raw += WebFactory::unescapeHtml(raw_ch);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
QString raw;
|
||||||
|
auto children = container.childNodes();
|
||||||
|
|
||||||
return raw;
|
for (int i = 0; i < children.size(); i++) {
|
||||||
|
auto child = children.at(i);
|
||||||
|
|
||||||
|
if (child.isCDATASection()) {
|
||||||
|
raw += child.toCDATASection().data();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
QString raw_ch;
|
||||||
|
QTextStream str(&raw_ch);
|
||||||
|
|
||||||
|
child.save(str, 0);
|
||||||
|
raw += WebFactory::unescapeHtml(raw_ch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return raw;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList FeedParser::xmlTextsFromPath(const QDomElement& element,
|
QStringList FeedParser::xmlTextsFromPath(const QDomElement& element,
|
||||||
@ -408,6 +412,14 @@ QStringList FeedParser::xmlTextsFromPath(const QDomElement& element,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool FeedParser::dontUseRawXmlSaving() const {
|
||||||
|
return m_dontUseRawXmlSaving;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FeedParser::setDontUseRawXmlSaving(bool no_raw_xml_saving) {
|
||||||
|
m_dontUseRawXmlSaving = no_raw_xml_saving;
|
||||||
|
}
|
||||||
|
|
||||||
QString FeedParser::dateTimeFormat() const {
|
QString FeedParser::dateTimeFormat() const {
|
||||||
return m_dateTimeFormat;
|
return m_dateTimeFormat;
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,9 @@ class FeedParser {
|
|||||||
QString dateTimeFormat() const;
|
QString dateTimeFormat() const;
|
||||||
void setDateTimeFormat(const QString& dt_format);
|
void setDateTimeFormat(const QString& dt_format);
|
||||||
|
|
||||||
|
bool dontUseRawXmlSaving() const;
|
||||||
|
void setDontUseRawXmlSaving(bool no_raw_xml_saving);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual QString feedAuthor() const;
|
virtual QString feedAuthor() const;
|
||||||
|
|
||||||
@ -61,7 +64,7 @@ class FeedParser {
|
|||||||
virtual QString jsonMessageUrl(const QJsonObject& msg_element) const;
|
virtual QString jsonMessageUrl(const QJsonObject& msg_element) const;
|
||||||
virtual QString jsonMessageDescription(const QJsonObject& msg_element) const;
|
virtual QString jsonMessageDescription(const QJsonObject& msg_element) const;
|
||||||
virtual QString jsonMessageAuthor(const QJsonObject& msg_element) const;
|
virtual QString jsonMessageAuthor(const QJsonObject& msg_element) const;
|
||||||
virtual QDateTime jsonMessageDateCreated(const QJsonObject& msg_element) ;
|
virtual QDateTime jsonMessageDateCreated(const QJsonObject& msg_element);
|
||||||
virtual QString jsonMessageId(const QJsonObject& msg_element) const;
|
virtual QString jsonMessageId(const QJsonObject& msg_element) const;
|
||||||
virtual QList<Enclosure> jsonMessageEnclosures(const QJsonObject& msg_element) const;
|
virtual QList<Enclosure> jsonMessageEnclosures(const QJsonObject& msg_element) const;
|
||||||
virtual QList<MessageCategory> jsonMessageCategories(const QJsonObject& msg_element) const;
|
virtual QList<MessageCategory> jsonMessageCategories(const QJsonObject& msg_element) const;
|
||||||
@ -71,9 +74,9 @@ class FeedParser {
|
|||||||
virtual QVariantList objMessageElements();
|
virtual QVariantList objMessageElements();
|
||||||
virtual QString objMessageTitle(const QVariant& msg_element) const;
|
virtual QString objMessageTitle(const QVariant& msg_element) const;
|
||||||
virtual QString objMessageUrl(const QVariant& msg_element) const;
|
virtual QString objMessageUrl(const QVariant& msg_element) const;
|
||||||
virtual QString objMessageDescription(const QVariant& msg_element) ;
|
virtual QString objMessageDescription(const QVariant& msg_element);
|
||||||
virtual QString objMessageAuthor(const QVariant& msg_element) const;
|
virtual QString objMessageAuthor(const QVariant& msg_element) const;
|
||||||
virtual QDateTime objMessageDateCreated(const QVariant& msg_element) ;
|
virtual QDateTime objMessageDateCreated(const QVariant& msg_element);
|
||||||
virtual QString objMessageId(const QVariant& msg_element) const;
|
virtual QString objMessageId(const QVariant& msg_element) const;
|
||||||
virtual QList<Enclosure> objMessageEnclosures(const QVariant& msg_element) const;
|
virtual QList<Enclosure> objMessageEnclosures(const QVariant& msg_element) const;
|
||||||
virtual QList<MessageCategory> objMessageCategories(const QVariant& msg_element) const;
|
virtual QList<MessageCategory> objMessageCategories(const QVariant& msg_element) const;
|
||||||
@ -95,6 +98,7 @@ class FeedParser {
|
|||||||
QDomDocument m_xml;
|
QDomDocument m_xml;
|
||||||
QJsonDocument m_json;
|
QJsonDocument m_json;
|
||||||
QString m_mrssNamespace;
|
QString m_mrssNamespace;
|
||||||
|
bool m_dontUseRawXmlSaving;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FEEDPARSER_H
|
#endif // FEEDPARSER_H
|
||||||
|
@ -268,16 +268,6 @@ QString RssParser::xmlMessageDescription(const QDomElement& msg_element) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return description;
|
return description;
|
||||||
|
|
||||||
/*
|
|
||||||
QString description = msg_element.elementsByTagName(QSL("encoded")).at(0).toElement().text();
|
|
||||||
|
|
||||||
if (description.isEmpty()) {
|
|
||||||
description = msg_element.elementsByTagName(QSL("description")).at(0).toElement().text();
|
|
||||||
}
|
|
||||||
|
|
||||||
return description;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString RssParser::xmlMessageAuthor(const QDomElement& msg_element) const {
|
QString RssParser::xmlMessageAuthor(const QDomElement& msg_element) const {
|
||||||
|
@ -52,6 +52,7 @@ StandardFeed::StandardFeed(RootItem* parent_item) : Feed(parent_item) {
|
|||||||
m_protection = NetworkFactory::NetworkAuthentication::NoAuthentication;
|
m_protection = NetworkFactory::NetworkAuthentication::NoAuthentication;
|
||||||
m_username = QString();
|
m_username = QString();
|
||||||
m_password = QString();
|
m_password = QString();
|
||||||
|
m_dontUseRawXmlSaving = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
StandardFeed::StandardFeed(const StandardFeed& other) : Feed(other) {
|
StandardFeed::StandardFeed(const StandardFeed& other) : Feed(other) {
|
||||||
@ -62,6 +63,7 @@ StandardFeed::StandardFeed(const StandardFeed& other) : Feed(other) {
|
|||||||
m_protection = other.protection();
|
m_protection = other.protection();
|
||||||
m_username = other.username();
|
m_username = other.username();
|
||||||
m_password = other.password();
|
m_password = other.password();
|
||||||
|
m_dontUseRawXmlSaving = other.dontUseRawXmlSaving();
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QAction*> StandardFeed::contextMenuFeedsList() {
|
QList<QAction*> StandardFeed::contextMenuFeedsList() {
|
||||||
@ -84,6 +86,7 @@ QString StandardFeed::additionalTooltip() const {
|
|||||||
.toStdList();
|
.toStdList();
|
||||||
QStringList fltrs = FROM_STD_LIST(QStringList, std_fltrs);
|
QStringList fltrs = FROM_STD_LIST(QStringList, std_fltrs);
|
||||||
|
|
||||||
|
// TODO: toto je v podstatě zkopirovane z Feed...
|
||||||
QString base_tooltip =
|
QString base_tooltip =
|
||||||
tr("Auto-update status: %1\n"
|
tr("Auto-update status: %1\n"
|
||||||
"Active message filters: %2\n"
|
"Active message filters: %2\n"
|
||||||
@ -100,10 +103,12 @@ QString StandardFeed::additionalTooltip() const {
|
|||||||
|
|
||||||
return base_tooltip + tr("Encoding: %1\n"
|
return base_tooltip + tr("Encoding: %1\n"
|
||||||
"Type: %2\n"
|
"Type: %2\n"
|
||||||
"Post-processing script: %3")
|
"Post-processing script: %3\n"
|
||||||
|
"Do not use raw XML saving: %4")
|
||||||
.arg(encoding(),
|
.arg(encoding(),
|
||||||
StandardFeed::typeToString(type()),
|
StandardFeed::typeToString(type()),
|
||||||
m_postProcessScript.isEmpty() ? QSL("-") : m_postProcessScript);
|
m_postProcessScript.isEmpty() ? QSL("-") : m_postProcessScript,
|
||||||
|
dontUseRawXmlSaving() ? tr("yes") : tr("no"));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool StandardFeed::canBeDeleted() const {
|
bool StandardFeed::canBeDeleted() const {
|
||||||
@ -158,6 +163,7 @@ QVariantHash StandardFeed::customDatabaseData() const {
|
|||||||
data[QSL("protected")] = int(protection());
|
data[QSL("protected")] = int(protection());
|
||||||
data[QSL("username")] = username();
|
data[QSL("username")] = username();
|
||||||
data[QSL("password")] = TextFactory::encrypt(password());
|
data[QSL("password")] = TextFactory::encrypt(password());
|
||||||
|
data[QSL("dont_use_raw_xml_saving")] = dontUseRawXmlSaving();
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
@ -170,6 +176,7 @@ void StandardFeed::setCustomDatabaseData(const QVariantHash& data) {
|
|||||||
setProtection(NetworkFactory::NetworkAuthentication(data[QSL("protected")].toInt()));
|
setProtection(NetworkFactory::NetworkAuthentication(data[QSL("protected")].toInt()));
|
||||||
setUsername(data[QSL("username")].toString());
|
setUsername(data[QSL("username")].toString());
|
||||||
setPassword(TextFactory::decrypt(data[QSL("password")].toString()));
|
setPassword(TextFactory::decrypt(data[QSL("password")].toString()));
|
||||||
|
setDontUseRawXmlSaving(data[QSL("dont_use_raw_xml_saving")].toBool());
|
||||||
}
|
}
|
||||||
|
|
||||||
QString StandardFeed::typeToString(StandardFeed::Type type) {
|
QString StandardFeed::typeToString(StandardFeed::Type type) {
|
||||||
@ -426,6 +433,14 @@ bool StandardFeed::removeItself() {
|
|||||||
return DatabaseQueries::deleteFeed(database, this, getParentServiceRoot()->accountId());
|
return DatabaseQueries::deleteFeed(database, this, getParentServiceRoot()->accountId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool StandardFeed::dontUseRawXmlSaving() const {
|
||||||
|
return m_dontUseRawXmlSaving;
|
||||||
|
}
|
||||||
|
|
||||||
|
void StandardFeed::setDontUseRawXmlSaving(bool no_raw_xml_saving) {
|
||||||
|
m_dontUseRawXmlSaving = no_raw_xml_saving;
|
||||||
|
}
|
||||||
|
|
||||||
QString StandardFeed::dateTimeFormat() const {
|
QString StandardFeed::dateTimeFormat() const {
|
||||||
return m_dateTimeFormat;
|
return m_dateTimeFormat;
|
||||||
}
|
}
|
||||||
|
@ -110,6 +110,9 @@ class StandardFeed : public Feed {
|
|||||||
QString dateTimeFormat() const;
|
QString dateTimeFormat() const;
|
||||||
void setDateTimeFormat(const QString& dt_format);
|
void setDateTimeFormat(const QString& dt_format);
|
||||||
|
|
||||||
|
bool dontUseRawXmlSaving() const;
|
||||||
|
void setDontUseRawXmlSaving(bool no_raw_xml_saving);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void fetchMetadataForItself();
|
void fetchMetadataForItself();
|
||||||
|
|
||||||
@ -127,6 +130,7 @@ class StandardFeed : public Feed {
|
|||||||
QString m_username;
|
QString m_username;
|
||||||
QString m_password;
|
QString m_password;
|
||||||
QString m_lastEtag;
|
QString m_lastEtag;
|
||||||
|
bool m_dontUseRawXmlSaving;
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(StandardFeed::SourceType)
|
Q_DECLARE_METATYPE(StandardFeed::SourceType)
|
||||||
|
@ -358,6 +358,7 @@ QList<Message> StandardServiceRoot::obtainNewMessages(Feed* feed,
|
|||||||
parser->setDateTimeFormat(f->dateTimeFormat());
|
parser->setDateTimeFormat(f->dateTimeFormat());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parser->setDontUseRawXmlSaving(f->dontUseRawXmlSaving());
|
||||||
messages = parser->messages();
|
messages = parser->messages();
|
||||||
|
|
||||||
if (!parser->dateTimeFormat().isEmpty()) {
|
if (!parser->dateTimeFormat().isEmpty()) {
|
||||||
|
@ -36,7 +36,12 @@ void FormFeedDetails::clearTabs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FormFeedDetails::insertCustomTab(QWidget* custom_tab, const QString& title, int index) {
|
void FormFeedDetails::insertCustomTab(QWidget* custom_tab, const QString& title, int index) {
|
||||||
m_ui->m_tabWidget->insertTab(index, custom_tab, title);
|
if (index < 0) {
|
||||||
|
m_ui->m_tabWidget->addTab(custom_tab, title);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_ui->m_tabWidget->insertTab(index, custom_tab, title);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormFeedDetails::apply() {
|
void FormFeedDetails::apply() {
|
||||||
|
@ -50,7 +50,10 @@ class RSSGUARD_DLLSPEC FormFeedDetails : public QDialog {
|
|||||||
QDialogButtonBox* buttonBox() const;
|
QDialogButtonBox* buttonBox() const;
|
||||||
|
|
||||||
bool isChangeAllowed(MultiFeedEditCheckBox* mcb) const;
|
bool isChangeAllowed(MultiFeedEditCheckBox* mcb) const;
|
||||||
void insertCustomTab(QWidget* custom_tab, const QString& title, int index);
|
|
||||||
|
// Inserts custom tab made by plugin into its editing form. When index is less
|
||||||
|
// than zero, tab is inserted to the last position.
|
||||||
|
void insertCustomTab(QWidget* custom_tab, const QString& title, int index = -1);
|
||||||
|
|
||||||
// Sets the feed which will be edited.
|
// Sets the feed which will be edited.
|
||||||
// NOTE: This must be reimplemented in subclasses. Also this
|
// NOTE: This must be reimplemented in subclasses. Also this
|
||||||
|
Loading…
x
Reference in New Issue
Block a user