Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/backend/config/KsnipConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,19 @@ void KsnipConfig::setCloseToTray(bool enabled)
saveValue(KsnipConfigOptions::closeToTrayString(), enabled);
}

bool KsnipConfig::trayIconNotificationsEnabled() const
{
return loadValue(KsnipConfigOptions::trayIconNotificationsEnabledString(), true).toBool();
}

void KsnipConfig::setTrayIconNotificationsEnabled(bool enabled)
{
if (trayIconNotificationsEnabled() == enabled) {
return;
}
saveValue(KsnipConfigOptions::trayIconNotificationsEnabledString(), enabled);
}

bool KsnipConfig::startMinimizedToTray() const
{
return loadValue(KsnipConfigOptions::startMinimizedToTrayString(), false).toBool();
Expand Down
3 changes: 3 additions & 0 deletions src/backend/config/KsnipConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,9 @@ class KsnipConfig : public QObject
virtual bool closeToTray() const;
virtual void setCloseToTray(bool enabled);

virtual bool trayIconNotificationsEnabled() const;
virtual void setTrayIconNotificationsEnabled(bool enabled);

virtual bool startMinimizedToTray() const;
virtual void setStartMinimizedToTray(bool enabled);

Expand Down
5 changes: 5 additions & 0 deletions src/backend/config/KsnipConfigOptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,11 @@ QString KsnipConfigOptions::closeToTrayString()
return applicationSectionString() + QLatin1String("CloseToTray");
}

QString KsnipConfigOptions::trayIconNotificationsEnabledString()
{
return applicationSectionString() + QLatin1String("TrayIconNotificationsEnabled");
}

