Right click station to center filter at their offset

This commit is contained in:
Jordan Sherer 2019-12-26 15:11:32 -05:00
parent cbe3e51936
commit 0fe4a3d7fb
3 changed files with 20 additions and 3 deletions

View File

@ -1186,6 +1186,13 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
setFreqOffsetForRestore(selectedOffset, false);
});
if(m_wideGraph->filterEnabled()){
auto filterQsyAction = menu->addAction(QString("Center filter at %1Hz").arg(selectedOffset));
connect(filterQsyAction, &QAction::triggered, this, [this, selectedOffset](){
m_wideGraph->setFilterCenter(selectedOffset);
});
}
auto items = m_bandActivity.value(selectedOffset);
if(!items.isEmpty()){
int submode = items.last().submode;
@ -1425,9 +1432,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
auto qsyAction = menu->addAction(QString("Jump to %1Hz").arg(selectedOffset));
connect(qsyAction, &QAction::triggered, this, [this, selectedOffset](){
setFreqOffsetForRestore(selectedOffset, false);
// TODO: prompt mode switch?
});
if(m_wideGraph->filterEnabled()){
auto filterQsyAction = menu->addAction(QString("Center filter at %1Hz").arg(selectedOffset));
connect(filterQsyAction, &QAction::triggered, this, [this, selectedOffset](){
m_wideGraph->setFilterCenter(selectedOffset);
});
}
int submode = m_callActivity[selectedCall].submode;
auto speed = submodeName(submode);

View File

@ -403,6 +403,11 @@ bool WideGraph::filterEnabled()
return m_filterEnabled;
}
void WideGraph::setFilterCenter(int n){
int delta = n - m_filterCenter;
setFilter(m_filterMinimum + delta, m_filterMaximum + delta);
}
void WideGraph::setFilter(int a, int b){
int low = std::min(a, b);
int high = std::max(a, b);
@ -741,8 +746,7 @@ void WideGraph::on_filterMinSpinBox_valueChanged(int n){
}
void WideGraph::on_filterCenterSpinBox_valueChanged(int n){
int delta = n - m_filterCenter;
setFilter(m_filterMinimum + delta, m_filterMaximum + delta);
setFilterCenter(n);
}
void WideGraph::on_filterWidthSpinBox_valueChanged(int n){

View File

@ -36,6 +36,7 @@ public:
int filterMinimum();
int filterMaximum();
bool filterEnabled();
void setFilterCenter(int n);
void setFilter(int a, int b);
void setFilterMinimumBandwidth(int width);
void setFilterEnabled(bool enabled);