#ifdef ENABLE_DECODE
#include "widgets/decodermenu.hpp"
#endif
+#include "widgets/hidingmenubar.hpp"
#include <inttypes.h>
#include <stdint.h>
#include <stdarg.h>
#include <glib.h>
-#include <libsigrok/libsigrok.hpp>
+#include <libsigrokcxx/libsigrokcxx.hpp>
using std::list;
using std::map;
action_view_zoom_fit_(new QAction(this)),
action_view_zoom_one_to_one_(new QAction(this)),
action_view_show_cursors_(new QAction(this)),
- action_about_(new QAction(this))
+ action_about_(new QAction(this)),
+ menu_decoders_add_(new pv::widgets::DecoderMenu(this, true))
{
setup_ui();
restore_ui_settings();
return action_about_;
}
+QMenu* MainWindow::menu_decoder_add() const
+{
+ return menu_decoders_add_;
+}
+
void MainWindow::run_stop()
{
switch(session_.get_capture_state()) {
// Set the window icon
QIcon icon;
- icon.addFile(QString::fromUtf8(":/icons/sigrok-logo-notext.png"),
- QSize(), QIcon::Normal, QIcon::Off);
+ icon.addFile(QString(":/icons/sigrok-logo-notext.svg"));
setWindowIcon(icon);
// Setup the central widget
vertical_layout_->addWidget(view_);
// Setup the menu bar
- QMenuBar *const menu_bar = new QMenuBar(this);
- menu_bar->setGeometry(QRect(0, 0, 400, 25));
+ pv::widgets::HidingMenuBar *const menu_bar =
+ new pv::widgets::HidingMenuBar(this);
// File Menu
QMenu *const menu_file = new QMenu;
QString::fromUtf8("actionViewZoomFit"));
menu_view->addAction(action_view_zoom_fit_);
- action_view_zoom_one_to_one_->setText(tr("Zoom to &One-to-One"));
+ action_view_zoom_one_to_one_->setText(tr("Zoom to O&ne-to-One"));
action_view_zoom_one_to_one_->setIcon(QIcon::fromTheme("zoom-original",
QIcon(":/icons/zoom-original.png")));
action_view_zoom_one_to_one_->setShortcut(QKeySequence(Qt::Key_O));
action_view_show_cursors_->setCheckable(true);
action_view_show_cursors_->setChecked(view_->cursors_shown());
+ action_view_show_cursors_->setIcon(QIcon::fromTheme("show-cursors",
+ QIcon(":/icons/show-cursors.svg")));
action_view_show_cursors_->setShortcut(QKeySequence(Qt::Key_C));
action_view_show_cursors_->setObjectName(
QString::fromUtf8("actionViewShowCursors"));
QMenu *const menu_decoders = new QMenu;
menu_decoders->setTitle(tr("&Decoders"));
- pv::widgets::DecoderMenu *const menu_decoders_add =
- new pv::widgets::DecoderMenu(menu_decoders, true);
- menu_decoders_add->setTitle(tr("&Add"));
- connect(menu_decoders_add, SIGNAL(decoder_selected(srd_decoder*)),
+ menu_decoders_add_->setTitle(tr("&Add"));
+ connect(menu_decoders_add_, SIGNAL(decoder_selected(srd_decoder*)),
this, SLOT(add_decoder(srd_decoder*)));
- menu_decoders->addMenu(menu_decoders_add);
+ menu_decoders->addMenu(menu_decoders_add_);
#endif
// Help Menu
setMenuBar(menu_bar);
QMetaObject::connectSlotsByName(this);
- // Setup the toolbar
- QToolBar *const toolbar = new QToolBar(tr("Main Toolbar"), this);
- toolbar->setObjectName(QString::fromUtf8("MainToolbar"));
- toolbar->addAction(action_open_);
- toolbar->addAction(action_save_as_);
- toolbar->addSeparator();
- toolbar->addAction(action_view_zoom_in_);
- toolbar->addAction(action_view_zoom_out_);
- toolbar->addAction(action_view_zoom_fit_);
- toolbar->addAction(action_view_zoom_one_to_one_);
- addToolBar(toolbar);
-
// Setup the sampling bar
main_bar_ = new toolbars::MainBar(session_, *this);
void MainWindow::update_device_list()
{
- assert(main_bar_);
-
- shared_ptr<Device> selected_device = session_.device();
- list< shared_ptr<Device> > devices;
-
- if (device_manager_.devices().size() == 0)
- return;
-
- std::copy(device_manager_.devices().begin(),
- device_manager_.devices().end(), std::back_inserter(devices));
-
- if (std::find(devices.begin(), devices.end(), selected_device) ==
- devices.end())
- devices.push_back(selected_device);
- assert(selected_device);
-
- main_bar_->set_device_list(devices, selected_device);
+ main_bar_->update_device_list();
}
void MainWindow::closeEvent(QCloseEvent *event)
event->accept();
}
+void MainWindow::keyReleaseEvent(QKeyEvent *event)
+{
+ if (event->key() == Qt::Key_Alt) {
+ menuBar()->setHidden(!menuBar()->isHidden());
+ menuBar()->setFocus();
+ }
+ QMainWindow::keyReleaseEvent(event);
+}
+
void MainWindow::load_file(QString file_name)
{
const QString errorMessage(