Change Qt Hex editor cursor blink logic to be a function of refresh rate so that blink rate is consistent. Also, added a 50hz update rate option.
This commit is contained in:
parent
44f81dedc3
commit
3bcb9888dd
|
@ -1100,7 +1100,7 @@ HexEditorDialog_t::HexEditorDialog_t(QWidget *parent)
|
||||||
QAction *act, *actHlgt, *actHlgtRV;
|
QAction *act, *actHlgt, *actHlgtRV;
|
||||||
ColorMenuItem *actColorFG, *actColorBG, *actRowColColor, *actAltColColor;
|
ColorMenuItem *actColorFG, *actColorBG, *actRowColColor, *actAltColColor;
|
||||||
QActionGroup *group;
|
QActionGroup *group;
|
||||||
int opt, useNativeMenuBar, refreshRateOpt;
|
int opt, useNativeMenuBar;
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
|
|
||||||
QDialog::setWindowTitle( tr("Hex Editor") );
|
QDialog::setWindowTitle( tr("Hex Editor") );
|
||||||
|
@ -1280,6 +1280,7 @@ HexEditorDialog_t::HexEditorDialog_t(QWidget *parent)
|
||||||
|
|
||||||
group->setExclusive(true);
|
group->setExclusive(true);
|
||||||
|
|
||||||
|
refreshRateOpt = 10;
|
||||||
g_config->getOption("SDL.HexEditRefreshRate", &refreshRateOpt);
|
g_config->getOption("SDL.HexEditRefreshRate", &refreshRateOpt);
|
||||||
|
|
||||||
// View -> Refresh Rate -> 5 Hz
|
// View -> Refresh Rate -> 5 Hz
|
||||||
|
@ -1318,6 +1319,15 @@ HexEditorDialog_t::HexEditorDialog_t(QWidget *parent)
|
||||||
group->addAction(act);
|
group->addAction(act);
|
||||||
subMenu->addAction(act);
|
subMenu->addAction(act);
|
||||||
|
|
||||||
|
// View -> Refresh Rate -> 50 Hz
|
||||||
|
act = new QAction(tr("50 Hz"), this);
|
||||||
|
act->setCheckable(true);
|
||||||
|
act->setChecked( refreshRateOpt == 50 );
|
||||||
|
connect(act, SIGNAL(triggered()), this, SLOT(setViewRefresh50Hz(void)) );
|
||||||
|
|
||||||
|
group->addAction(act);
|
||||||
|
subMenu->addAction(act);
|
||||||
|
|
||||||
// View -> Refresh Rate -> 60 Hz
|
// View -> Refresh Rate -> 60 Hz
|
||||||
act = new QAction(tr("60 Hz"), this);
|
act = new QAction(tr("60 Hz"), this);
|
||||||
act->setCheckable(true);
|
act->setCheckable(true);
|
||||||
|
@ -1727,6 +1737,7 @@ void HexEditorDialog_t::changeFontRequest(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void HexEditorDialog_t::setViewRefresh5Hz(void)
|
void HexEditorDialog_t::setViewRefresh5Hz(void)
|
||||||
{
|
{
|
||||||
|
refreshRateOpt = 5;
|
||||||
g_config->setOption("SDL.HexEditRefreshRate", 5);
|
g_config->setOption("SDL.HexEditRefreshRate", 5);
|
||||||
periodicTimer->stop();
|
periodicTimer->stop();
|
||||||
periodicTimer->start(200);
|
periodicTimer->start(200);
|
||||||
|
@ -1734,6 +1745,7 @@ void HexEditorDialog_t::setViewRefresh5Hz(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void HexEditorDialog_t::setViewRefresh10Hz(void)
|
void HexEditorDialog_t::setViewRefresh10Hz(void)
|
||||||
{
|
{
|
||||||
|
refreshRateOpt = 10;
|
||||||
g_config->setOption("SDL.HexEditRefreshRate", 10);
|
g_config->setOption("SDL.HexEditRefreshRate", 10);
|
||||||
periodicTimer->stop();
|
periodicTimer->stop();
|
||||||
periodicTimer->start(100);
|
periodicTimer->start(100);
|
||||||
|
@ -1741,6 +1753,7 @@ void HexEditorDialog_t::setViewRefresh10Hz(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void HexEditorDialog_t::setViewRefresh20Hz(void)
|
void HexEditorDialog_t::setViewRefresh20Hz(void)
|
||||||
{
|
{
|
||||||
|
refreshRateOpt = 20;
|
||||||
g_config->setOption("SDL.HexEditRefreshRate", 20);
|
g_config->setOption("SDL.HexEditRefreshRate", 20);
|
||||||
periodicTimer->stop();
|
periodicTimer->stop();
|
||||||
periodicTimer->start(50);
|
periodicTimer->start(50);
|
||||||
|
@ -1748,13 +1761,23 @@ void HexEditorDialog_t::setViewRefresh20Hz(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void HexEditorDialog_t::setViewRefresh30Hz(void)
|
void HexEditorDialog_t::setViewRefresh30Hz(void)
|
||||||
{
|
{
|
||||||
|
refreshRateOpt = 30;
|
||||||
g_config->setOption("SDL.HexEditRefreshRate", 30);
|
g_config->setOption("SDL.HexEditRefreshRate", 30);
|
||||||
periodicTimer->stop();
|
periodicTimer->stop();
|
||||||
periodicTimer->start(33);
|
periodicTimer->start(33);
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
void HexEditorDialog_t::setViewRefresh50Hz(void)
|
||||||
|
{
|
||||||
|
refreshRateOpt = 50;
|
||||||
|
g_config->setOption("SDL.HexEditRefreshRate", 50);
|
||||||
|
periodicTimer->stop();
|
||||||
|
periodicTimer->start(20);
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
void HexEditorDialog_t::setViewRefresh60Hz(void)
|
void HexEditorDialog_t::setViewRefresh60Hz(void)
|
||||||
{
|
{
|
||||||
|
refreshRateOpt = 60;
|
||||||
g_config->setOption("SDL.HexEditRefreshRate", 60);
|
g_config->setOption("SDL.HexEditRefreshRate", 60);
|
||||||
periodicTimer->stop();
|
periodicTimer->stop();
|
||||||
periodicTimer->start(16);
|
periodicTimer->start(16);
|
||||||
|
@ -3804,7 +3827,7 @@ void QHexEdit::paintEvent(QPaintEvent *event)
|
||||||
|
|
||||||
painter.fillRect( 0, 0, w, h, bgColor );
|
painter.fillRect( 0, 0, w, h, bgColor );
|
||||||
|
|
||||||
if ( cursorBlinkCount >= 5 )
|
if ( cursorBlinkCount >= (parent->getRefreshRate()>>1) )
|
||||||
{
|
{
|
||||||
cursorBlink = !cursorBlink;
|
cursorBlink = !cursorBlink;
|
||||||
cursorBlinkCount = 0;
|
cursorBlinkCount = 0;
|
||||||
|
|
|
@ -297,6 +297,8 @@ class HexEditorDialog_t : public QDialog
|
||||||
void setWindowTitle(void);
|
void setWindowTitle(void);
|
||||||
void openDebugSymbolEditWindow( int addr );
|
void openDebugSymbolEditWindow( int addr );
|
||||||
|
|
||||||
|
int getRefreshRate(void){ return refreshRateOpt; }
|
||||||
|
|
||||||
QHexEdit *editor;
|
QHexEdit *editor;
|
||||||
HexEditorFindDialog_t *findDialog;
|
HexEditorFindDialog_t *findDialog;
|
||||||
|
|
||||||
|
@ -318,6 +320,8 @@ class HexEditorDialog_t : public QDialog
|
||||||
QAction *rolColHlgtAct;
|
QAction *rolColHlgtAct;
|
||||||
QAction *altColHlgtAct;
|
QAction *altColHlgtAct;
|
||||||
|
|
||||||
|
int refreshRateOpt;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -349,6 +353,7 @@ class HexEditorDialog_t : public QDialog
|
||||||
void setViewRefresh10Hz(void);
|
void setViewRefresh10Hz(void);
|
||||||
void setViewRefresh20Hz(void);
|
void setViewRefresh20Hz(void);
|
||||||
void setViewRefresh30Hz(void);
|
void setViewRefresh30Hz(void);
|
||||||
|
void setViewRefresh50Hz(void);
|
||||||
void setViewRefresh60Hz(void);
|
void setViewRefresh60Hz(void);
|
||||||
void changeFontRequest(void);
|
void changeFontRequest(void);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue