mirror of
https://github.com/YACReader/yacreader
synced 2025-05-25 18:00:46 -04:00
Save magnifying glass size and zoom level
This commit is contained in:
parent
390883080d
commit
2bebec95bf
@ -2,6 +2,12 @@
|
||||
|
||||
Version counting is based on semantic versioning (Major.Feature.Patch)
|
||||
|
||||
## WIP (9.15.0)
|
||||
|
||||
### YACReader
|
||||
* Save magnifying glass size and zoom level.
|
||||
* Add shortcut to reset the magnifying glass to its defaults (size and zoom), it is `slash` by default but it can be reasigned.
|
||||
|
||||
## 9.14.2
|
||||
|
||||
### YACReaderLibrary
|
||||
|
@ -27,8 +27,8 @@ void Configuration::load(QSettings *settings)
|
||||
settings->setValue(GO_TO_FLOW_SIZE, QSize(126, 200));
|
||||
if (!settings->contains(MAG_GLASS_SIZE))
|
||||
settings->setValue(MAG_GLASS_SIZE, QSize(350, 175));
|
||||
if (!settings->contains(ZOOM_LEVEL))
|
||||
settings->setValue(MAG_GLASS_SIZE, QSize(350, 175));
|
||||
if (!settings->contains(MAG_GLASS_ZOOM))
|
||||
settings->setValue(MAG_GLASS_ZOOM, 0.5);
|
||||
if (!settings->contains(FLOW_TYPE))
|
||||
settings->setValue(FLOW_TYPE, 0);
|
||||
if (!settings->contains(FULLSCREEN))
|
||||
|
@ -36,6 +36,8 @@ public:
|
||||
void setDefaultPath(QString defaultPath) { settings->setValue(PATH, defaultPath); }
|
||||
QSize getMagnifyingGlassSize() { return settings->value(MAG_GLASS_SIZE).toSize(); }
|
||||
void setMagnifyingGlassSize(const QSize &mgs) { settings->setValue(MAG_GLASS_SIZE, mgs); }
|
||||
float getMagnifyingGlassZoom() { return settings->value(MAG_GLASS_ZOOM, 0.5).toFloat(); }
|
||||
void setMagnifyingGlassZoom(float mgz) { settings->setValue(MAG_GLASS_ZOOM, mgz); }
|
||||
QSize getGotoSlideSize() { return settings->value(GO_TO_FLOW_SIZE).toSize(); }
|
||||
void setGotoSlideSize(const QSize &gss) { settings->setValue(GO_TO_FLOW_SIZE, gss); }
|
||||
float getZoomLevel() { return settings->value(ZOOM_LEVEL).toFloat(); }
|
||||
|
@ -4,14 +4,14 @@
|
||||
|
||||
#include <QScrollBar>
|
||||
|
||||
MagnifyingGlass::MagnifyingGlass(int w, int h, QWidget *parent)
|
||||
: QLabel(parent), zoomLevel(0.5)
|
||||
MagnifyingGlass::MagnifyingGlass(int w, int h, float zoomLevel, QWidget *parent)
|
||||
: QLabel(parent), zoomLevel(zoomLevel)
|
||||
{
|
||||
setup(QSize(w, h));
|
||||
}
|
||||
|
||||
MagnifyingGlass::MagnifyingGlass(const QSize &size, QWidget *parent)
|
||||
: QLabel(parent), zoomLevel(0.5)
|
||||
MagnifyingGlass::MagnifyingGlass(const QSize &size, float zoomLevel, QWidget *parent)
|
||||
: QLabel(parent), zoomLevel(zoomLevel)
|
||||
{
|
||||
setup(size);
|
||||
}
|
||||
@ -178,6 +178,7 @@ void MagnifyingGlass::zoomIn()
|
||||
{
|
||||
if (zoomLevel > 0.2f) {
|
||||
zoomLevel -= 0.025f;
|
||||
emit zoomChanged(zoomLevel);
|
||||
updateImage();
|
||||
}
|
||||
}
|
||||
@ -186,6 +187,7 @@ void MagnifyingGlass::zoomOut()
|
||||
{
|
||||
if (zoomLevel < 0.9f) {
|
||||
zoomLevel += 0.025f;
|
||||
emit zoomChanged(zoomLevel);
|
||||
updateImage();
|
||||
}
|
||||
}
|
||||
@ -234,9 +236,17 @@ void MagnifyingGlass::widthDown()
|
||||
resizeAndUpdate(w, height());
|
||||
}
|
||||
|
||||
void MagnifyingGlass::reset()
|
||||
{
|
||||
zoomLevel = 0.5f;
|
||||
emit zoomChanged(zoomLevel);
|
||||
resizeAndUpdate(350, 175);
|
||||
}
|
||||
|
||||
void MagnifyingGlass::resizeAndUpdate(int w, int h)
|
||||
{
|
||||
resize(w, h);
|
||||
emit sizeChanged(size());
|
||||
updateImage();
|
||||
}
|
||||
|
||||
|
@ -23,8 +23,8 @@ private:
|
||||
bool shrinkHeight(int &h) const;
|
||||
|
||||
public:
|
||||
MagnifyingGlass(int width, int height, QWidget *parent);
|
||||
MagnifyingGlass(const QSize &size, QWidget *parent);
|
||||
MagnifyingGlass(int width, int height, float zoomLevel, QWidget *parent);
|
||||
MagnifyingGlass(const QSize &size, float zoomLevel, QWidget *parent);
|
||||
void mouseMoveEvent(QMouseEvent *event) override;
|
||||
public slots:
|
||||
void updateImage(int x, int y);
|
||||
@ -38,6 +38,11 @@ public slots:
|
||||
void heightDown();
|
||||
void widthUp();
|
||||
void widthDown();
|
||||
void reset();
|
||||
|
||||
signals:
|
||||
void sizeChanged(QSize newSize);
|
||||
void zoomChanged(float newZoomLevel);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -1187,8 +1187,12 @@ void MainWindowViewer::setUpShortcutsManagement()
|
||||
auto *const zoomOutMglassAction = addActionWithShortcut(tr("Zoom out magnifying glass"), ZOOM_OUT_MGLASS_ACTION_Y);
|
||||
connect(zoomOutMglassAction, &QAction::triggered, viewer, &Viewer::magnifyingGlassZoomOut);
|
||||
|
||||
auto *const resetMglassAction = addActionWithShortcut(tr("Reset magnifying glass"), RESET_MGLASS_ACTION_Y);
|
||||
connect(resetMglassAction, &QAction::triggered, viewer, &Viewer::resetMagnifyingGlass);
|
||||
|
||||
mglassActions = { sizeUpMglassAction, sizeDownMglassAction,
|
||||
zoomInMglassAction, zoomOutMglassAction };
|
||||
zoomInMglassAction, zoomOutMglassAction,
|
||||
resetMglassAction };
|
||||
|
||||
editShortcutsDialog->addActionsGroup(tr("Magnifiying glass"), QIcon(":/images/shortcuts_group_mglass.svg"),
|
||||
tmpList = QList<QAction *>()
|
||||
|
@ -61,7 +61,18 @@ Viewer::Viewer(QWidget *parent)
|
||||
palette.setColor(backgroundRole(), Configuration::getConfiguration().getBackgroundColor());
|
||||
setPalette(palette);
|
||||
//---------------------------------------
|
||||
mglass = new MagnifyingGlass(Configuration::getConfiguration().getMagnifyingGlassSize(), this);
|
||||
mglass = new MagnifyingGlass(
|
||||
Configuration::getConfiguration().getMagnifyingGlassSize(),
|
||||
Configuration::getConfiguration().getMagnifyingGlassZoom(),
|
||||
this);
|
||||
|
||||
connect(mglass, &MagnifyingGlass::sizeChanged, this, [](QSize size) {
|
||||
Configuration::getConfiguration().setMagnifyingGlassSize(size);
|
||||
});
|
||||
connect(mglass, &MagnifyingGlass::zoomChanged, this, [](float zoom) {
|
||||
Configuration::getConfiguration().setMagnifyingGlassZoom(zoom);
|
||||
});
|
||||
|
||||
mglass->hide();
|
||||
content->setMouseTracking(true);
|
||||
setMouseTracking(true);
|
||||
@ -159,6 +170,7 @@ void Viewer::createConnections()
|
||||
connect(this, &Viewer::magnifyingGlassSizeDown, mglass, &MagnifyingGlass::sizeDown);
|
||||
connect(this, &Viewer::magnifyingGlassZoomIn, mglass, &MagnifyingGlass::zoomIn);
|
||||
connect(this, &Viewer::magnifyingGlassZoomOut, mglass, &MagnifyingGlass::zoomOut);
|
||||
connect(this, &Viewer::resetMagnifyingGlass, mglass, &MagnifyingGlass::reset);
|
||||
|
||||
// goToDialog
|
||||
connect(goToDialog, &GoToDialog::goToPage, this, &Viewer::goTo);
|
||||
|
@ -210,6 +210,7 @@ signals:
|
||||
void magnifyingGlassSizeDown();
|
||||
void magnifyingGlassZoomIn();
|
||||
void magnifyingGlassZoomOut();
|
||||
void resetMagnifyingGlass();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include <QMetaType>
|
||||
#include <QAbstractItemModel>
|
||||
|
||||
#define VERSION "9.14.2"
|
||||
#define VERSION "9.15.0"
|
||||
|
||||
// Used to check if the database needs to be updated, the version is stored in the database.
|
||||
// This value is only incremented when the database structure changes.
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
#define PATH "PATH"
|
||||
#define MAG_GLASS_SIZE "MAG_GLASS_SIZE"
|
||||
#define MAG_GLASS_ZOOM "MAG_GLASS_ZOOM"
|
||||
#define ZOOM_LEVEL "ZOOM_LEVEL"
|
||||
#define SLIDE_SIZE "SLIDE_SIZE"
|
||||
#define GO_TO_FLOW_SIZE "GO_TO_FLOW_SIZE"
|
||||
@ -40,7 +41,6 @@
|
||||
#define Y_POSITION "Y_POSITION"
|
||||
#define COVER_DISTANCE "COVER_DISTANCE"
|
||||
#define CENTRAL_DISTANCE "CENTRAL_DISTANCE"
|
||||
#define ZOOM_LEVEL "ZOOM_LEVEL"
|
||||
#define Z_COVER_OFFSET "Z_COVER_OFFSET"
|
||||
#define COVER_ROTATION "COVER_ROTATION"
|
||||
#define FADE_OUT_DIST "FADE_OUT_DIST"
|
||||
|
@ -76,6 +76,7 @@ void ShortcutsManager::initDefaultShorcuts()
|
||||
defaultShorcuts.insert(SIZE_DOWN_MGLASS_ACTION_Y, Qt::Key_Minus);
|
||||
defaultShorcuts.insert(ZOOM_IN_MGLASS_ACTION_Y, Qt::Key_Asterisk);
|
||||
defaultShorcuts.insert(ZOOM_OUT_MGLASS_ACTION_Y, Qt::Key_Underscore);
|
||||
defaultShorcuts.insert(RESET_MGLASS_ACTION_Y, Qt::Key_Slash);
|
||||
|
||||
#ifdef Q_OS_MACOS
|
||||
defaultShorcuts.insert(NEW_INSTANCE_ACTION_Y, Qt::Key_N);
|
||||
|
@ -159,5 +159,6 @@ public:
|
||||
#define SIZE_DOWN_MGLASS_ACTION_Y "SIZE_DOWN_MGLASS_ACTION_Y"
|
||||
#define ZOOM_IN_MGLASS_ACTION_Y "ZOOM_IN_MGLASS_ACTION_Y"
|
||||
#define ZOOM_OUT_MGLASS_ACTION_Y "ZOOM_OUT_MGLASS_ACTION_Y"
|
||||
#define RESET_MGLASS_ACTION_Y "RESET_MGLASS_ACTION_Y"
|
||||
|
||||
#endif // SHORTCUTS_MANAGER_H
|
||||
|
Loading…
Reference in New Issue
Block a user