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

Skip to content

Commit 10a53e4

Browse files
committed
Feature/661 overwrite (#798)
* Implement save all feature * Address review comments * Changes to unit tests to include Save All context menu action test * Implement file save overwrite settings
1 parent 5fe35aa commit 10a53e4

File tree

7 files changed

+37
-36
lines changed

7 files changed

+37
-36
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* New: Add Save all options menu. ([#754](https://github.com/ksnip/ksnip/issues/754))
1515
* New: Allow overwriting existing files. ([#661](https://github.com/ksnip/ksnip/issues/661))
1616
* New: Allow setting Imgur upload title/description. ([#679](https://github.com/ksnip/ksnip/issues/679))
17+
* New: Search bar in the settings menu. ([#619](https://github.com/ksnip/ksnip/issues/619))
1718
* New kImageAnnotator: Add optional undo, redo, crop, scale and modify canvas buttons to dock widgets. ([#263](https://github.com/ksnip/kImageAnnotator/issues/263))
1819
* Fixed: Opens a new window for each capture. ([#728](https://github.com/ksnip/ksnip/issues/728))
1920
* Fixed: First cli invocation won't copy image to clipboard. ([#764](https://github.com/ksnip/ksnip/issues/764))

desktop/org.ksnip.ksnip.appdata.xml

+1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
<li>New: Add Save all options menu.</li>
101101
<li>New: Allow overwriting existing files.</li>
102102
<li>New: Allow setting Imgur upload title/description.</li>
103+
<li>New: Search bar in the settings menu.</li>
103104
<li>New kImageAnnotator: Add optional undo, redo, crop, scale and modify canvas buttons to dock widgets.</li>
104105
<li>Fixed: Opens a new window for each capture.</li>
105106
<li>Fixed: First cli invocation won't copy image to clipboard.</li>

src/gui/settingsDialog/ISettingsFilter.h

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2021 Damir Porobic <[email protected]>
2+
* Copyright (C) 2022 Damir Porobic <[email protected]>
33
*
44
* This program is free software; you can redistribute it and/or modify
55
* it under the terms of the GNU General Public License as published by
@@ -32,9 +32,7 @@ class ISettingsFilter
3232
explicit ISettingsFilter() = default;
3333
~ISettingsFilter() = default;
3434

35-
virtual void filterSettings(const QString &filterString,
36-
QTreeWidget *treeWidget,
37-
std::function<QWidget *(QTreeWidgetItem *)> getSettingsPageFun) const = 0;
35+
virtual void filterSettings(const QString &filterString, QTreeWidget *treeWidget, std::function<QWidget *(QTreeWidgetItem *)> getSettingsPageFunc) const = 0;
3836
};
3937

4038
#endif //KSNIP_ISETTINGSFILTER_H

src/gui/settingsDialog/SettingsDialog.cpp

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2016 Damir Porobic <https://github.com/damirporobic>
2+
* Copyright (C) 2016 Damir Porobic <damir.porobic@gmx.com>
33
*
44
* This program is free software; you can redistribute it and/or modify
55
* it under the terms of the GNU General Public License as published by
@@ -200,7 +200,7 @@ void SettingsDialog::initGui()
200200

201201
void SettingsDialog::switchTab()
202202
{
203-
if (mTreeWidget->selectedItems().size() == 0) {
203+
if (mTreeWidget->selectedItems().empty()) {
204204
mStackedLayout->setCurrentIndex(mNavigatorItems.size());
205205
} else {
206206
mStackedLayout->setCurrentIndex(mNavigatorItems.indexOf(mTreeWidget->currentItem()));
@@ -209,9 +209,7 @@ void SettingsDialog::switchTab()
209209

210210
void SettingsDialog::filterSettings(const QString &filterString)
211211
{
212-
mSettingsFilter->filterSettings(filterString,
213-
mTreeWidget,
214-
[this](QTreeWidgetItem *treeWidgetItem) {
212+
mSettingsFilter->filterSettings(filterString, mTreeWidget, [this](QTreeWidgetItem *treeWidgetItem) {
215213
return mStackedLayout->itemAt(mNavigatorItems.indexOf(treeWidgetItem))->widget();
216214
});
217215
}

src/gui/settingsDialog/SettingsDialog.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2016 Damir Porobic <https://github.com/damirporobic>
2+
* Copyright (C) 2016 Damir Porobic <damir.porobic@gmx.com>
33
*
44
* This program is free software; you can redistribute it and/or modify
55
* it under the terms of the GNU General Public License as published by

src/gui/settingsDialog/SettingsFilter.cpp

+19-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2021 Damir Porobic <[email protected]>
2+
* Copyright (C) 2022 Damir Porobic <[email protected]>
33
*
44
* This program is free software; you can redistribute it and/or modify
55
* it under the terms of the GNU General Public License as published by
@@ -26,26 +26,27 @@
2626

2727
#include "SettingsFilter.h"
2828

29-
void SettingsFilter::filterSettings(const QString &filterString,
30-
QTreeWidget *treeWidget,
31-
std::function<QWidget*(QTreeWidgetItem*)> getSettingsPageFun) const
29+
void SettingsFilter::filterSettings(
30+
const QString &filterString,
31+
QTreeWidget *treeWidget,
32+
std::function<QWidget*(QTreeWidgetItem*)> getSettingsPageFunc) const
3233
{
3334
if (filterString.isEmpty()) {
34-
for (size_t topLevelItemIndex = 0; topLevelItemIndex < treeWidget->topLevelItemCount(); ++topLevelItemIndex) {
35+
for (auto topLevelItemIndex = 0; topLevelItemIndex < treeWidget->topLevelItemCount(); ++topLevelItemIndex) {
3536
auto topLevelItem = treeWidget->topLevelItem(topLevelItemIndex);
36-
for (size_t childIndex = 0; childIndex < topLevelItem->childCount(); ++childIndex) {
37+
for (auto childIndex = 0; childIndex < topLevelItem->childCount(); ++childIndex) {
3738
topLevelItem->child(childIndex)->setHidden(false);
3839
}
3940
topLevelItem->setHidden(false);
4041
}
4142
return;
4243
}
4344

44-
for (int index = 0; index < treeWidget->topLevelItemCount(); ++index) {
45-
filterNavigatorItem(treeWidget->topLevelItem(index), filterString, getSettingsPageFun);
45+
for (auto index = 0; index < treeWidget->topLevelItemCount(); ++index) {
46+
filterNavigatorItem(treeWidget->topLevelItem(index), filterString, getSettingsPageFunc);
4647
}
4748

48-
for (size_t topLevelItemIndex = 0; topLevelItemIndex < treeWidget->topLevelItemCount(); ++topLevelItemIndex) {
49+
for (auto topLevelItemIndex = 0; topLevelItemIndex < treeWidget->topLevelItemCount(); ++topLevelItemIndex) {
4950
if (!treeWidget->topLevelItem(topLevelItemIndex)->isHidden()) {
5051
treeWidget->setCurrentItem(treeWidget->topLevelItem(topLevelItemIndex));
5152
return;
@@ -55,23 +56,24 @@ void SettingsFilter::filterSettings(const QString &filterString,
5556
treeWidget->clearSelection();
5657
}
5758

58-
bool SettingsFilter::filterNavigatorItem(QTreeWidgetItem *navigatorItem,
59-
const QString &filterString,
60-
std::function<QWidget*(QTreeWidgetItem*)> getSettingsPageFun) const
59+
bool SettingsFilter::filterNavigatorItem(
60+
QTreeWidgetItem *navigatorItem,
61+
const QString &filterString,
62+
std::function<QWidget*(QTreeWidgetItem*)> getSettingsPageFunc) const
6163
{
6264
bool isFiltered{true};
6365

6466
if (navigatorItem->text(0).contains(filterString, Qt::CaseInsensitive)) {
6567
navigatorItem->setDisabled(false);
66-
for (int index = 0; index < navigatorItem->childCount(); ++index) {
67-
filterNavigatorItem(navigatorItem->child(index), filterString, getSettingsPageFun);
68+
for (auto index = 0; index < navigatorItem->childCount(); ++index) {
69+
filterNavigatorItem(navigatorItem->child(index), filterString, getSettingsPageFunc);
6870
}
6971
isFiltered = false;
7072
} else {
71-
isFiltered = !settingsPageContainsFilterString(getSettingsPageFun(navigatorItem), filterString);
73+
isFiltered = !settingsPageContainsFilterString(getSettingsPageFunc(navigatorItem), filterString);
7274

73-
for (int index = 0; index < navigatorItem->childCount(); ++index) {
74-
isFiltered &= filterNavigatorItem(navigatorItem->child(index), filterString, getSettingsPageFun);
75+
for (auto index = 0; index < navigatorItem->childCount(); ++index) {
76+
isFiltered &= filterNavigatorItem(navigatorItem->child(index), filterString, getSettingsPageFunc);
7577
}
7678
}
7779

src/gui/settingsDialog/SettingsFilter.h

+10-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2021 Damir Porobic <[email protected]>
2+
* Copyright (C) 2022 Damir Porobic <[email protected]>
33
*
44
* This program is free software; you can redistribute it and/or modify
55
* it under the terms of the GNU General Public License as published by
@@ -28,17 +28,18 @@ class SettingsFilter : public ISettingsFilter
2828
explicit SettingsFilter() = default;
2929
~SettingsFilter() = default;
3030

31-
void filterSettings(const QString &filterString,
32-
QTreeWidget *treeWidget,
33-
std::function<QWidget *(QTreeWidgetItem *)> getSettingsPageFun) const override;
31+
void filterSettings(
32+
const QString &filterString,
33+
QTreeWidget *treeWidget,
34+
std::function<QWidget *(QTreeWidgetItem *)> getSettingsPageFunc) const override;
3435

3536
private:
36-
bool filterNavigatorItem(QTreeWidgetItem *navigatorItem,
37-
const QString &filterString,
38-
std::function<QWidget *(QTreeWidgetItem *)> getSettingsPageFun) const;
37+
bool filterNavigatorItem(
38+
QTreeWidgetItem *navigatorItem,
39+
const QString &filterString,
40+
std::function<QWidget *(QTreeWidgetItem *)> getSettingsPageFunc) const;
3941

40-
bool settingsPageContainsFilterString(QWidget *settingsPage,
41-
const QString &filterString) const;
42+
bool settingsPageContainsFilterString(QWidget *settingsPage, const QString &filterString) const;
4243
};
4344

4445
#endif //KSNIP_SETTINGSFILTER_H

0 commit comments

Comments
 (0)