This commit is contained in:
Martin Rotter 2021-08-13 09:13:55 +02:00
parent 3b0cb8c847
commit 847d7cd47d
5 changed files with 87 additions and 56 deletions

View file

@ -7,7 +7,11 @@ CONFIG *= c++1z warn_on
CONFIG -= debug_and_release CONFIG -= debug_and_release
DEFINES *= QT_USE_QSTRINGBUILDER QT_USE_FAST_CONCATENATION QT_USE_FAST_OPERATOR_PLUS UNICODE _UNICODE DEFINES *= QT_USE_QSTRINGBUILDER QT_USE_FAST_CONCATENATION QT_USE_FAST_OPERATOR_PLUS UNICODE _UNICODE
VERSION = $$APP_VERSION VERSION = $$APP_VERSION
QT *= core gui widgets sql network xml qml multimedia QT *= core gui widgets sql network xml qml
!os2 {
QT *= multimedia
}
greaterThan(QT_MAJOR_VERSION, 5) { greaterThan(QT_MAJOR_VERSION, 5) {
QT *= core5compat QT *= core5compat

View file

@ -48,11 +48,11 @@ RSS Guard is cross-platform application and at this point is know to work on:
## <a id="mfe"></a>Major Features ## <a id="mfe"></a>Major Features
### <a id="sfr"></a>Supported Feed Readers ### <a id="sfr"></a>Supported Feed Readers
RSS Guard is multi-account application and supports many web feed readers via built-in [plugins](#papi). One of the plugins, of course, provide support for standard **RSS/ATOM/JSON** feeds with set of features everyone would expect from classic feed reader like OPML support etc. RSS Guard is multi-account application and supports many web feed readers via built-in [plugins](#papi). One of the plugins, of course, provides support for standard **RSS/ATOM/JSON** feeds with set of features everyone would expect from classic feed reader like OPML support etc.
I organized supported web feed readers into elegant table. I organized supported web feed readers into elegant table.
| Service | Two-way Synchronization | [Intelligent Synchronization Algorithm](#intel) <sup>2</sup> | <a id="sfrl"></a>Synchronized Labels <sup>1</sup> | OAuth | | Service | Two-way Synchronization | [Intelligent Synchronization Algorithm](#intel) (ISA) <sup>2</sup> | <a id="sfrl"></a>Synchronized Labels <sup>1</sup> | OAuth |
|----|-----|-----|----|---| |----|-----|-----|----|---|
| Feedly | ✅ | ❌ | ✅ | ✅ (only for official binaries) | | Feedly | ✅ | ❌ | ✅ | ✅ (only for official binaries) |
| Gmail | ✅ | ❌ | ❌ | ✅ | | Gmail | ✅ | ❌ | ❌ | ✅ |
@ -66,7 +66,7 @@ I organized supported web feed readers into elegant table.
<img src="images/intel.png" width="350px"> <img src="images/intel.png" width="350px">
In ISA, RSS Guard only downloads only articles which are new or were updated, whereas older algorithm in RSS Guard usually always fetches all available articles, even if they are not needed, leading to unnecessary overload of your network connection and RSS Guard. With ISA, RSS Guard only downloads only articles which are new or were updated, whereas older algorithm in RSS Guard usually always fetches all available articles, even if they are not needed, leading to unnecessary overload of your network connection and RSS Guard.
<sup>3</sup> Tested services are: <sup>3</sup> Tested services are:
* Bazqux * Bazqux

View file

@ -11,8 +11,12 @@ SingleNotificationEditor::SingleNotificationEditor(const Notification& notificat
: QGroupBox(parent), m_notificationEvent(Notification::Event::NoEvent) { : QGroupBox(parent), m_notificationEvent(Notification::Event::NoEvent) {
m_ui.setupUi(this); m_ui.setupUi(this);
#if defined(Q_OS_OS2)
m_ui.m_wdgSound->setVisible(false);
#else
m_ui.m_btnBrowseSound->setIcon(qApp->icons()->fromTheme(QSL("document-open"))); m_ui.m_btnBrowseSound->setIcon(qApp->icons()->fromTheme(QSL("document-open")));
m_ui.m_btnPlaySound->setIcon(qApp->icons()->fromTheme(QSL("media-playback-start"))); m_ui.m_btnPlaySound->setIcon(qApp->icons()->fromTheme(QSL("media-playback-start")));
#endif
loadNotification(notification); loadNotification(notification);
@ -21,7 +25,7 @@ SingleNotificationEditor::SingleNotificationEditor(const Notification& notificat
connect(m_ui.m_txtSound, &QLineEdit::textChanged, this, &SingleNotificationEditor::notificationChanged); connect(m_ui.m_txtSound, &QLineEdit::textChanged, this, &SingleNotificationEditor::notificationChanged);
connect(m_ui.m_cbBalloon, &QCheckBox::toggled, this, &SingleNotificationEditor::notificationChanged); connect(m_ui.m_cbBalloon, &QCheckBox::toggled, this, &SingleNotificationEditor::notificationChanged);
setFixedHeight(sizeHint().height()); //setFixedHeight(sizeHint().height());
} }
Notification SingleNotificationEditor::notification() const { Notification SingleNotificationEditor::notification() const {

View file

@ -6,65 +6,83 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>353</width> <width>423</width>
<height>65</height> <height>128</height>
</rect> </rect>
</property> </property>
<layout class="QFormLayout" name="formLayout"> <property name="sizePolicy">
<property name="leftMargin"> <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<number>6</number> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
<property name="topMargin"> </sizepolicy>
<number>6</number> </property>
</property> <layout class="QVBoxLayout" name="verticalLayout">
<property name="rightMargin"> <item>
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Sound</string>
</property>
<property name="buddy">
<cstring>m_txtSound</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="BaseLineEdit" name="m_txtSound">
<property name="placeholderText">
<string>Full path to your WAV sound file</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnBrowseSound">
<property name="text">
<string>&amp;Browse</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnPlaySound">
<property name="text">
<string>&amp;Play</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="m_cbBalloon"> <widget class="QCheckBox" name="m_cbBalloon">
<property name="text"> <property name="text">
<string>Balloon notification</string> <string>Balloon notification</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QWidget" name="m_wdgSound" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Sound</string>
</property>
<property name="buddy">
<cstring>m_txtSound</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="BaseLineEdit" name="m_txtSound">
<property name="placeholderText">
<string>Full path to your WAV sound file</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnBrowseSound">
<property name="text">
<string>&amp;Browse</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnPlaySound">
<property name="text">
<string>&amp;Play</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<customwidgets> <customwidgets>

View file

@ -5,7 +5,10 @@
#include "miscellaneous/application.h" #include "miscellaneous/application.h"
#include <QDir> #include <QDir>
#if !defined(Q_OS_OS2)
#include <QSound> #include <QSound>
#endif
Notification::Notification(Notification::Event event, bool balloon, const QString& sound_path) Notification::Notification(Notification::Event event, bool balloon, const QString& sound_path)
: m_event(event), m_balloonEnabled(balloon), m_soundPath(sound_path) {} : m_event(event), m_balloonEnabled(balloon), m_soundPath(sound_path) {}
@ -28,7 +31,9 @@ void Notification::setSoundPath(const QString& sound_path) {
void Notification::playSound(Application* app) const { void Notification::playSound(Application* app) const {
if (!m_soundPath.isEmpty()) { if (!m_soundPath.isEmpty()) {
#if !defined(Q_OS_OS2)
QSound::play(QDir::toNativeSeparators(app->replaceDataUserDataFolderPlaceholder(m_soundPath))); QSound::play(QDir::toNativeSeparators(app->replaceDataUserDataFolderPlaceholder(m_soundPath)));
#endif
} }
} }