m_defaultVisibility = Post::stringToVisibility(obj[QStringLiteral("posting:default:visibility")].toString());
m_extendSpoiler = obj[QStringLiteral("reading:expand:spoilers")].toBool();
m_extendMedia = obj[QStringLiteral("reading:expand:media")].toString();
+ m_indexable = obj[QStringLiteral("indexable")].toBool();
Q_EMIT defaultVisibilityChanged();
Q_EMIT defaultSensitiveChanged();
Q_EMIT defaultLanguageChanged();
Q_EMIT extendMediaChanged();
Q_EMIT extendSpoilerChanged();
+ Q_EMIT indexableChanged();
});
});
}
return m_extendSpoiler;
}
+bool Preferences::indexable() const
+{
+ return m_indexable;
+}
+
+void Preferences::setIndexable(bool indexable)
+{
+ if (indexable == m_indexable) {
+ return;
+ }
+
+ m_indexable = indexable;
+ Q_EMIT indexableChanged();
+
+ setPreferencesField(QStringLiteral("indexable"), indexable ? QStringLiteral("true") : QStringLiteral("false"));
+}
+
void Preferences::setPreferencesField(const QString &name, const QString &value)
{
const auto multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
Q_PROPERTY(QString defaultLanguage READ defaultLanguage WRITE setDefaultLanguage NOTIFY defaultLanguageChanged)
Q_PROPERTY(QString extendMedia READ extendMedia NOTIFY extendMediaChanged)
Q_PROPERTY(bool extendSpoiler READ extendSpoiler NOTIFY extendSpoilerChanged)
+ Q_PROPERTY(bool indexable READ indexable WRITE setIndexable NOTIFY indexableChanged)
public:
explicit Preferences(AbstractAccount *account);
*/
[[nodiscard]] bool extendSpoiler() const;
+ /**
+ * @return Whether public posts should be indexed.
+ * @see setIndexable()
+ */
+ [[nodiscard]] bool indexable() const;
+
+ /**
+ * @brief Set whether public posts should be indexed.
+ * @param indexable Whether or not public posts are indexed.
+ * @see indexable()
+ */
+ void setIndexable(bool indexable);
+
Q_SIGNALS:
/**
* @brief Emitted when the default status visibility preference has been changed.
*/
void extendSpoilerChanged();
+ /**
+ * @brief Emitted when the indexable preference has been changed.
+ */
+ void indexableChanged();
+
private:
void setPreferencesField(const QString &name, const QString &value);
QString m_defaultLanguage;
QString m_extendMedia;
bool m_extendSpoiler;
+ bool m_indexable;
};
FormCard.FormDelegateSeparator {
}
+ FormCard.FormSwitchDelegate {
+ text: i18nc("@label Account preferences", "Include public posts in search results")
+ checked: AccountManager.selectedAccount.preferences.indexable
+ onToggled: AccountManager.selectedAccount.preferences.indexable = checked
+ }
+
+ FormCard.FormDelegateSeparator {
+ }
+
FormCard.FormButtonDelegate {
text: i18nc("@label Account preferences", "Default post language")
description: Qt.locale(AccountManager.selectedAccount.preferences.defaultLanguage).nativeLanguageName