mirror of
https://github.com/fergalmoran/flameshot.git
synced 2026-02-10 12:33:59 +00:00
* Refactored upload history widget to use qt ui files. Cleaned up clang tidy warnings. Remove copied to clipboard notified. * fixed some irregularities with the layout * fixing forward declaration
104 lines
2.8 KiB
C++
104 lines
2.8 KiB
C++
#include "uploadhistory.h"
|
|
#include "./ui_uploadhistory.h"
|
|
#include "src/tools/imgupload/imguploadermanager.h"
|
|
#include "src/utils/confighandler.h"
|
|
#include "src/utils/history.h"
|
|
#include "uploadlineitem.h"
|
|
|
|
#include <QDateTime>
|
|
#include <QDesktopWidget>
|
|
#include <QFileInfo>
|
|
#include <QPixmap>
|
|
|
|
void scaleThumbnail(QPixmap& pixmap)
|
|
{
|
|
if (pixmap.height() / HISTORYPIXMAP_MAX_PREVIEW_HEIGHT >=
|
|
pixmap.width() / HISTORYPIXMAP_MAX_PREVIEW_WIDTH) {
|
|
pixmap = pixmap.scaledToHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT,
|
|
Qt::SmoothTransformation);
|
|
} else {
|
|
pixmap = pixmap.scaledToWidth(HISTORYPIXMAP_MAX_PREVIEW_WIDTH,
|
|
Qt::SmoothTransformation);
|
|
}
|
|
}
|
|
|
|
void clearHistoryLayout(QLayout* layout)
|
|
{
|
|
while (layout->count() != 0) {
|
|
delete layout->takeAt(0);
|
|
}
|
|
}
|
|
|
|
UploadHistory::UploadHistory(QWidget* parent)
|
|
: QWidget(parent)
|
|
, ui(new Ui::UploadHistory)
|
|
{
|
|
ui->setupUi(this);
|
|
setAttribute(Qt::WA_DeleteOnClose);
|
|
|
|
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
resize(QDesktopWidget().availableGeometry(this).size() * 0.5);
|
|
}
|
|
|
|
void UploadHistory::loadHistory()
|
|
{
|
|
clearHistoryLayout(ui->historyContainer);
|
|
|
|
History history = History();
|
|
QList<QString> historyFiles = history.history();
|
|
|
|
if (historyFiles.isEmpty()) {
|
|
setEmptyMessage();
|
|
} else {
|
|
foreach (QString fileName, historyFiles) {
|
|
addLine(history.path(), fileName);
|
|
}
|
|
}
|
|
}
|
|
|
|
void UploadHistory::setEmptyMessage()
|
|
{
|
|
auto* buttonEmpty = new QPushButton;
|
|
buttonEmpty->setText(tr("Screenshots history is empty"));
|
|
buttonEmpty->setMinimumSize(1, HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
|
|
connect(buttonEmpty, &QPushButton::clicked, this, [=]() { this->close(); });
|
|
ui->historyContainer->addWidget(buttonEmpty);
|
|
}
|
|
|
|
void UploadHistory::addLine(const QString& path, const QString& fileName)
|
|
{
|
|
QString fullFileName = path + fileName;
|
|
|
|
History history;
|
|
HistoryFileName unpackFileName = history.unpackFileName(fileName);
|
|
|
|
QString url = ImgUploaderManager(this).url() + unpackFileName.file;
|
|
|
|
// load pixmap
|
|
QPixmap pixmap;
|
|
pixmap.load(fullFileName, "png");
|
|
scaleThumbnail(pixmap);
|
|
|
|
// get file info
|
|
auto fileInfo = QFileInfo(fullFileName);
|
|
QString lastModified =
|
|
fileInfo.lastModified().toString("yyyy-MM-dd\nhh:mm:ss");
|
|
|
|
auto* line = new UploadLineItem(
|
|
this, pixmap, lastModified, url, fullFileName, unpackFileName);
|
|
|
|
connect(line, &UploadLineItem::requestedDeletion, this, [=]() {
|
|
if (ui->historyContainer->count() <= 1) {
|
|
setEmptyMessage();
|
|
}
|
|
delete line;
|
|
});
|
|
|
|
ui->historyContainer->addWidget(line);
|
|
}
|
|
|
|
UploadHistory::~UploadHistory()
|
|
{
|
|
delete ui;
|
|
}
|