Merge pull request #2685 from torusrxxx/patch000000c1
Allow the user to change the font size with Ctrl and mouse wheel
This commit is contained in:
commit
68e676de2b
|
@ -571,25 +571,40 @@ void AbstractTableView::mouseDoubleClickEvent(QMouseEvent* event)
|
|||
|
||||
void AbstractTableView::wheelEvent(QWheelEvent* event)
|
||||
{
|
||||
int numDegrees = event->delta() / 8;
|
||||
int numSteps = numDegrees / 15;
|
||||
QPoint numDegrees = event->angleDelta() / 8;
|
||||
QPoint numSteps = numDegrees / 15;
|
||||
|
||||
if(numSteps > 0)
|
||||
if(event->modifiers() == Qt::NoModifier)
|
||||
{
|
||||
if(mMouseWheelScrollDelta > 0)
|
||||
for(int i = 0; i < mMouseWheelScrollDelta * numSteps; i++)
|
||||
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
|
||||
else // -1 : one screen at a time
|
||||
verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepSub);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(mMouseWheelScrollDelta > 0)
|
||||
for(int i = 0; i < mMouseWheelScrollDelta * numSteps * -1; i++)
|
||||
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
|
||||
else // -1 : one screen at a time
|
||||
verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepAdd);
|
||||
if(numSteps.y() > 0)
|
||||
{
|
||||
if(mMouseWheelScrollDelta > 0)
|
||||
for(int i = 0; i < mMouseWheelScrollDelta * numSteps.y(); i++)
|
||||
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
|
||||
else // -1 : one screen at a time
|
||||
verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepSub);
|
||||
}
|
||||
else if(numSteps.y() < 0)
|
||||
{
|
||||
if(mMouseWheelScrollDelta > 0)
|
||||
for(int i = 0; i < mMouseWheelScrollDelta * numSteps.y() * -1; i++)
|
||||
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
|
||||
else // -1 : one screen at a time
|
||||
verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepAdd);
|
||||
}
|
||||
else if(numSteps.x() > 0)
|
||||
{
|
||||
for(int i = 0; i < 20 * numSteps.x(); i++)
|
||||
horizontalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
|
||||
}
|
||||
else if(numSteps.x() < 0)
|
||||
{
|
||||
for(int i = 0; i < 20 * numSteps.x() * -1; i++)
|
||||
horizontalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
|
||||
}
|
||||
}
|
||||
else if(event->modifiers() == Qt::ControlModifier) // Zoom
|
||||
Config()->zoomFont("AbstractTableView", event);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -832,6 +832,14 @@ void Disassembly::mouseReleaseEvent(QMouseEvent* event)
|
|||
AbstractTableView::mouseReleaseEvent(event);
|
||||
}
|
||||
|
||||
void Disassembly::wheelEvent(QWheelEvent* event)
|
||||
{
|
||||
if(event->modifiers() == Qt::NoModifier)
|
||||
AbstractTableView::wheelEvent(event);
|
||||
else if(event->modifiers() == Qt::ControlModifier) // Zoom
|
||||
Config()->zoomFont("Disassembly", event);
|
||||
}
|
||||
|
||||
/************************************************************************************
|
||||
Keyboard Management
|
||||
************************************************************************************/
|
||||
|
|
|
@ -25,6 +25,7 @@ public:
|
|||
void mouseMoveEvent(QMouseEvent* event) override;
|
||||
void mousePressEvent(QMouseEvent* event) override;
|
||||
void mouseReleaseEvent(QMouseEvent* event) override;
|
||||
void wheelEvent(QWheelEvent* event) override;
|
||||
|
||||
// Keyboard Management
|
||||
void keyPressEvent(QKeyEvent* event) override;
|
||||
|
|
|
@ -542,6 +542,14 @@ void HexDump::mouseReleaseEvent(QMouseEvent* event)
|
|||
AbstractTableView::mouseReleaseEvent(event);
|
||||
}
|
||||
|
||||
void HexDump::wheelEvent(QWheelEvent* event)
|
||||
{
|
||||
if(event->modifiers() == Qt::NoModifier)
|
||||
AbstractTableView::wheelEvent(event);
|
||||
else if(event->modifiers() == Qt::ControlModifier) // Zoom
|
||||
Config()->zoomFont("HexDump", event);
|
||||
}
|
||||
|
||||
void HexDump::keyPressEvent(QKeyEvent* event)
|
||||
{
|
||||
int key = event->key();
|
||||
|
|
|
@ -92,6 +92,7 @@ public:
|
|||
void mouseMoveEvent(QMouseEvent* event) override;
|
||||
void mousePressEvent(QMouseEvent* event) override;
|
||||
void mouseReleaseEvent(QMouseEvent* event) override;
|
||||
void wheelEvent(QWheelEvent* event) override;
|
||||
void keyPressEvent(QKeyEvent* event) override;
|
||||
|
||||
QString paintContent(QPainter* painter, dsint rowBase, int rowOffset, int col, int x, int y, int w, int h) override;
|
||||
|
|
|
@ -524,6 +524,14 @@ void CPUStack::mouseDoubleClickEvent(QMouseEvent* event)
|
|||
}
|
||||
}
|
||||
|
||||
void CPUStack::wheelEvent(QWheelEvent* event)
|
||||
{
|
||||
if(event->modifiers() == Qt::NoModifier)
|
||||
AbstractTableView::wheelEvent(event);
|
||||
else if(event->modifiers() == Qt::ControlModifier) // Zoom
|
||||
Config()->zoomFont("Stack", event);
|
||||
}
|
||||
|
||||
void CPUStack::stackDumpAt(duint addr, duint csp)
|
||||
{
|
||||
if(DbgMemIsValidReadPtr(addr))
|
||||
|
|
|
@ -22,6 +22,7 @@ public:
|
|||
QString paintContent(QPainter* painter, dsint rowBase, int rowOffset, int col, int x, int y, int w, int h) override;
|
||||
void contextMenuEvent(QContextMenuEvent* event);
|
||||
void mouseDoubleClickEvent(QMouseEvent* event);
|
||||
void wheelEvent(QWheelEvent* event) override;
|
||||
void setupContextMenu();
|
||||
void updateFreezeStackAction();
|
||||
|
||||
|
|
|
@ -899,6 +899,10 @@ void DisassemblerGraphView::wheelEvent(QWheelEvent* event)
|
|||
|
||||
event->accept();
|
||||
}
|
||||
else if(event->modifiers() == Qt::ControlModifier)
|
||||
{
|
||||
Config()->zoomFont("Disassembly", event);
|
||||
}
|
||||
else
|
||||
{
|
||||
QAbstractScrollArea::wheelEvent(event);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <QIcon>
|
||||
#include <QScreen>
|
||||
#include <QGuiApplication>
|
||||
#include <QWheelEvent>
|
||||
#include "AbstractTableView.h"
|
||||
|
||||
Configuration* Configuration::mPtr = nullptr;
|
||||
|
@ -1137,6 +1138,27 @@ void Configuration::registerMainMenuStringList(QList<QAction*>* menu)
|
|||
NamedMenuBuilders.append(MenuMap(menu, menu->size() - 1));
|
||||
}
|
||||
|
||||
void Configuration::zoomFont(const QString & fontName, QWheelEvent* event)
|
||||
{
|
||||
QPoint numDegrees = event->angleDelta() / 8;
|
||||
int ticks = numDegrees.y() / 15;
|
||||
QFont myFont = Fonts[fontName];
|
||||
char fontSizes[] = {6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 0}; // The list of font sizes in ApperanceDialog
|
||||
char* currentFontSize = strchr(fontSizes, myFont.pointSize() & 127);
|
||||
if(currentFontSize)
|
||||
{
|
||||
currentFontSize += ticks;
|
||||
if(currentFontSize > fontSizes + 11)
|
||||
currentFontSize = fontSizes + 11;
|
||||
else if(currentFontSize < fontSizes)
|
||||
currentFontSize = fontSizes;
|
||||
myFont.setPointSize(*currentFontSize);
|
||||
Fonts[fontName] = myFont;
|
||||
writeFonts();
|
||||
GuiUpdateAllViews();
|
||||
}
|
||||
}
|
||||
|
||||
static bool IsPointVisible(QPoint pos)
|
||||
{
|
||||
for(const auto & i : QGuiApplication::screens())
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
class MenuBuilder;
|
||||
class QAction;
|
||||
class QWheelEvent;
|
||||
|
||||
class Configuration : public QObject
|
||||
{
|
||||
|
@ -69,6 +70,8 @@ public:
|
|||
void setupWindowPos(QWidget* window);
|
||||
void saveWindowPos(QWidget* window);
|
||||
|
||||
void zoomFont(const QString & fontName, QWheelEvent* event);
|
||||
|
||||
//default setting maps
|
||||
QMap<QString, QColor> defaultColors;
|
||||
QMap<QString, QMap<QString, bool>> defaultBools;
|
||||
|
|
Loading…
Reference in New Issue