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

Skip to content

Feature/661 overwrite #798

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 8, 2022
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
589 changes: 295 additions & 294 deletions src/CMakeLists.txt

Large diffs are not rendered by default.

243 changes: 128 additions & 115 deletions src/backend/config/Config.cpp

Large diffs are not rendered by default.

35 changes: 19 additions & 16 deletions src/backend/config/Config.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@

class Config : public IConfig
{
Q_OBJECT
Q_OBJECT
public:
explicit Config(const QSharedPointer<IDirectoryPathProvider> &directoryPathProvider);
~Config() override = default;

// Application
// Application

bool rememberPosition() const override;
void setRememberPosition(bool enabled) override;
Expand All @@ -65,6 +65,9 @@ class Config : public IConfig
int resizeToContentDelay() const override;
void setResizeToContentDelay(int ms) override;

bool overwriteFile() const override;
void setOverwriteFile(bool enabled) override;

bool useTabs() const override;
void setUseTabs(bool enabled) override;

Expand Down Expand Up @@ -166,9 +169,9 @@ class Config : public IConfig
bool isControlsWidgetVisible() const override;
void setIsControlsWidgetVisible(bool isVisible) override;

// Image Grabber
// Image Grabber

bool isFreezeImageWhileSnippingEnabledReadOnly() const override;
bool isFreezeImageWhileSnippingEnabledReadOnly() const override;
bool freezeImageWhileSnippingEnabled() const override;
void setFreezeImageWhileSnippingEnabled(bool enabled) override;

Expand Down Expand Up @@ -210,9 +213,9 @@ class Config : public IConfig
bool forceGenericWaylandEnabled() const override;
void setForceGenericWaylandEnabled(bool enabled) override;

bool isScaleGenericWaylandScreenshotEnabledReadOnly() const override;
bool scaleGenericWaylandScreenshotsEnabled() const override;
void setScaleGenericWaylandScreenshots(bool enabled) override;
bool isScaleGenericWaylandScreenshotEnabledReadOnly() const override;
bool scaleGenericWaylandScreenshotsEnabled() const override;
void setScaleGenericWaylandScreenshots(bool enabled) override;

bool hideMainWindowDuringScreenshot() const override;
void setHideMainWindowDuringScreenshot(bool enabled) override;
Expand All @@ -223,11 +226,11 @@ class Config : public IConfig
bool showSnippingAreaInfoText() const override;
void setShowSnippingAreaInfoText(bool enabled) override;

bool snippingAreaOffsetEnable() const override;
void setSnippingAreaOffsetEnable(bool enabled) override;
bool snippingAreaOffsetEnable() const override;
void setSnippingAreaOffsetEnable(bool enabled) override;

QPointF snippingAreaOffset() const override;
void setSnippingAreaOffset(const QPointF &offset) override;
QPointF snippingAreaOffset() const override;
void setSnippingAreaOffset(const QPointF &offset) override;

// Uploader

Expand All @@ -237,7 +240,7 @@ class Config : public IConfig
UploaderType uploaderType() const override;
void setUploaderType(UploaderType type) override;

// Imgur Uploader
// Imgur Uploader

QString imgurUsername() const override;
void setImgurUsername(const QString &username) override;
Expand Down Expand Up @@ -321,10 +324,10 @@ class Config : public IConfig
QKeySequence windowUnderCursorHotKey() const override;
void setWindowUnderCursorHotKey(const QKeySequence &keySequence) override;

QKeySequence portalHotKey() const override;
void setPortalHotKey(const QKeySequence &keySequence) override;
QKeySequence portalHotKey() const override;
void setPortalHotKey(const QKeySequence &keySequence) override;

// Actions
// Actions

QList<Action> actions() override;
void setActions(const QList<Action> &actions) override;
Expand All @@ -338,7 +341,7 @@ class Config : public IConfig
void setPluginInfos(const QList<PluginInfo> &pluginInfos) override;

private:
QSettings mConfig;
QSettings mConfig;
const QSharedPointer<IDirectoryPathProvider> mDirectoryPathProvider;

void saveValue(const QString &key, const QVariant &value);
Expand Down
15 changes: 10 additions & 5 deletions src/backend/config/ConfigOptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ QString ConfigOptions::resizeToContentDelayString()
return applicationSectionString() + QLatin1String("ResizeToContentDelay");
}

QString ConfigOptions::overwriteFileEnabledString()
{
return applicationSectionString() + QLatin1String("OverwriteFileEnabled");
}

