forked from Ivasoft/DSView
Control the frequency of hot key press
This commit is contained in:
@@ -120,6 +120,7 @@ namespace pv
|
|||||||
setContextMenuPolicy(Qt::NoContextMenu);
|
setContextMenuPolicy(Qt::NoContextMenu);
|
||||||
|
|
||||||
_key_vaild = false;
|
_key_vaild = false;
|
||||||
|
_last_key_press_time = high_resolution_clock::now();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::setup_ui()
|
void MainWindow::setup_ui()
|
||||||
@@ -1106,6 +1107,14 @@ namespace pv
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
high_resolution_clock::time_point key_press_time = high_resolution_clock::now();
|
||||||
|
milliseconds timeInterval = std::chrono::duration_cast<milliseconds>(key_press_time - _last_key_press_time);
|
||||||
|
int64_t time_keep = timeInterval.count();
|
||||||
|
if (time_keep < 500){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
_last_key_press_time = key_press_time;
|
||||||
|
|
||||||
switch (ke->key())
|
switch (ke->key())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#include "interface/icallbacks.h"
|
#include "interface/icallbacks.h"
|
||||||
#include "eventobject.h"
|
#include "eventobject.h"
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
class QAction;
|
class QAction;
|
||||||
class QMenuBar;
|
class QMenuBar;
|
||||||
@@ -40,11 +41,12 @@ class QStatusBar;
|
|||||||
class QToolBar;
|
class QToolBar;
|
||||||
class QWidget;
|
class QWidget;
|
||||||
class QDockWidget;
|
class QDockWidget;
|
||||||
|
|
||||||
class AppControl;
|
class AppControl;
|
||||||
|
|
||||||
class DeviceAgent;
|
class DeviceAgent;
|
||||||
|
|
||||||
|
using std::chrono::high_resolution_clock;
|
||||||
|
using std::chrono::milliseconds;
|
||||||
|
|
||||||
namespace pv {
|
namespace pv {
|
||||||
|
|
||||||
class SigSession;
|
class SigSession;
|
||||||
@@ -210,6 +212,7 @@ private:
|
|||||||
SigSession *_session;
|
SigSession *_session;
|
||||||
DeviceAgent *_device_agent;
|
DeviceAgent *_device_agent;
|
||||||
bool _is_auto_switch_device;
|
bool _is_auto_switch_device;
|
||||||
|
high_resolution_clock::time_point _last_key_press_time;
|
||||||
|
|
||||||
int _key_value;
|
int _key_value;
|
||||||
bool _key_vaild;
|
bool _key_vaild;
|
||||||
|
|||||||
Reference in New Issue
Block a user