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
DEFINES *= QT_USE_QSTRINGBUILDER QT_USE_FAST_CONCATENATION QT_USE_FAST_OPERATOR_PLUS UNICODE _UNICODE
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) {
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="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.
| 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) |
| Gmail | ✅ | ❌ | ❌ | ✅ |
@ -66,7 +66,7 @@ I organized supported web feed readers into elegant table.
<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:
* Bazqux

View file

@ -11,8 +11,12 @@ SingleNotificationEditor::SingleNotificationEditor(const Notification& notificat
: QGroupBox(parent), m_notificationEvent(Notification::Event::NoEvent) {
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_btnPlaySound->setIcon(qApp->icons()->fromTheme(QSL("media-playback-start")));
#endif
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_cbBalloon, &QCheckBox::toggled, this, &SingleNotificationEditor::notificationChanged);
setFixedHeight(sizeHint().height());
//setFixedHeight(sizeHint().height());
}
Notification SingleNotificationEditor::notification() const {

View file

@ -6,24 +6,46 @@
<rect>
<x>0</x>
<y>0</y>
<width>353</width>
<height>65</height>
<width>423</width>
<height>128</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="m_cbBalloon">
<property name="text">
<string>Balloon notification</string>
</property>
</widget>
</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>6</number>
<number>0</number>
</property>
<property name="topMargin">
<number>6</number>
<number>0</number>
</property>
<property name="rightMargin">
<number>6</number>
<number>0</number>
</property>
<property name="bottomMargin">
<number>6</number>
<number>0</number>
</property>
<item row="1" column="0">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Sound</string>
@ -33,7 +55,7 @@
</property>
</widget>
</item>
<item row="1" column="1">
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="BaseLineEdit" name="m_txtSound">
@ -58,11 +80,7 @@
</item>
</layout>
</item>
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="m_cbBalloon">
<property name="text">
<string>Balloon notification</string>
</property>
</layout>
</widget>
</item>
</layout>

View file

@ -5,7 +5,10 @@
#include "miscellaneous/application.h"
#include <QDir>
#if !defined(Q_OS_OS2)
#include <QSound>
#endif
Notification::Notification(Notification::Event event, bool balloon, const QString& 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 {
if (!m_soundPath.isEmpty()) {
#if !defined(Q_OS_OS2)
QSound::play(QDir::toNativeSeparators(app->replaceDataUserDataFolderPlaceholder(m_soundPath)));
#endif
}
}