QString ConfigOptions::freezeImageWhileSnippingEnabledString()
{
return imageGrabberSectionString() + QLatin1String("FreezeImageWhileSnippingEnabled");
Expand Down Expand Up @@ -211,7 +216,7 @@ QString ConfigOptions::snippingAreaOffsetEnableString()

QString ConfigOptions::snippingAreaOffsetString()
{
return snippingAreaSectionString() + QLatin1String("SnippingAreaOffset");
return snippingAreaSectionString() + QLatin1String("SnippingAreaOffset");
}

QString ConfigOptions::smoothPathEnabledString()
Expand Down Expand Up @@ -301,12 +306,12 @@ QString ConfigOptions::lastRectAreaString()

QString ConfigOptions::forceGenericWaylandEnabledString()
{
return imageGrabberSectionString() + QLatin1String("ForceGenericWaylandEnabled");
return imageGrabberSectionString() + QLatin1String("ForceGenericWaylandEnabled");
}

QString ConfigOptions::scaleWaylandScreenshotsEnabledString()
{
return imageGrabberSectionString() + QLatin1String("ScaleGenericWaylandScreenshotsEnabledString");
return imageGrabberSectionString() + QLatin1String("ScaleGenericWaylandScreenshotsEnabledString");
}

QString ConfigOptions::imgurUsernameString()
Expand Down Expand Up @@ -541,7 +546,7 @@ QString ConfigOptions::windowUnderCursorHotKeyString()

QString ConfigOptions::portalHotKeyString()
{
return hotKeysSectionString() + QLatin1String("PortalHotKey");
return hotKeysSectionString() + QLatin1String("PortalHotKey");
}

QString ConfigOptions::applicationSectionString()
Expand Down Expand Up @@ -601,5 +606,5 @@ QString ConfigOptions::pluginsSectionString()

QString ConfigOptions::snippingAreaSectionString()
{
return QLatin1String("SnippingArea/");
return QLatin1String("SnippingArea/");
}
1 change: 1 addition & 0 deletions src/backend/config/ConfigOptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class ConfigOptions
static QString autoHideDocksString();
static QString autoResizeToContentString();
static QString resizeToContentDelayString();
static QString overwriteFileEnabledString();
static QString captureModeString();
static QString saveQualityModeString();
static QString saveQualityFactorString();
Expand Down
11 changes: 7 additions & 4 deletions src/backend/config/IConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ class IConfig : public QObject
virtual int resizeToContentDelay() const = 0;
virtual void setResizeToContentDelay(int ms) = 0;

virtual bool overwriteFile() const = 0;
virtual void setOverwriteFile(bool enabled) = 0;

virtual bool useTabs() const = 0;
virtual void setUseTabs(bool enabled) = 0;

Expand Down Expand Up @@ -218,11 +221,11 @@ class IConfig : public QObject
virtual bool showSnippingAreaInfoText() const = 0;
virtual void setShowSnippingAreaInfoText(bool enabled) = 0;

virtual bool snippingAreaOffsetEnable() const = 0;
virtual void setSnippingAreaOffsetEnable(bool enabled) = 0;
virtual bool snippingAreaOffsetEnable() const = 0;
virtual void setSnippingAreaOffsetEnable(bool enabled) = 0;

virtual QPointF snippingAreaOffset() const = 0;
virtual void setSnippingAreaOffset(const QPointF &offset) = 0;
virtual QPointF snippingAreaOffset() const = 0;
virtual void setSnippingAreaOffset(const QPointF &offset) = 0;

// Uploader

Expand Down
25 changes: 25 additions & 0 deletions src/backend/saver/NameProvider.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Copyright (C) 2022 Damir Porobic <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/

#include "NameProvider.h"

QString NameProvider::makeFilename(const QString& path, const QString& filename, const QString& format)
{
return path + filename + format;
}
32 changes: 32 additions & 0 deletions src/backend/saver/NameProvider.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (C) 2022 Damir Porobic <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/

#ifndef KSNIP_NAMEPROVIDER_H
#define KSNIP_NAMEPROVIDER_H

#include <QString>
#include <QFile>

class NameProvider
{
public:
static QString makeFilename(const QString &path, const QString &filename, const QString &format = QString());
};

#endif //KSNIP_NAMEPROVIDER_H
10 changes: 7 additions & 3 deletions src/backend/saver/SavePathProvider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,16 @@ SavePathProvider::SavePathProvider(const QSharedPointer<IConfig> &config) :

QString SavePathProvider::savePath() const
{
return UniqueNameProvider::makeUniqueFilename(saveDirectory(), getFilename(), getFormat(mConfig->saveFormat()));
if (mConfig->overwriteFile()) {
return NameProvider::makeFilename(saveDirectory(), getFilename(), getFormat(mConfig->saveFormat()));
} else {
return UniqueNameProvider::makeUniqueFilename(saveDirectory(), getFilename(), getFormat(mConfig->saveFormat()));
}
}

QString SavePathProvider::savePathWithFormat(const QString &format) const
{
return UniqueNameProvider::makeUniqueFilename(saveDirectory(), getFilename(), getFormat(format));
return UniqueNameProvider::makeUniqueFilename(saveDirectory(), getFilename(), getFormat(format));
}

QString SavePathProvider::getFilename() const
Expand All @@ -42,7 +46,7 @@ QString SavePathProvider::getFilename() const

QString SavePathProvider::getFormat(const QString &format) const
{
return format.startsWith(QLatin1Char('.')) ? format : QLatin1Char('.') + format;
return format.startsWith(QLatin1Char('.')) ? format : QLatin1Char('.') + format;
}

QString SavePathProvider::saveDirectory() const
Expand Down
17 changes: 9 additions & 8 deletions src/backend/saver/SavePathProvider.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,24 @@

#include "ISavePathProvider.h"
#include "src/backend/saver/WildcardResolver.h"
#include "src/backend/saver/NameProvider.h"
#include "src/backend/saver/UniqueNameProvider.h"
#include "src/backend/config/IConfig.h"

class SavePathProvider : public ISavePathProvider
{
public:
explicit SavePathProvider(const QSharedPointer<IConfig> &config);
~SavePathProvider() = default;
QString savePath() const override;
QString savePathWithFormat(const QString& format) const override;
QString saveDirectory() const override;
explicit SavePathProvider(const QSharedPointer<IConfig> &config);
~SavePathProvider() = default;
QString savePath() const override;
QString savePathWithFormat(const QString& format) const override;
QString saveDirectory() const override;

private:
QSharedPointer<IConfig> mConfig;
QSharedPointer<IConfig> mConfig;

QString getFormat(const QString &format) const;
QString getFilename() const;
QString getFormat(const QString &format) const;
QString getFilename() const;
};

#endif //KSNIP_SAVEPATHPROVIDER_H
Loading