QString KsnipConfigOptions::startMinimizedToTrayString()
{
return applicationSectionString() + QLatin1String("StartMinimizedToTray");
Expand Down
1 change: 1 addition & 0 deletions src/backend/config/KsnipConfigOptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ class KsnipConfigOptions
static QString useTrayIconString();
static QString minimizeToTrayString();
static QString closeToTrayString();
static QString trayIconNotificationsEnabledString();
static QString startMinimizedToTrayString();
static QString rememberLastSaveDirectoryString();
static QString useSingleInstanceString();
Expand Down
15 changes: 11 additions & 4 deletions src/gui/operations/NotifyOperation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ NotifyOperation::NotifyOperation(IToastService *toastService, const QString &tit
mToastService(toastService),
mTitle(title),
mMessage(message),
mNotificationType(notificationType)
mNotificationType(notificationType),
mConfig(KsnipConfigProvider::instance())
{
Q_ASSERT(mToastService != nullptr);
}
Expand All @@ -38,15 +39,21 @@ bool NotifyOperation::execute()
{
switch (mNotificationType) {
case NotificationTypes::Information:
mToastService->showInfoToast(mTitle, mMessage, mContentUrl);
if (mConfig->trayIconNotificationsEnabled()) {
mToastService->showInfoToast(mTitle, mMessage, mContentUrl);
}
qInfo("%s: %s", qPrintable(mTitle), qPrintable(mMessage));
break;
case NotificationTypes::Warning:
mToastService->showWarningToast(mTitle, mMessage, mContentUrl);
if (mConfig->trayIconNotificationsEnabled()) {
mToastService->showWarningToast(mTitle, mMessage, mContentUrl);
}
qWarning("%s: %s", qPrintable(mTitle), qPrintable(mMessage));
break;
case NotificationTypes::Critical:
mToastService->showCriticalToast(mTitle, mMessage, mContentUrl);
if (mConfig->trayIconNotificationsEnabled()) {
mToastService->showCriticalToast(mTitle, mMessage, mContentUrl);
}
qCritical("%s: %s", qPrintable(mTitle), qPrintable(mMessage));
break;
}
Expand Down
1 change: 1 addition & 0 deletions src/gui/operations/NotifyOperation.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ class NotifyOperation
QString mMessage;
QString mContentUrl;
NotificationTypes mNotificationType;
KsnipConfig *mConfig;
};

#endif //KSNIP_NOTIFYOPERATION_H
23 changes: 15 additions & 8 deletions src/gui/settingsDialog/TrayIconSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ TrayIconSettings::TrayIconSettings(KsnipConfig *config, const QList<CaptureModes
mUseTrayIconCheckBox(new QCheckBox(this)),
mMinimizeToTrayCheckBox(new QCheckBox(this)),
mCloseToTrayCheckBox(new QCheckBox(this)),
mTrayIconNotificationsCheckBox(new QCheckBox(this)),
mDefaultActionCaptureModeCombobox(new QComboBox(this)),
mStartMinimizedToTrayCheckBox(new QCheckBox(this)),
mDefaultActionShowEditorRadioButton(new QRadioButton(this)),
Expand All @@ -45,6 +46,7 @@ TrayIconSettings::~TrayIconSettings()
delete mUseTrayIconCheckBox;
delete mMinimizeToTrayCheckBox;
delete mCloseToTrayCheckBox;
delete mTrayIconNotificationsCheckBox;
delete mDefaultActionCaptureModeCombobox;
delete mStartMinimizedToTrayCheckBox;
delete mDefaultActionShowEditorRadioButton;
Expand All @@ -58,6 +60,7 @@ void TrayIconSettings::saveSettings()
mConfig->setMinimizeToTray(mMinimizeToTrayCheckBox->isChecked());
mConfig->setStartMinimizedToTray(mStartMinimizedToTrayCheckBox->isChecked());
mConfig->setCloseToTray(mCloseToTrayCheckBox->isChecked());
mConfig->setTrayIconNotificationsEnabled(mTrayIconNotificationsCheckBox->isChecked());
mConfig->setDefaultTrayIconActionMode(selectedTrayIconDefaultActionMode());
mConfig->setDefaultTrayIconCaptureMode(mDefaultActionCaptureModeCombobox->currentData().value<CaptureModes>());
}
Expand All @@ -70,6 +73,7 @@ void TrayIconSettings::initGui()
mMinimizeToTrayCheckBox->setText(tr("Minimize to Tray"));
mStartMinimizedToTrayCheckBox->setText(tr("Start Minimized to Tray"));
mCloseToTrayCheckBox->setText(tr("Close to Tray"));
mTrayIconNotificationsCheckBox->setText(tr("Display Tray icon notifications"));

connect(mUseTrayIconCheckBox, &QCheckBox::stateChanged, this, &TrayIconSettings::useTrayIconChanged);

Expand All @@ -92,7 +96,8 @@ void TrayIconSettings::initGui()
mLayout->addWidget(mStartMinimizedToTrayCheckBox, 2, 0, 1, 4);
mLayout->addWidget(mMinimizeToTrayCheckBox, 3, 0, 1, 4);
mLayout->addWidget(mCloseToTrayCheckBox, 4, 0, 1, 4);
mLayout->addWidget(mDefaultActionGroupBox, 5, 0, 1, 4);
mLayout->addWidget(mTrayIconNotificationsCheckBox, 5, 0, 1, 4);
mLayout->addWidget(mDefaultActionGroupBox, 6, 0, 1, 4);

setTitle(tr("Tray Icon Settings"));
setLayout(mLayout);
Expand All @@ -104,6 +109,7 @@ void TrayIconSettings::loadConfig()
mMinimizeToTrayCheckBox->setChecked(mConfig->minimizeToTray());
mStartMinimizedToTrayCheckBox->setChecked(mConfig->startMinimizedToTray());
mCloseToTrayCheckBox->setChecked(mConfig->closeToTray());
mTrayIconNotificationsCheckBox->setChecked(mConfig->trayIconNotificationsEnabled());
mDefaultActionShowEditorRadioButton->setChecked(mConfig->defaultTrayIconActionMode() == TrayIconDefaultActionMode::ShowEditor);
mDefaultActionCaptureRadioButton->setChecked(mConfig->defaultTrayIconActionMode() == TrayIconDefaultActionMode::Capture);
mDefaultActionCaptureModeCombobox->setCurrentIndex(indexOfSelectedCaptureMode());
Expand Down Expand Up @@ -131,11 +137,12 @@ void TrayIconSettings::populateDefaultActionCaptureModeCombobox(const QList<Capt

void TrayIconSettings::useTrayIconChanged()
{
const auto tryIconEnabled = mUseTrayIconCheckBox->isChecked();
mMinimizeToTrayCheckBox->setEnabled(tryIconEnabled);
mCloseToTrayCheckBox->setEnabled(tryIconEnabled);
mStartMinimizedToTrayCheckBox->setEnabled(tryIconEnabled);
mDefaultActionCaptureModeCombobox->setEnabled(tryIconEnabled);
mDefaultActionShowEditorRadioButton->setEnabled(tryIconEnabled);
mDefaultActionCaptureRadioButton->setEnabled(tryIconEnabled);
const auto trayIconEnabled = mUseTrayIconCheckBox->isChecked();
mMinimizeToTrayCheckBox->setEnabled(trayIconEnabled);
mCloseToTrayCheckBox->setEnabled(trayIconEnabled);
mTrayIconNotificationsCheckBox->setEnabled(trayIconEnabled);
mStartMinimizedToTrayCheckBox->setEnabled(trayIconEnabled);
mDefaultActionCaptureModeCombobox->setEnabled(trayIconEnabled);
mDefaultActionShowEditorRadioButton->setEnabled(trayIconEnabled);
mDefaultActionCaptureRadioButton->setEnabled(trayIconEnabled);
}
1 change: 1 addition & 0 deletions src/gui/settingsDialog/TrayIconSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Q_OBJECT
QCheckBox *mUseTrayIconCheckBox;
QCheckBox *mMinimizeToTrayCheckBox;
QCheckBox *mCloseToTrayCheckBox;
QCheckBox *mTrayIconNotificationsCheckBox;
QComboBox *mDefaultActionCaptureModeCombobox;
QCheckBox *mStartMinimizedToTrayCheckBox;
QRadioButton *mDefaultActionShowEditorRadioButton;
Expand Down