mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-08-03 12:46:29 -04:00
Merge pull request #1139 from kiwix/feature/monitor-dir-copy
Settings monitor path QOL improvements
This commit is contained in:
commit
68a7f4be8b
@ -43,12 +43,12 @@ QPushButton:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#downloadDirPathCopy {
|
||||
#downloadDirPathCopy, #monitorDirPathCopy {
|
||||
background-color: none;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
#downloadDirPathCopy:hover {
|
||||
#downloadDirPathCopy:hover, #monitorDirPathCopy:hover {
|
||||
background-color: #D9E9FF;
|
||||
border: 1px solid #3366CC;
|
||||
border-radius: 3px;
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
namespace
|
||||
{
|
||||
QString formatDownloadDir(const QString& input) {
|
||||
QString formatSettingsDir(const QString& input) {
|
||||
const int maxLength = 40;
|
||||
if (input.length() > maxLength) {
|
||||
QString suffix = input.right(maxLength);
|
||||
@ -24,21 +24,27 @@ SettingsView::SettingsView(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::Settings)
|
||||
{
|
||||
SettingsManager *settingsMgr = KiwixApp::instance()->getSettingsManager();
|
||||
ui->setupUi(this);
|
||||
ui->widget->setStyleSheet(KiwixApp::instance()->parseStyleFromFile(":/css/_settingsManager.css"));
|
||||
connect(ui->zoomPercentSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &SettingsView::setZoom);
|
||||
connect(ui->moveToTrashToggle, &QCheckBox::clicked, this, &SettingsView::setMoveToTrash);
|
||||
connect(ui->reopenTabToggle, &QCheckBox::clicked, this, &SettingsView::setReopenTab);
|
||||
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->monitorBrowse, &QPushButton::clicked, this, &SettingsView::browseMonitorDir);
|
||||
connect(ui->monitorClear, &QPushButton::clicked, this, &SettingsView::clearMonitorDir);
|
||||
connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::downloadDirChanged, this, &SettingsView::onDownloadDirChanged);
|
||||
connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::monitorDirChanged, this, &SettingsView::onMonitorDirChanged);
|
||||
connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::zoomChanged, this, &SettingsView::onZoomChanged);
|
||||
connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::moveToTrashChanged, this, &SettingsView::onMoveToTrashChanged);
|
||||
connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::reopenTabChanged, this, &SettingsView::onReopenTabChanged);
|
||||
connect(settingsMgr, &SettingsManager::downloadDirChanged, this, &SettingsView::onDownloadDirChanged);
|
||||
connect(settingsMgr, &SettingsManager::monitorDirChanged, this, &SettingsView::onMonitorDirChanged);
|
||||
connect(settingsMgr, &SettingsManager::zoomChanged, this, &SettingsView::onZoomChanged);
|
||||
connect(settingsMgr, &SettingsManager::moveToTrashChanged, this, &SettingsView::onMoveToTrashChanged);
|
||||
connect(settingsMgr, &SettingsManager::reopenTabChanged, this, &SettingsView::onReopenTabChanged);
|
||||
ui->settingsLabel->setText(gt("settings"));
|
||||
ui->zoomPercentLabel->setText(gt("zoom-level-setting"));
|
||||
ui->downloadDirLabel->setText(gt("download-directory-setting"));
|
||||
@ -50,6 +56,8 @@ SettingsView::SettingsView(QWidget *parent)
|
||||
QIcon copyIcon(":/icons/copy.svg");
|
||||
ui->downloadDirPathCopy->setIcon(copyIcon);
|
||||
ui->downloadDirPathCopy->setIconSize(QSize(24, 24));
|
||||
ui->monitorDirPathCopy->setIcon(copyIcon);
|
||||
ui->monitorDirPathCopy->setIconSize(QSize(24, 24));
|
||||
ui->monitorHelp->setText("<b>?</b>");
|
||||
ui->monitorHelp->setToolTip(gt("monitor-directory-tooltip"));
|
||||
ui->moveToTrashLabel->setText(gt("move-files-to-trash"));
|
||||
@ -68,10 +76,7 @@ void SettingsView::init(int zoomPercent, const QString &downloadDir,
|
||||
{
|
||||
ui->zoomPercentSpinBox->setValue(zoomPercent);
|
||||
SettingsView::onDownloadDirChanged(downloadDir);
|
||||
if (monitorDir == QString()) {
|
||||
ui->monitorClear->hide();
|
||||
}
|
||||
ui->monitorDirPath->setText(monitorDir);
|
||||
SettingsView::onMonitorDirChanged(monitorDir);
|
||||
ui->moveToTrashToggle->setChecked(moveToTrash);
|
||||
ui->reopenTabToggle->setChecked(reopentab);
|
||||
}
|
||||
@ -176,27 +181,23 @@ void SettingsView::setReopenTab(bool reopen)
|
||||
|
||||
void SettingsView::onDownloadDirChanged(const QString &dir)
|
||||
{
|
||||
ui->downloadDirPath->setText(formatDownloadDir(dir));
|
||||
ui->downloadDirPath->setText(formatSettingsDir(dir));
|
||||
ui->downloadDirPath->setToolTip(dir);
|
||||
}
|
||||
|
||||
void SettingsView::copyDownloadPathToClipboard()
|
||||
void SettingsView::copySettingsPathToClipboard(QString pathToCopy, QPushButton* button)
|
||||
{
|
||||
QString downloadPath = KiwixApp::instance()->getSettingsManager()->getDownloadDir();
|
||||
QApplication::clipboard()->setText(downloadPath);
|
||||
|
||||
QPoint globalPos = ui->downloadDirPathCopy->mapToGlobal(QPoint(0, -ui->downloadDirPathCopy->height()));
|
||||
QToolTip::showText(globalPos, gt("path-was-copied"), ui->downloadDirPathCopy);
|
||||
QApplication::clipboard()->setText(pathToCopy);
|
||||
QPoint globalPos = button->mapToGlobal(QPoint(0, -button->height()));
|
||||
QToolTip::showText(globalPos, gt("path-was-copied"), button);
|
||||
}
|
||||
|
||||
void SettingsView::onMonitorDirChanged(const QString &dir)
|
||||
{
|
||||
if (dir == "") {
|
||||
ui->monitorClear->hide();
|
||||
} else {
|
||||
ui->monitorClear->show();
|
||||
}
|
||||
ui->monitorDirPath->setText(dir);
|
||||
ui->monitorClear->setVisible(!dir.isEmpty());
|
||||
ui->monitorDirPathCopy->setVisible(!dir.isEmpty());
|
||||
ui->monitorDirPath->setText(formatSettingsDir(dir));
|
||||
ui->monitorDirPath->setToolTip(dir);
|
||||
}
|
||||
|
||||
void SettingsView::onZoomChanged(qreal zoomFactor)
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define SETTINGSVIEW_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
namespace Ui {
|
||||
class Settings;
|
||||
}
|
||||
@ -23,7 +24,7 @@ public:
|
||||
void setMoveToTrash(bool moveToTrash);
|
||||
void setReopenTab(bool reopen);
|
||||
void onDownloadDirChanged(const QString &dir);
|
||||
void copyDownloadPathToClipboard();
|
||||
void copySettingsPathToClipboard(QString pathToCopy, QPushButton* button);
|
||||
void onMonitorDirChanged(const QString &dir);
|
||||
void onZoomChanged(qreal zoomFactor);
|
||||
void onMoveToTrashChanged(bool moveToTrash);
|
||||
|
@ -258,6 +258,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="monitorDirPathCopy">
|
||||
<property name="text">
|
||||
<string></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
Loading…
x
Reference in New Issue
Block a user