mirror of
https://github.com/fergalmoran/flameshot.git
synced 2025-12-30 13:49:48 +00:00
* Make --path work correctly with relative paths Relative paths are taken relative to the working directory of the calling command, not relative to the daemon's working directory. * Allow file paths in --path and refactor * Remove some redundancy These actions are already performed in the respective functions in FlameshotDBusAdapter. * Tweak --path error checker a bit more * Rework FileNameHandler and update references The class now has a much simpler interface. - Screenshot paths are now universally determined by the function properScreenshotPath - Some unreferenced methods have been removed - The documentation of properScreenshotPath documents the changes well. * Add crude tests for --path Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com> * Fix failing build on Windows Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com> * Add a test for invalid path Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com> * Make tests clearer Thanks to @mmahmoudian for his review and contribution. Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com> * Fix bug in properScreenshotPath Auto-numeration did not work when the screenshot was automatically saved when copied to clipboard. Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com> * Fall back to default pictures location Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com> * Revert "Remove some redundancy" This was not redundancy. I had actually introduced a bug with this. This reverts commit 011ef737564892e494518443e6b80ccf3d286ae1. * Change default path only on interactive save Previously, the default save path was changed every time a screenshot was saved. Now, that only happens when it gets saved from the GUI. Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com> * Change --path help text Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com> * Allow other image formats Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
// SPDX-FileCopyrightText: 2017-2019 Alejandro Sirgo Rica & Contributors
|
|
|
|
#include "openwithprogram.h"
|
|
|
|
#if defined(Q_OS_WIN)
|
|
#include "src/utils/filenamehandler.h"
|
|
#include <QDir>
|
|
#include <QMessageBox>
|
|
#include <windows.h>
|
|
#ifdef _WIN32_WINNT
|
|
#undef _WIN32_WINNT
|
|
#define _WIN32_WINNT 0x601
|
|
#endif
|
|
#include <Shlobj.h>
|
|
|
|
#pragma comment(lib, "Shell32.lib")
|
|
#else
|
|
#include "src/tools/launcher/applauncherwidget.h"
|
|
#endif
|
|
|
|
void showOpenWithMenu(const QPixmap& capture)
|
|
{
|
|
#if defined(Q_OS_WIN)
|
|
QString tempFile =
|
|
FileNameHandler().properScreenshotPath(QDir::tempPath(), "png");
|
|
bool ok = capture.save(tempFile);
|
|
if (!ok) {
|
|
QMessageBox::about(nullptr,
|
|
QObject::tr("Error"),
|
|
QObject::tr("Unable to write in") +
|
|
QDir::tempPath());
|
|
return;
|
|
}
|
|
|
|
OPENASINFO info;
|
|
auto wStringFile = tempFile.replace("/", "\\").toStdWString();
|
|
info.pcszFile = wStringFile.c_str();
|
|
info.pcszClass = nullptr;
|
|
info.oaifInFlags = OAIF_ALLOW_REGISTRATION | OAIF_EXEC;
|
|
SHOpenWithDialog(nullptr, &info);
|
|
#else
|
|
auto w = new AppLauncherWidget(capture);
|
|
w->show();
|
|
#endif
|
|
}
|