Added keyboard shortcut to center the trigger position.

merge-requests/1/head
Teuniz 2016-12-28 12:33:31 +01:00
rodzic 143f18efb3
commit b0515b26cf
7 zmienionych plików z 111 dodań i 95 usunięć

Wyświetl plik

@ -35,7 +35,7 @@
#define PROGRAM_NAME "DSRemote" #define PROGRAM_NAME "DSRemote"
#define PROGRAM_VERSION "0.33_1612281147" #define PROGRAM_VERSION "0.33_1612281232"
#define MAX_PATHLEN 4096 #define MAX_PATHLEN 4096

Wyświetl plik

@ -1869,6 +1869,7 @@ void UI_Mainwindow::show_howto_operate()
"Decrease vertical scale: +\n" "Decrease vertical scale: +\n"
"Press '1' to select or deselect channel 1\n" "Press '1' to select or deselect channel 1\n"
"Press '2' to select or deselect channel 2, etc.\n" "Press '2' to select or deselect channel 2, etc.\n"
"Press 'c' to center the trigger position (set timebase offset to zero).\n"
"Press 'f' to toggle FFT.\n" "Press 'f' to toggle FFT.\n"
); );

Wyświetl plik

@ -1492,6 +1492,86 @@ void UI_Mainwindow::shift_page_right()
} }
void UI_Mainwindow::center_trigger()
{
char str[256];
if(device == NULL)
{
return;
}
if(!devparms.connected)
{
return;
}
if(devparms.math_fft && devparms.math_fft_split)
{
devparms.math_fft_hcenter = 0;
if(devparms.modelserie != 1)
{
sprintf(str, ":CALC:FFT:HCEN %e", devparms.math_fft_hcenter);
}
else
{
sprintf(str, ":MATH:FFT:HCEN %e", devparms.math_fft_hcenter);
}
set_cue_cmd(str);
strcpy(str, "FFT center: ");
convert_to_metric_suffix(str + strlen(str), devparms.math_fft_hcenter, 0);
strcat(str, "Hz");
statusLabel->setText(str);
waveForm->update();
return;
}
if(devparms.activechannel < 0)
{
return;
}
if(devparms.timebasedelayenable)
{
devparms.timebasedelayoffset = 0;
strcpy(str, "Delayed timebase position: ");
convert_to_metric_suffix(str + strlen(str), devparms.timebasedelayoffset, 2);
strcat(str, "s");
statusLabel->setText(str);
horPosDial_timer->start(TMC_DIAL_TIMER_DELAY);
}
else
{
devparms.timebaseoffset = 0;
strcpy(str, "Horizontal position: ");
convert_to_metric_suffix(str + strlen(str), devparms.timebaseoffset, 2);
strcat(str, "s");
statusLabel->setText(str);
horPosDial_timer->start(TMC_DIAL_TIMER_DELAY);
}
waveForm->update();
}
void UI_Mainwindow::zoom_in() void UI_Mainwindow::zoom_in()
{ {
char str[256]; char str[256];

Wyświetl plik

@ -223,7 +223,8 @@ private:
*select_chan2_act, *select_chan2_act,
*select_chan3_act, *select_chan3_act,
*select_chan4_act, *select_chan4_act,
*toggle_fft_act; *toggle_fft_act,
*center_trigger_act;
struct tmcdev *device; struct tmcdev *device;
@ -405,6 +406,7 @@ private slots:
void chan_scale_minus(); void chan_scale_minus();
void shift_trace_up(); void shift_trace_up();
void shift_trace_down(); void shift_trace_down();
void center_trigger();
void set_to_factory(); void set_to_factory();

Wyświetl plik

@ -435,6 +435,11 @@ UI_Mainwindow::UI_Mainwindow()
connect(shift_page_left_act, SIGNAL(triggered()), this, SLOT(shift_page_left())); connect(shift_page_left_act, SIGNAL(triggered()), this, SLOT(shift_page_left()));
addAction(shift_page_left_act); addAction(shift_page_left_act);
center_trigger_act = new QAction(this);
center_trigger_act->setShortcut(QKeySequence("c"));
connect(center_trigger_act, SIGNAL(triggered()), this, SLOT(center_trigger()));
addAction(center_trigger_act);
shift_page_right_act = new QAction(this); shift_page_right_act = new QAction(this);
shift_page_right_act->setShortcut(QKeySequence::MoveToNextChar); shift_page_right_act->setShortcut(QKeySequence::MoveToNextChar);
connect(shift_page_right_act, SIGNAL(triggered()), this, SLOT(shift_page_right())); connect(shift_page_right_act, SIGNAL(triggered()), this, SLOT(shift_page_right()));

Wyświetl plik

@ -59,10 +59,6 @@ WaveCurve::WaveCurve(QWidget *w_parent) : QWidget(w_parent)
mouse_old_x = 0; mouse_old_x = 0;
mouse_old_y = 0; mouse_old_y = 0;
trig_pos_arrow_moving = 0;
trig_pos_arrow_pos = 100;
use_move_events = 0; use_move_events = 0;
old_w = 10000; old_w = 10000;
@ -378,38 +374,31 @@ void WaveCurve::paintEvent(QPaintEvent *)
} }
} }
if(trig_pos_arrow_moving) if(devparms->timebasedelayenable)
{ {
drawArrow(painter, trig_pos_arrow_pos, 27, 1, QColor(255, 128, 0), 'T'); trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebasedelayoffset / (devparms->timebasedelayscale * (double)devparms->hordivisions)) * curve_w);
} }
else else
{ {
if(devparms->timebasedelayenable) trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebaseoffset / (devparms->timebasescale * (double)devparms->hordivisions)) * curve_w);
}
if(trig_pos_arrow_pos < 0)
{
trig_pos_arrow_pos = -1;
drawArrow(painter, trig_pos_arrow_pos, 18, 2, QColor(255, 128, 0), 'T');
}
else if(trig_pos_arrow_pos > curve_w)
{ {
trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebasedelayoffset / (devparms->timebasedelayscale * (double)devparms->hordivisions)) * curve_w); trig_pos_arrow_pos = curve_w + 1;
drawArrow(painter, trig_pos_arrow_pos, 18, 0, QColor(255, 128, 0), 'T');
} }
else else
{ {
trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebaseoffset / (devparms->timebasescale * (double)devparms->hordivisions)) * curve_w); drawArrow(painter, trig_pos_arrow_pos, 27, 1, QColor(255, 128, 0), 'T');
} }
if(trig_pos_arrow_pos < 0)
{
trig_pos_arrow_pos = -1;
drawArrow(painter, trig_pos_arrow_pos, 18, 2, QColor(255, 128, 0), 'T');
}
else if(trig_pos_arrow_pos > curve_w)
{
trig_pos_arrow_pos = curve_w + 1;
drawArrow(painter, trig_pos_arrow_pos, 18, 0, QColor(255, 128, 0), 'T');
}
else
{
drawArrow(painter, trig_pos_arrow_pos, 27, 1, QColor(255, 128, 0), 'T');
}
}
} }
@ -860,49 +849,28 @@ void WaveCurve::setBorderSize(int newsize)
} }
void WaveCurve::mousePressEvent(QMouseEvent *press_event) void WaveCurve::mousePressEvent(QMouseEvent *) //press_event)
{ {
int m_x, // int m_x,
m_y; // m_y;
setFocus(Qt::MouseFocusReason); setFocus(Qt::MouseFocusReason);
w = width() - (2 * bordersize); w = width() - (2 * bordersize);
h = height() - (2 * bordersize); h = height() - (2 * bordersize);
m_x = press_event->x() - bordersize; // m_x = press_event->x() - bordersize;
m_y = press_event->y() - bordersize; // m_y = press_event->y() - bordersize;
if(devparms == NULL) if(devparms == NULL)
{ {
return; return;
} }
if(!devparms->connected)
{
return;
}
if(press_event->button() == Qt::LeftButton)
{
if(((m_x > (trig_pos_arrow_pos - 8)) && (m_x < (trig_pos_arrow_pos + 8)) && (m_y > 5) && (m_y < 24)) ||
((trig_pos_arrow_pos > w) && (m_x > (trig_pos_arrow_pos - 24)) && (m_x <= trig_pos_arrow_pos) && (m_y > 9) && (m_y < 26)) ||
((trig_pos_arrow_pos < 0) && (m_x < 24) && (m_x >= 0) && (m_y > 9) && (m_y < 26)))
{
trig_pos_arrow_moving = 1;
use_move_events = 1;
setMouseTracking(true);
mouse_old_x = m_x;
mouse_old_y = m_y;
}
}
} }
void WaveCurve::mouseReleaseEvent(QMouseEvent *release_event) void WaveCurve::mouseReleaseEvent(QMouseEvent *release_event)
{ {
int tmp;
w = width() - (2 * bordersize); w = width() - (2 * bordersize);
h = height() - (2 * bordersize); h = height() - (2 * bordersize);
@ -914,30 +882,6 @@ void WaveCurve::mouseReleaseEvent(QMouseEvent *release_event)
return; return;
} }
if(trig_pos_arrow_moving)
{
trig_pos_arrow_pos = mouse_x;
if(trig_pos_arrow_pos < 0)
{
trig_pos_arrow_pos = 0;
}
if(trig_pos_arrow_pos > w)
{
trig_pos_arrow_pos = w;
}
// printf("w is %i trig_pos_arrow_pos is %i\n", w, trig_pos_arrow_pos);
devparms->timebaseoffset = ((devparms->timebasescale * (double)devparms->hordivisions) / w) * ((w / 2) - trig_pos_arrow_pos);
tmp = devparms->timebaseoffset / (devparms->timebasescale / 50);
devparms->timebaseoffset = (devparms->timebasescale / 50) * tmp;
}
trig_pos_arrow_moving = 0;
use_move_events = 0; use_move_events = 0;
setMouseTracking(false); setMouseTracking(false);
@ -965,21 +909,6 @@ void WaveCurve::mouseMoveEvent(QMouseEvent *move_event)
return; return;
} }
if(trig_pos_arrow_moving)
{
trig_pos_arrow_pos = mouse_x;
if(trig_pos_arrow_pos < 0)
{
trig_pos_arrow_pos = 0;
}
if(trig_pos_arrow_pos > w)
{
trig_pos_arrow_pos = w;
}
}
update(); update();
} }

Wyświetl plik

@ -98,7 +98,6 @@ private:
chan_arrow_pos[MAX_CHNS], chan_arrow_pos[MAX_CHNS],
trig_level_arrow_pos, trig_level_arrow_pos,
trig_pos_arrow_pos, trig_pos_arrow_pos,
trig_pos_arrow_moving,
use_move_events, use_move_events,
mouse_x, mouse_x,
mouse_y, mouse_y,