Monitor path setting QOL improvements

This commit is contained in:
sgourdas 2024-07-01 12:14:50 +03:00 committed by Kelson
parent 3ee2537baf
commit 1f7795112b
4 changed files with 31 additions and 22 deletions

View File

@ -43,12 +43,12 @@ QPushButton:hover {
color: white; color: white;
} }
#downloadDirPathCopy { #downloadDirPathCopy, #monitorDirPathCopy {
background-color: none; background-color: none;
border: 1px solid transparent; border: 1px solid transparent;
} }
#downloadDirPathCopy:hover { #downloadDirPathCopy:hover, #monitorDirPathCopy:hover {
background-color: #D9E9FF; background-color: #D9E9FF;
border: 1px solid #3366CC; border: 1px solid #3366CC;
border-radius: 3px; border-radius: 3px;

View File

@ -9,7 +9,7 @@
namespace namespace
{ {
QString formatDownloadDir(const QString& input) { QString formatSettingsDir(const QString& input) {
const int maxLength = 40; const int maxLength = 40;
if (input.length() > maxLength) { if (input.length() > maxLength) {
QString suffix = input.right(maxLength); QString suffix = input.right(maxLength);
@ -24,13 +24,19 @@ SettingsView::SettingsView(QWidget *parent)
: QWidget(parent) : QWidget(parent)
, ui(new Ui::Settings) , ui(new Ui::Settings)
{ {
SettingsManager *settingsMgr = KiwixApp::instance()->getSettingsManager();
ui->setupUi(this); ui->setupUi(this);
ui->widget->setStyleSheet(KiwixApp::instance()->parseStyleFromFile(":/css/_settingsManager.css")); ui->widget->setStyleSheet(KiwixApp::instance()->parseStyleFromFile(":/css/_settingsManager.css"));
connect(ui->zoomPercentSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &SettingsView::setZoom); connect(ui->zoomPercentSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &SettingsView::setZoom);
connect(ui->moveToTrashToggle, &QCheckBox::clicked, this, &SettingsView::setMoveToTrash); connect(ui->moveToTrashToggle, &QCheckBox::clicked, this, &SettingsView::setMoveToTrash);
connect(ui->reopenTabToggle, &QCheckBox::clicked, this, &SettingsView::setReopenTab); connect(ui->reopenTabToggle, &QCheckBox::clicked, this, &SettingsView::setReopenTab);
connect(ui->browseButton, &QPushButton::clicked, this, &SettingsView::browseDownloadDir); connect(ui->browseButton, &QPushButton::clicked, this, &SettingsView::browseDownloadDir);
connect(ui->downloadDirPathCopy, &QPushButton::clicked, this, &SettingsView::copyDownloadPathToClipboard); connect(ui->downloadDirPathCopy, &QPushButton::clicked, [this, settingsMgr]() {
copySettingsPathToClipboard(settingsMgr->getDownloadDir(), ui->downloadDirPathCopy);
});
connect(ui->monitorDirPathCopy, &QPushButton::clicked, [this, settingsMgr]() {
copySettingsPathToClipboard(settingsMgr->getMonitorDir(), ui->monitorDirPathCopy);
});
connect(ui->resetButton, &QPushButton::clicked, this, &SettingsView::resetDownloadDir); connect(ui->resetButton, &QPushButton::clicked, this, &SettingsView::resetDownloadDir);
connect(ui->monitorBrowse, &QPushButton::clicked, this, &SettingsView::browseMonitorDir); connect(ui->monitorBrowse, &QPushButton::clicked, this, &SettingsView::browseMonitorDir);
connect(ui->monitorClear, &QPushButton::clicked, this, &SettingsView::clearMonitorDir); connect(ui->monitorClear, &QPushButton::clicked, this, &SettingsView::clearMonitorDir);
@ -50,6 +56,8 @@ SettingsView::SettingsView(QWidget *parent)
QIcon copyIcon(":/icons/copy.svg"); QIcon copyIcon(":/icons/copy.svg");
ui->downloadDirPathCopy->setIcon(copyIcon); ui->downloadDirPathCopy->setIcon(copyIcon);
ui->downloadDirPathCopy->setIconSize(QSize(24, 24)); ui->downloadDirPathCopy->setIconSize(QSize(24, 24));
ui->monitorDirPathCopy->setIcon(copyIcon);
ui->monitorDirPathCopy->setIconSize(QSize(24, 24));
ui->monitorHelp->setText("<b>?</b>"); ui->monitorHelp->setText("<b>?</b>");
ui->monitorHelp->setToolTip(gt("monitor-directory-tooltip")); ui->monitorHelp->setToolTip(gt("monitor-directory-tooltip"));
ui->moveToTrashLabel->setText(gt("move-files-to-trash")); ui->moveToTrashLabel->setText(gt("move-files-to-trash"));
@ -68,10 +76,7 @@ void SettingsView::init(int zoomPercent, const QString &downloadDir,
{ {
ui->zoomPercentSpinBox->setValue(zoomPercent); ui->zoomPercentSpinBox->setValue(zoomPercent);
SettingsView::onDownloadDirChanged(downloadDir); SettingsView::onDownloadDirChanged(downloadDir);
if (monitorDir == QString()) { SettingsView::onMonitorDirChanged(monitorDir);
ui->monitorClear->hide();
}
ui->monitorDirPath->setText(monitorDir);
ui->moveToTrashToggle->setChecked(moveToTrash); ui->moveToTrashToggle->setChecked(moveToTrash);
ui->reopenTabToggle->setChecked(reopentab); ui->reopenTabToggle->setChecked(reopentab);
} }
@ -176,27 +181,23 @@ void SettingsView::setReopenTab(bool reopen)
void SettingsView::onDownloadDirChanged(const QString &dir) void SettingsView::onDownloadDirChanged(const QString &dir)
{ {
ui->downloadDirPath->setText(formatDownloadDir(dir)); ui->downloadDirPath->setText(formatSettingsDir(dir));
ui->downloadDirPath->setToolTip(dir); ui->downloadDirPath->setToolTip(dir);
} }
void SettingsView::copyDownloadPathToClipboard() void SettingsView::copySettingsPathToClipboard(QString pathToCopy, QPushButton* button)
{ {
QString downloadPath = KiwixApp::instance()->getSettingsManager()->getDownloadDir(); QApplication::clipboard()->setText(pathToCopy);
QApplication::clipboard()->setText(downloadPath); QPoint globalPos = button->mapToGlobal(QPoint(0, -button->height()));
QToolTip::showText(globalPos, gt("path-was-copied"), button);
QPoint globalPos = ui->downloadDirPathCopy->mapToGlobal(QPoint(0, -ui->downloadDirPathCopy->height()));
QToolTip::showText(globalPos, gt("path-was-copied"), ui->downloadDirPathCopy);
} }
void SettingsView::onMonitorDirChanged(const QString &dir) void SettingsView::onMonitorDirChanged(const QString &dir)
{ {
if (dir == "") { ui->monitorClear->setVisible(!dir.isEmpty());
ui->monitorClear->hide(); ui->monitorDirPathCopy->setVisible(!dir.isEmpty());
} else { ui->monitorDirPath->setText(formatSettingsDir(dir));
ui->monitorClear->show(); ui->monitorDirPath->setToolTip(dir);
}
ui->monitorDirPath->setText(dir);
} }
void SettingsView::onZoomChanged(qreal zoomFactor) void SettingsView::onZoomChanged(qreal zoomFactor)

View File

@ -2,6 +2,7 @@
#define SETTINGSVIEW_H #define SETTINGSVIEW_H
#include <QWidget> #include <QWidget>
#include <QPushButton>
namespace Ui { namespace Ui {
class Settings; class Settings;
} }
@ -23,7 +24,7 @@ public:
void setMoveToTrash(bool moveToTrash); void setMoveToTrash(bool moveToTrash);
void setReopenTab(bool reopen); void setReopenTab(bool reopen);
void onDownloadDirChanged(const QString &dir); void onDownloadDirChanged(const QString &dir);
void copyDownloadPathToClipboard(); void copySettingsPathToClipboard(QString pathToCopy, QPushButton* button);
void onMonitorDirChanged(const QString &dir); void onMonitorDirChanged(const QString &dir);
void onZoomChanged(qreal zoomFactor); void onZoomChanged(qreal zoomFactor);
void onMoveToTrashChanged(bool moveToTrash); void onMoveToTrashChanged(bool moveToTrash);

View File

@ -258,6 +258,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="monitorDirPathCopy">
<property name="text">
<string></string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>