2
0
forked from Ivasoft/DSView

disable toolbar context menu

This commit is contained in:
dreamsourcelabTAI
2021-10-25 16:51:34 +08:00
parent a2acb95ded
commit 91dd746f2d
4 changed files with 90 additions and 100 deletions

View File

@@ -43,6 +43,7 @@ ApplicationParamDlg::~ApplicationParamDlg()
bool ApplicationParamDlg::ShowDlg(QWidget *parent)
{
DSDialog dlg(parent, true, true);
dlg.setTitle("Application options");
dlg.setMinimumSize(300, 200);
QFormLayout &lay = *(new QFormLayout());
lay.setContentsMargins(0,20,0,30);

View File

@@ -109,6 +109,9 @@ MainWindow::MainWindow(DeviceManager &device_manager,
_msg(NULL)
{
setup_ui();
setContextMenuPolicy(Qt::NoContextMenu);
if (open_file_name) {
qDebug("Open file: %s", open_file_name);
const QString s(QString::fromUtf8(open_file_name));
@@ -119,7 +122,7 @@ MainWindow::MainWindow(DeviceManager &device_manager,
}
void MainWindow::setup_ui()
{
{
setObjectName(QString::fromUtf8("MainWindow"));
setContentsMargins(0,0,0,0);
layout()->setMargin(0);
@@ -141,34 +144,7 @@ void MainWindow::setup_ui()
_file_bar->setObjectName("file_bar");
_logo_bar = new toolbars::LogoBar(_session, this);
_logo_bar->setObjectName("logo_bar");
connect(_trig_bar, SIGNAL(on_protocol(bool)), this,
SLOT(on_protocol(bool)));
connect(_trig_bar, SIGNAL(on_trigger(bool)), this,
SLOT(on_trigger(bool)));
connect(_trig_bar, SIGNAL(on_measure(bool)), this,
SLOT(on_measure(bool)));
connect(_trig_bar, SIGNAL(on_search(bool)), this,
SLOT(on_search(bool)));
connect(_trig_bar, SIGNAL(setTheme(QString)), this,
SLOT(switchTheme(QString)));
connect(_file_bar, SIGNAL(load_file(QString)), this,
SLOT(load_file(QString)));
connect(_file_bar, SIGNAL(on_save()), this,
SLOT(on_save()));
connect(_file_bar, SIGNAL(on_export()), this,
SLOT(on_export()));
connect(_file_bar, SIGNAL(on_screenShot()), this,
SLOT(on_screenShot()), Qt::QueuedConnection);
connect(_file_bar, SIGNAL(load_session(QString)), this,
SLOT(load_session(QString)));
connect(_file_bar, SIGNAL(store_session(QString)), this,
SLOT(store_session(QString)));
connect(_logo_bar, SIGNAL(setLanguage(int)), this,
SLOT(switchLanguage(int)));
connect(_logo_bar, SIGNAL(openDoc()), this,
SLOT(openDoc()));
// trigger dock
_trigger_dock=new QDockWidget(tr("Trigger Setting..."),this);
_trigger_dock->setObjectName("trigger_dock");
@@ -190,28 +166,7 @@ void MainWindow::setup_ui()
// Setup _view widget
_view = new pv::view::View(_session, _sampling_bar, this);
_vertical_layout->addWidget(_view);
connect(_sampling_bar, SIGNAL(device_selected()), this,
SLOT(update_device_list()));
connect(_sampling_bar, SIGNAL(device_updated()), this,
SLOT(reload()));
connect(_sampling_bar, SIGNAL(run_stop()), this,
SLOT(run_stop()));
connect(_sampling_bar, SIGNAL(instant_stop()), this,
SLOT(instant_stop()));
connect(_sampling_bar, SIGNAL(duration_changed()), _trigger_widget,
SLOT(device_updated()));
connect(_sampling_bar, SIGNAL(duration_changed()), _view,
SLOT(timebase_changed()));
connect(_sampling_bar, SIGNAL(show_calibration()), _view,
SLOT(show_calibration()));
connect(_trig_bar, SIGNAL(show_lissajous(bool)), _view,
SLOT(show_lissajous(bool)));
connect(_dso_trigger_widget, SIGNAL(set_trig_pos(int)), _view,
SLOT(set_trig_pos(int)));
connect(_view, SIGNAL(auto_trig(int)), _dso_trigger_widget,
SLOT(auto_trig(int)));
setIconSize(QSize(40,40));
addToolBar(_sampling_bar);
addToolBar(_trig_bar);
@@ -230,8 +185,7 @@ void MainWindow::setup_ui()
_protocol_widget = new dock::ProtocolDock(_protocol_dock, *_view, _session);
_protocol_dock->setWidget(_protocol_widget);
qDebug() << "Protocol decoder enabled!\n";
connect(_protocol_widget, SIGNAL(protocol_updated()), _view, SLOT(signals_changed()));
#endif
// measure dock
_measure_dock=new QDockWidget(tr("Measurement"),this);
@@ -265,35 +219,6 @@ void MainWindow::setup_ui()
std::string std_title = title.toStdString();
setWindowTitle(QApplication::translate("MainWindow", std_title.c_str(), 0));
// Setup _session events
connect(&_session, SIGNAL(capture_state_changed(int)), this,
SLOT(capture_state_changed(int)));
connect(&_session, SIGNAL(device_attach()), this,
SLOT(device_attach()), Qt::QueuedConnection);
connect(&_session, SIGNAL(device_detach()), this,
SLOT(device_detach()), Qt::QueuedConnection);
connect(&_session, SIGNAL(session_error()), this,
SLOT(show_error()), Qt::QueuedConnection);
connect(&_session, SIGNAL(session_save()), this,
SLOT(session_save()));
connect(&_session, SIGNAL(data_updated()), _measure_widget,
SLOT(reCalc()));
connect(&_session, SIGNAL(repeat_resume()), this,
SLOT(repeat_resume()));
connect(&_session, SIGNAL(update_capture()), _view,
SLOT(update_hori_res()), Qt::DirectConnection);
connect(&_session, SIGNAL(cur_snap_samplerate_changed()), _measure_widget,
SLOT(cursor_update()));
connect(_view, SIGNAL(cursor_update()), _measure_widget,
SLOT(cursor_update()));
connect(_view, SIGNAL(cursor_moving()), _measure_widget,
SLOT(cursor_moving()));
connect(_view, SIGNAL(cursor_moved()), _measure_widget,
SLOT(reCalc()));
connect(_view, SIGNAL(prgRate(int)), this, SIGNAL(prgRate(int)));
connect(_view, SIGNAL(device_changed(bool)),
this, SLOT(device_changed(bool)), Qt::DirectConnection);
// event filter
_view->installEventFilter(this);
@@ -330,6 +255,53 @@ void MainWindow::setup_ui()
QString(tr("Hotplug failed")), _1));
retranslateUi();
// Setup _session events
connect(&_session, SIGNAL(capture_state_changed(int)), this, SLOT(capture_state_changed(int)));
connect(&_session, SIGNAL(device_attach()), this, SLOT(device_attach()), Qt::QueuedConnection);
connect(&_session, SIGNAL(device_detach()), this, SLOT(device_detach()), Qt::QueuedConnection);
connect(&_session, SIGNAL(session_error()), this, SLOT(show_error()), Qt::QueuedConnection);
connect(&_session, SIGNAL(session_save()), this, SLOT(session_save()));
connect(&_session, SIGNAL(data_updated()), _measure_widget, SLOT(reCalc()));
connect(&_session, SIGNAL(repeat_resume()), this, SLOT(repeat_resume()));
connect(&_session, SIGNAL(update_capture()), _view, SLOT(update_hori_res()), Qt::DirectConnection);
connect(&_session, SIGNAL(cur_snap_samplerate_changed()), _measure_widget, SLOT(cursor_update()));
connect(_view, SIGNAL(cursor_update()), _measure_widget, SLOT(cursor_update()));
connect(_view, SIGNAL(cursor_moving()), _measure_widget, SLOT(cursor_moving()));
connect(_view, SIGNAL(cursor_moved()), _measure_widget, SLOT(reCalc()));
connect(_view, SIGNAL(prgRate(int)), this, SIGNAL(prgRate(int)));
connect(_view, SIGNAL(device_changed(bool)), this, SLOT(device_changed(bool)), Qt::DirectConnection);
//tool bar event
connect(_trig_bar, SIGNAL(on_protocol(bool)), this, SLOT(on_protocol(bool)));
connect(_trig_bar, SIGNAL(on_trigger(bool)), this, SLOT(on_trigger(bool)));
connect(_trig_bar, SIGNAL(on_measure(bool)), this, SLOT(on_measure(bool)));
connect(_trig_bar, SIGNAL(on_search(bool)), this, SLOT(on_search(bool)));
connect(_trig_bar, SIGNAL(setTheme(QString)), this, SLOT(switchTheme(QString)));
connect(_file_bar, SIGNAL(load_file(QString)), this, SLOT(load_file(QString)));
connect(_file_bar, SIGNAL(on_save()), this, SLOT(on_save()));
connect(_file_bar, SIGNAL(on_export()), this, SLOT(on_export()));
connect(_file_bar, SIGNAL(on_screenShot()), this, SLOT(on_screenShot()), Qt::QueuedConnection);
connect(_file_bar, SIGNAL(load_session(QString)), this, SLOT(load_session(QString)));
connect(_file_bar, SIGNAL(store_session(QString)), this, SLOT(store_session(QString)));
connect(_logo_bar, SIGNAL(setLanguage(int)), this, SLOT(switchLanguage(int)));
connect(_logo_bar, SIGNAL(openDoc()), this, SLOT(openDoc()));
#ifdef ENABLE_DECODE
connect(_protocol_widget, SIGNAL(protocol_updated()), _view, SLOT(signals_changed()));
#endif
connect(_sampling_bar, SIGNAL(device_selected()), this, SLOT(update_device_list()));
connect(_sampling_bar, SIGNAL(device_updated()), this, SLOT(reload()));
connect(_sampling_bar, SIGNAL(run_stop()), this, SLOT(run_stop()));
connect(_sampling_bar, SIGNAL(instant_stop()), this, SLOT(instant_stop()));
connect(_sampling_bar, SIGNAL(duration_changed()), _trigger_widget, SLOT(device_updated()));
connect(_sampling_bar, SIGNAL(duration_changed()), _view, SLOT(timebase_changed()));
connect(_sampling_bar, SIGNAL(show_calibration()), _view, SLOT(show_calibration()));
connect(_trig_bar, SIGNAL(show_lissajous(bool)), _view, SLOT(show_lissajous(bool)));
connect(_dso_trigger_widget, SIGNAL(set_trig_pos(int)), _view, SLOT(set_trig_pos(int)));
connect(_view, SIGNAL(auto_trig(int)), _dso_trigger_widget, SLOT(auto_trig(int)));
}

View File

@@ -568,6 +568,7 @@ QString StoreSession::meta_gen(boost::shared_ptr<data::Snapshot> snapshot)
return metafile;
}
//export as csv file
bool StoreSession::export_start()
{
std::set<int> type_set;
@@ -596,6 +597,7 @@ bool StoreSession::export_start()
const QString DIR_KEY("ExportPath");
QSettings settings(QApplication::organizationName(), QApplication::applicationName());
QString default_name = settings.value(DIR_KEY).toString() + "/" + _session.get_device()->name() + "-";
for (const GSList *l = _session.get_device()->get_dev_mode_list();
l; l = l->next) {
const sr_dev_mode *mode = (const sr_dev_mode *)l->data;
@@ -616,6 +618,7 @@ bool StoreSession::export_start()
}
_file_name = QFileDialog::getSaveFileName(
NULL, tr("Export Data"), default_name,filter,&filter);
if (!_file_name.isEmpty()) {
QFileInfo f(_file_name);
QStringList list = filter.split('.').last().split(')');
@@ -681,6 +684,7 @@ void StoreSession::export_proc(shared_ptr<data::Snapshot> snapshot)
output.param = NULL;
if(_outModule->init)
_outModule->init(&output, params);
QFile file(_file_name);
file.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream out(&file);
@@ -692,9 +696,11 @@ void StoreSession::export_proc(shared_ptr<data::Snapshot> snapshot)
struct sr_datafeed_packet p;
struct sr_datafeed_meta meta;
struct sr_config *src;
src = sr_config_new(SR_CONF_SAMPLERATE,
g_variant_new_uint64(_session.cur_snap_samplerate()));
meta.config = g_slist_append(NULL, src);
src = sr_config_new(SR_CONF_LIMIT_SAMPLES,
g_variant_new_uint64(snapshot->get_sample_count()));
meta.config = g_slist_append(meta.config, src);
@@ -743,6 +749,7 @@ void StoreSession::export_proc(shared_ptr<data::Snapshot> snapshot)
bool sample;
std::vector<uint8_t *> buf_vec;
std::vector<bool> buf_sample;
for (int blk = 0; !boost::this_thread::interruption_requested() &&
blk < blk_num; blk++) {
uint64_t buf_sample_num = logic_snapshot->get_block_size(blk) * 8;
@@ -764,6 +771,7 @@ void StoreSession::export_proc(shared_ptr<data::Snapshot> snapshot)
unsigned int usize = 8192;
unsigned int size = usize;
struct sr_datafeed_logic lp;
for(uint64_t i = 0; !boost::this_thread::interruption_requested() &&
i < buf_sample_num; i+=usize){
if(buf_sample_num - i < usize)
@@ -773,8 +781,9 @@ void StoreSession::export_proc(shared_ptr<data::Snapshot> snapshot)
_has_error = true;
_error = tr("xbuffer malloc failed.");
return;
}
}
memset(xbuf, 0, size * unitsize);
for (uint64_t j = 0; j < size; j++) {
for (unsigned int k = 0; k < buf_vec.size(); k++) {
if (buf_vec[k] == NULL && buf_sample[k])
@@ -783,6 +792,7 @@ void StoreSession::export_proc(shared_ptr<data::Snapshot> snapshot)
xbuf[j*unitsize+k/8] += 1 << k%8;
}
}
lp.data = xbuf;
lp.length = size * unitsize;
lp.unitsize = unitsize;
@@ -790,6 +800,7 @@ void StoreSession::export_proc(shared_ptr<data::Snapshot> snapshot)
p.status = SR_PKT_OK;
p.payload = &lp;
_outModule->receive(&output, &p, &data_out);
if(data_out){
out << QString::fromUtf8((char*) data_out->str);
g_string_free(data_out,TRUE);
@@ -801,35 +812,41 @@ void StoreSession::export_proc(shared_ptr<data::Snapshot> snapshot)
progress_updated();
}
}
} else if (channel_type == SR_CHANNEL_DSO) {
_unit_count = snapshot->get_sample_count();
unsigned char* datat = (unsigned char*)snapshot->get_data();
unsigned int usize = 8192;
unsigned int size = usize;
struct sr_datafeed_dso dp;
struct sr_datafeed_dso dp;
for(uint64_t i = 0; !boost::this_thread::interruption_requested() && i < _unit_count; i+=usize){
if(_unit_count - i < usize)
size = _unit_count - i;
dp.data = &datat[i*snapshot->get_channel_num()];
dp.num_samples = size;
p.type = SR_DF_DSO;
p.status = SR_PKT_OK;
p.payload = &dp;
_outModule->receive(&output, &p, &data_out);
if(data_out){
out << (char*) data_out->str;
g_string_free(data_out,TRUE);
}
_units_stored += size;
progress_updated();
}
} else if (channel_type == SR_CHANNEL_ANALOG) {
_unit_count = snapshot->get_sample_count();
unsigned char* datat = (unsigned char*)snapshot->get_data();
unsigned int usize = 8192;
unsigned int size = usize;
struct sr_datafeed_analog ap;
for(uint64_t i = 0; !boost::this_thread::interruption_requested() && i < _unit_count; i+=usize){
if(_unit_count - i < usize)
size = _unit_count - i;

View File

@@ -47,16 +47,13 @@ FileBar::FileBar(SigSession &session, QWidget *parent) :
_action_load = new QAction(this);
_action_load->setObjectName(QString::fromUtf8("actionLoad"));
connect(_action_load, SIGNAL(triggered()), this, SLOT(on_actionLoad_triggered()));
_action_store = new QAction(this);
_action_store->setObjectName(QString::fromUtf8("actionStore"));
connect(_action_store, SIGNAL(triggered()), this, SLOT(on_actionStore_triggered()));
_action_default = new QAction(this);
_action_default->setObjectName(QString::fromUtf8("actionDefault"));
connect(_action_default, SIGNAL(triggered()), this, SLOT(on_actionDefault_triggered()));
_menu_session = new QMenu(this);
_menu_session->setObjectName(QString::fromUtf8("menuSession"));
_menu_session->addAction(_action_load);
@@ -65,21 +62,16 @@ FileBar::FileBar(SigSession &session, QWidget *parent) :
_action_open = new QAction(this);
_action_open->setObjectName(QString::fromUtf8("actionOpen"));
connect(_action_open, SIGNAL(triggered()), this, SLOT(on_actionOpen_triggered()));
_action_save = new QAction(this);
_action_save->setObjectName(QString::fromUtf8("actionSave"));
connect(_action_save, SIGNAL(triggered()), this, SIGNAL(on_save()));
_action_export = new QAction(this);
_action_export->setObjectName(QString::fromUtf8("actionExport"));
connect(_action_export, SIGNAL(triggered()), this, SIGNAL(on_export()));
_action_capture = new QAction(this);
_action_capture->setObjectName(QString::fromUtf8("actionCapture"));
connect(_action_capture, SIGNAL(triggered()), this, SLOT(on_actionCapture_triggered()));
_file_button.setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
_file_button.setPopupMode(QToolButton::InstantPopup);
@@ -93,6 +85,14 @@ FileBar::FileBar(SigSession &session, QWidget *parent) :
addWidget(&_file_button);
retranslateUi();
connect(_action_load, SIGNAL(triggered()), this, SLOT(on_actionLoad_triggered()));
connect(_action_store, SIGNAL(triggered()), this, SLOT(on_actionStore_triggered()));
connect(_action_default, SIGNAL(triggered()), this, SLOT(on_actionDefault_triggered()));
connect(_action_open, SIGNAL(triggered()), this, SLOT(on_actionOpen_triggered()));
connect(_action_save, SIGNAL(triggered()), this, SIGNAL(on_save()));
connect(_action_export, SIGNAL(triggered()), this, SIGNAL(on_export()));
connect(_action_capture, SIGNAL(triggered()), this, SLOT(on_actionCapture_triggered()));
}
void FileBar::changeEvent(QEvent *event)