Add zoom slider to status bar
This commit is contained in:
@@ -33,6 +33,7 @@
|
|||||||
#include <QScreen>
|
#include <QScreen>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QShortcut>
|
#include <QShortcut>
|
||||||
|
#include <QSlider>
|
||||||
#include <QStatusBar>
|
#include <QStatusBar>
|
||||||
#include <QToolBar>
|
#include <QToolBar>
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
@@ -278,7 +279,7 @@ void MainWindow::init()
|
|||||||
if (m_viewSmoothTransform)
|
if (m_viewSmoothTransform)
|
||||||
m_textView->setRenderHints(QPainter::SmoothPixmapTransform);
|
m_textView->setRenderHints(QPainter::SmoothPixmapTransform);
|
||||||
m_textView->setBackgroundBrush(QBrush(QColor(32, 48, 96)));
|
m_textView->setBackgroundBrush(QBrush(QColor(32, 48, 96)));
|
||||||
setSceneDimensions();
|
m_zoomSlider->setValue(m_viewZoom);
|
||||||
setCentralWidget(m_textView);
|
setCentralWidget(m_textView);
|
||||||
|
|
||||||
connect(m_textWidget->document(), &TeletextDocument::cursorMoved, this, &MainWindow::updateCursorPosition);
|
connect(m_textWidget->document(), &TeletextDocument::cursorMoved, this, &MainWindow::updateCursorPosition);
|
||||||
@@ -766,26 +767,36 @@ void MainWindow::setSmoothTransform(bool smoothTransform)
|
|||||||
|
|
||||||
void MainWindow::zoomIn()
|
void MainWindow::zoomIn()
|
||||||
{
|
{
|
||||||
if (m_viewZoom < 4)
|
if (m_viewZoom < 4) {
|
||||||
m_viewZoom++;
|
m_viewZoom++;
|
||||||
else if (m_viewZoom < 12)
|
m_zoomSlider->setValue(m_viewZoom);
|
||||||
|
} else if (m_viewZoom < 12) {
|
||||||
m_viewZoom += 2;
|
m_viewZoom += 2;
|
||||||
setSceneDimensions();
|
m_zoomSlider->setValue(m_viewZoom / 2 + 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::zoomOut()
|
void MainWindow::zoomOut()
|
||||||
{
|
{
|
||||||
if (m_viewZoom > 4)
|
if (m_viewZoom > 4) {
|
||||||
m_viewZoom -= 2;
|
m_viewZoom -= 2;
|
||||||
else if (m_viewZoom > 0)
|
m_zoomSlider->setValue(m_viewZoom == 4 ? 4 : m_viewZoom / 2 + 2);
|
||||||
|
} else if (m_viewZoom > 0) {
|
||||||
m_viewZoom--;
|
m_viewZoom--;
|
||||||
|
m_zoomSlider->setValue(m_viewZoom);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::zoomSet(int viewZoom)
|
||||||
|
{
|
||||||
|
m_viewZoom = (viewZoom < 5) ? viewZoom : (viewZoom - 2) * 2;
|
||||||
setSceneDimensions();
|
setSceneDimensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::zoomReset()
|
void MainWindow::zoomReset()
|
||||||
{
|
{
|
||||||
m_viewZoom = 2;
|
m_viewZoom = 2;
|
||||||
setSceneDimensions();
|
m_zoomSlider->setValue(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::toggleInsertMode()
|
void MainWindow::toggleInsertMode()
|
||||||
@@ -821,6 +832,17 @@ void MainWindow::createStatusBar()
|
|||||||
m_cursorPositionLabel = new QLabel("1, 1");
|
m_cursorPositionLabel = new QLabel("1, 1");
|
||||||
statusBar()->insertWidget(3, m_cursorPositionLabel);
|
statusBar()->insertWidget(3, m_cursorPositionLabel);
|
||||||
|
|
||||||
|
m_zoomSlider = new QSlider;
|
||||||
|
m_zoomSlider->setOrientation(Qt::Horizontal);
|
||||||
|
m_zoomSlider->setMinimumHeight(m_subPageLabel->height());
|
||||||
|
m_zoomSlider->setMaximumHeight(m_subPageLabel->height());
|
||||||
|
m_zoomSlider->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed);
|
||||||
|
m_zoomSlider->setRange(0, 8);
|
||||||
|
m_zoomSlider->setPageStep(1);
|
||||||
|
m_zoomSlider->setFocusPolicy(Qt::NoFocus);
|
||||||
|
statusBar()->insertWidget(4, m_zoomSlider);
|
||||||
|
connect(m_zoomSlider, &QSlider::valueChanged, this, &MainWindow::zoomSet);
|
||||||
|
|
||||||
m_insertModePushButton = new QPushButton("OVERWRITE");
|
m_insertModePushButton = new QPushButton("OVERWRITE");
|
||||||
m_insertModePushButton->setFlat(true);
|
m_insertModePushButton->setFlat(true);
|
||||||
m_insertModePushButton->setMinimumHeight(m_subPageLabel->height());
|
m_insertModePushButton->setMinimumHeight(m_subPageLabel->height());
|
||||||
|
|||||||
@@ -21,13 +21,13 @@
|
|||||||
#define MAINWINDOW_H
|
#define MAINWINDOW_H
|
||||||
|
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QComboBox>
|
|
||||||
#include <QGraphicsProxyWidget>
|
#include <QGraphicsProxyWidget>
|
||||||
#include <QGraphicsScene>
|
#include <QGraphicsScene>
|
||||||
#include <QGraphicsView>
|
#include <QGraphicsView>
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
#include <QSlider>
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
|
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
@@ -84,6 +84,7 @@ private slots:
|
|||||||
void setSmoothTransform(bool smoothTransform);
|
void setSmoothTransform(bool smoothTransform);
|
||||||
void zoomIn();
|
void zoomIn();
|
||||||
void zoomOut();
|
void zoomOut();
|
||||||
|
void zoomSet(int viewZoom);
|
||||||
void zoomReset();
|
void zoomReset();
|
||||||
|
|
||||||
void toggleInsertMode();
|
void toggleInsertMode();
|
||||||
@@ -131,6 +132,7 @@ private:
|
|||||||
|
|
||||||
QLabel *m_subPageLabel, *m_cursorPositionLabel;
|
QLabel *m_subPageLabel, *m_cursorPositionLabel;
|
||||||
QToolButton *m_previousSubPageButton, *m_nextSubPageButton;
|
QToolButton *m_previousSubPageButton, *m_nextSubPageButton;
|
||||||
|
QSlider *m_zoomSlider;
|
||||||
QPushButton *m_insertModePushButton;
|
QPushButton *m_insertModePushButton;
|
||||||
QRadioButton *m_levelRadioButton[4];
|
QRadioButton *m_levelRadioButton[4];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user