Preferences: Add preview button for notifications

remotes/origin/falkon
David Rosca 9 years ago
parent c8345df3fe
commit 97aeb45a76
  1. 43
      src/lib/preferences/preferences.cpp
  2. 6
      src/lib/preferences/preferences.h
  3. 151
      src/lib/preferences/preferences.ui

@ -399,8 +399,7 @@ Preferences::Preferences(BrowserWindow* window)
ui->useOSDNotifications->setChecked(true);
}
connect(ui->useNativeSystemNotifications, SIGNAL(toggled(bool)), this, SLOT(setNotificationPreviewVisible(bool)));
connect(ui->useOSDNotifications, SIGNAL(toggled(bool)), this, SLOT(setNotificationPreviewVisible(bool)));
connect(ui->notificationPreview, &QPushButton::clicked, this, &Preferences::showNotificationPreview);
ui->doNotUseNotifications->setChecked(!settings.value("Enabled", true).toBool());
m_notifPosition = settings.value("Position", QPoint(10, 10)).toPoint();
@ -559,7 +558,10 @@ void Preferences::showStackedPage(QListWidgetItem* item)
ui->caption->setText("<b>" + item->text() + "</b>");
ui->stackedWidget->setCurrentIndex(index);
setNotificationPreviewVisible(index == 9);
if (m_notification) {
m_notifPosition = m_notification.data()->pos();
delete m_notification.data();
}
if (index == 10) {
m_pluginsList->load();
@ -572,29 +574,22 @@ void Preferences::showStackedPage(QListWidgetItem* item)
}
}
void Preferences::setNotificationPreviewVisible(bool state)
void Preferences::showNotificationPreview()
{
if (!state && m_notification) {
m_notifPosition = m_notification.data()->pos();
delete m_notification.data();
}
if (state) {
if (ui->useOSDNotifications->isChecked()) {
if (m_notification) {
m_notifPosition = m_notification.data()->pos();
delete m_notification.data();
}
m_notification = new DesktopNotification(true);
m_notification.data()->setHeading(tr("OSD Notification"));
m_notification.data()->setText(tr("Drag it on the screen to place it where you want."));
m_notification.data()->move(m_notifPosition);
m_notification.data()->show();
}
else if (ui->useNativeSystemNotifications->isChecked()) {
mApp->desktopNotifications()->nativeNotificationPreview();
if (ui->useOSDNotifications->isChecked()) {
if (m_notification) {
m_notifPosition = m_notification.data()->pos();
delete m_notification.data();
}
m_notification = new DesktopNotification(true);
m_notification.data()->setHeading(tr("OSD Notification"));
m_notification.data()->setText(tr("Drag it on the screen to place it where you want."));
m_notification.data()->move(m_notifPosition);
m_notification.data()->show();
}
else if (ui->useNativeSystemNotifications->isChecked()) {
mApp->desktopNotifications()->nativeNotificationPreview();
}
}

@ -1,6 +1,6 @@
/* ============================================================
* QupZilla - WebKit based browser
* Copyright (C) 2010-2014 David Rosca <nowrep@gmail.com>
* QupZilla - Qt web browser
* Copyright (C) 2010-2017 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -86,7 +86,7 @@ private slots:
void setProgressBarColorIcon(QColor col = QColor());
void selectCustomProgressBarColor();
void setNotificationPreviewVisible(bool state);
void showNotificationPreview();
void makeQupZillaDefault();

@ -2134,6 +2134,56 @@
</widget>
<widget class="QWidget" name="notificationsPage">
<layout class="QGridLayout" name="gridLayout_17">
<item row="2" column="6">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="1" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<widget class="QLabel" name="label_42">
<property name="text">
<string>Expiration timeout:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="notificationTimeout">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string> seconds</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="4" colspan="3">
<spacer name="horizontalSpacer_17">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="4">
<widget class="QLabel" name="label_41">
<property name="text">
@ -2141,12 +2191,18 @@
</property>
</widget>
</item>
<item row="1" column="1" colspan="3">
<widget class="QRadioButton" name="useOSDNotifications">
<property name="text">
<string>Use OSD Notifications</string>
<item row="8" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1" colspan="3">
<widget class="QRadioButton" name="useNativeSystemNotifications">
@ -2165,19 +2221,6 @@
</property>
</widget>
</item>
<item row="7" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer_13">
<property name="orientation">
@ -2194,44 +2237,7 @@
</property>
</spacer>
</item>
<item row="4" column="4">
<spacer name="horizontalSpacer_17">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="1" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<widget class="QLabel" name="label_42">
<property name="text">
<string>Expiration timeout:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="notificationTimeout">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string> seconds</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="6" column="1" colspan="4">
<item row="7" column="1" colspan="5">
<widget class="QLabel" name="label_43">
<property name="text">
<string>&lt;b&gt;Note: &lt;/b&gt;You can change position of OSD Notification by dragging it on the screen.</string>
@ -2241,7 +2247,7 @@
</property>
</widget>
</item>
<item row="5" column="1">
<item row="6" column="1">
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -2257,6 +2263,33 @@
</property>
</spacer>
</item>
<item row="1" column="1" colspan="3">
<widget class="QRadioButton" name="useOSDNotifications">
<property name="text">
<string>Use OSD Notifications</string>
</property>
</widget>
</item>
<item row="2" column="5">
<widget class="QPushButton" name="notificationPreview">
<property name="text">
<string>Preview</string>
</property>
</widget>
</item>
<item row="2" column="4">
<spacer name="horizontalSpacer_27">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="extensionsPage">
@ -2381,8 +2414,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>96</width>
<height>28</height>
<width>560</width>
<height>70</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_14">

Loading…
Cancel
Save