Add an option to strip invisible images.

By default this option is not set.  If it is set, all invisible
images, i.e. images with a height or width of 0 or 1, will be removed
from the feed item content.
This commit is contained in:
Michael Käufl 2014-09-28 20:30:08 +02:00
parent 6d62ebecdf
commit 93faf4279b
5 changed files with 71 additions and 20 deletions

View file

@ -578,49 +578,49 @@
</message>
<message>
<location filename="../qml/ttrss/harmattan/Settings.qml" line="63"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="85"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="87"/>
<source>Order</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/harmattan/Settings.qml" line="65"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="94"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="96"/>
<source>Newest First</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/harmattan/Settings.qml" line="65"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="95"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="97"/>
<source>Oldest First</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/harmattan/Settings.qml" line="70"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="138"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="142"/>
<source>Font Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/harmattan/Settings.qml" line="78"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="102"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="104"/>
<source>Automatically Mark Items as Read</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/harmattan/Settings.qml" line="84"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="116"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="119"/>
<source>Show Icons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/harmattan/Settings.qml" line="90"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="70"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="71"/>
<source>Use All Feeds on Startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/harmattan/Settings.qml" line="96"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="64"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="65"/>
<source>Automatically Login</source>
<translation type="unfinished"></translation>
</message>
@ -635,57 +635,67 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="110"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="113"/>
<source>Icons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="123"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="126"/>
<source>Show a White Background on Icons</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="58"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="59"/>
<source>Startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="71"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="72"/>
<source>You need to restart the App for this to take effect.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="79"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="81"/>
<source>Items</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="131"/>
<source>Text</source>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="175"/>
<source>Images</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="146"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="181"/>
<source>Strip invisible images</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="150"/>
<source>Tiny</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="149"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="135"/>
<source>Text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="153"/>
<source>Small</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="152"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="156"/>
<source>Medium</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="155"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="159"/>
<source>Large</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="158"/>
<location filename="../qml/ttrss/sailfish/pages/Settings.qml" line="162"/>
<source>Huge</source>
<translation type="unfinished"></translation>
</message>

View file

@ -264,6 +264,16 @@ Page {
var attachmentsCode = computeAttachmentsCode(data)
var content = data.content.replace('target="_blank"', '')
if (settings.stripInvisibleImg) {
// remove images with a height or width of 0 or 1
var height_regex = /<img\s[^>]*height="[01]"[^>]*>/gi;
content = content.replace(height_regex, "")
var width_regex = /<img\s[^>]*width="[01]"[^>]*>/gi;
content = content.replace(width_regex, "")
}
if (!content.match(/<body>/gi)) {
// not yet html, detect urls
console.log('doing link detection on ' + content)

View file

@ -166,6 +166,21 @@ Dialog {
}
}
}
// -- Images --
Label {
width: parent.width
horizontalAlignment: Text.AlignRight
color: Theme.highlightColor
text: qsTr("Images")
font.pixelSize: Theme.fontSizeSmall;
}
TextSwitch {
id: stripInvisibleImgSetting
text: qsTr('Strip invisible images')
checked: settings.stripInvisibleImg
}
}
}
@ -176,6 +191,7 @@ Dialog {
settings.whiteBackgroundOnIcons = showWhiteBackgroundSetting.checked
settings.useAllFeedsOnStartup = useAllFeedsOnStartupSetting.checked
settings.useAutologin = autoLoginSetting.checked
settings.stripInvisibleImg = stripInvisibleImgSetting.checked
settings.webviewFontSize = fontSizeSetting.value
}
}

View file

@ -159,6 +159,13 @@ void Settings::setShowAll(bool showAll) {
}
}
void Settings::setStripInvisibleImg(bool stripInvisibleImg) {
if (_stripInvisibleImg != stripInvisibleImg) {
_stripInvisibleImg = stripInvisibleImg;
m_settings->setValue("stripInvisibleImg", _stripInvisibleImg);
}
}
Settings::Settings(QObject *parent) : QObject(parent), m_settings(new QSettings(this)) {
_servername = m_settings->value("servername", "http://").toString();
_username = m_settings->value("username", "").toString();
@ -178,4 +185,5 @@ Settings::Settings(QObject *parent) : QObject(parent), m_settings(new QSettings(
_useAllFeedsOnStartup = m_settings->value("useAllFeedsOnStartup", false).toBool();
_whiteBackgroundOnIcons = m_settings->value("whiteBackgroundOnIcons", true).toBool();
_showAll = m_settings->value("showAll", false).toBool();
_stripInvisibleImg = m_settings->value("stripInvisibleImg", false).toBool();
}

View file

@ -49,6 +49,7 @@ class Settings : public QObject
Q_PROPERTY(bool useAllFeedsOnStartup READ useAllFeedsOnStartup WRITE setUseAllFeedsOnStartup NOTIFY useAllFeedsOnStartupChanged)
Q_PROPERTY(bool whiteBackgroundOnIcons READ whiteBackgroundOnIcons WRITE setWhiteBackgroundOnIcons NOTIFY whiteBackgroundOnIconsChanged)
Q_PROPERTY(bool showAll READ showAll WRITE setShowAll NOTIFY showAllChanged)
Q_PROPERTY(bool stripInvisibleImg READ stripInvisibleImg WRITE setStripInvisibleImg)
public:
static Settings *instance();
@ -132,6 +133,11 @@ public:
}
void setShowAll(bool showAll);
bool stripInvisibleImg() const {
return this->_stripInvisibleImg;
}
void setStripInvisibleImg(bool stripInvisibleImg);
signals:
void servernameChanged();
void usernameChanged();
@ -178,5 +184,6 @@ private:
bool _useAllFeedsOnStartup;
bool _whiteBackgroundOnIcons;
bool _showAll;
bool _stripInvisibleImg;
};
#endif // SETTINGS_HH