mirror of
https://github.com/martinrotter/rssguard.git
synced 2025-01-30 00:55:16 +01:00
Respect folderId == null, fixes #293.
This commit is contained in:
parent
883cefa67d
commit
a29a083382
@ -247,7 +247,7 @@ bool SystemFactory::isVersionNewer(const QString& new_version, const QString& ba
|
||||
const int new_number = new_version_tkn.takeFirst().toInt();
|
||||
|
||||
if (new_number > base_number) {
|
||||
// New version is indeed higher thatn current version.
|
||||
// New version is indeed higher that current version.
|
||||
return true;
|
||||
}
|
||||
else if (new_number < base_number) {
|
||||
@ -277,7 +277,7 @@ bool SystemFactory::isVersionEqualOrNewer(const QString& new_version, const QStr
|
||||
bool SystemFactory::openFolderFile(const QString& file_path) {
|
||||
#if defined(Q_OS_WIN)
|
||||
return QProcess::startDetached(QSL("explorer.exe"),
|
||||
{ "/select,", QDir::toNativeSeparators(file_path)});
|
||||
{ "/select,", QDir::toNativeSeparators(file_path) });
|
||||
#else
|
||||
const QString folder = QDir::toNativeSeparators(QFileInfo(file_path).absoluteDir().absolutePath());
|
||||
|
||||
|
@ -54,7 +54,7 @@ void FormOwnCloudFeedDetails::apply() {
|
||||
else {
|
||||
const RootItem* parent = static_cast<RootItem*>(m_ui->m_cmbParentCategory->itemData(
|
||||
m_ui->m_cmbParentCategory->currentIndex()).value<void*>());
|
||||
const int category_id = parent->kind() == RootItem::Kind::ServiceRoot ? 0 : parent->customId().toInt();
|
||||
const int category_id = parent->kind() == RootItem::Kind::ServiceRoot ? 0 : parent->customNumericId();
|
||||
const bool response = qobject_cast<OwnCloudServiceRoot*>(m_serviceRoot)->network()->createFeed(m_ui->m_txtUrl->lineEdit()->text(),
|
||||
category_id);
|
||||
|
||||
|
@ -184,7 +184,15 @@ bool OwnCloudNetworkFactory::createFeed(const QString& url, int parent_id) {
|
||||
QJsonObject json;
|
||||
|
||||
json["url"] = url;
|
||||
json["folderId"] = parent_id;
|
||||
|
||||
auto nextcloud_version = status().version();
|
||||
|
||||
if (SystemFactory::isVersionEqualOrNewer(nextcloud_version, QSL("15.1.0"))) {
|
||||
json["folderId"] = parent_id == 0 ? QJsonValue::Null : parent_id;
|
||||
}
|
||||
else {
|
||||
json["folderId"] = parent_id;
|
||||
}
|
||||
|
||||
QByteArray result_raw;
|
||||
QList<QPair<QByteArray, QByteArray>> headers;
|
||||
@ -461,7 +469,7 @@ RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons)
|
||||
auto* parent = new RootItem();
|
||||
QMap<QString, RootItem*> cats;
|
||||
|
||||
// Top-level feed have "folderId" set to "0".
|
||||
// Top-level feed have "folderId" set to "0" or JSON "null" value.
|
||||
cats.insert(QSL("0"), parent);
|
||||
|
||||
// Process categories first, then process feeds.
|
||||
@ -524,6 +532,8 @@ RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons)
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE: Starting with News 15.1.0, top-level feeds do not have parent folder ID 0, but JSON "null".
|
||||
// Luckily, if folder ID is not convertible to int, then default 0 value is returned.
|
||||
cats.value(QString::number(item["folderId"].toInt()))->appendChild(feed);
|
||||
qDebugNN << LOGSEC_NEXTCLOUD
|
||||
<< "Custom ID of next fetched processed feed is"
|
||||
|
Loading…
x
Reference in New Issue
Block a user