{
fprintf(stdout,
"Usage:\n"
- " %s — %s\n"
+ " %s [OPTION…] [FILE] — %s\n"
"\n"
"Help Options:\n"
" -V, --version Show release version\n"
{
int ret = 0;
struct sr_context *sr_ctx = NULL;
+ const char *open_file = NULL;
// Register a SIGINT handler
signal(SIGINT, sigint_handler);
}
}
+ if (argc - optind > 1) {
+ fprintf(stderr, "Only one file can be openened.\n");
+ return 1;
+ } else if (argc - optind == 1)
+ open_file = argv[argc - 1];
+
// Initialise libsigrok
if (sr_init(&sr_ctx) != SR_OK) {
qDebug() << "ERROR: libsigrok init failed.";
if (ret == 0) {
// Initialise the main window
- pv::MainWindow w;
+ pv::MainWindow w(open_file);
w.show();
// Run the application
namespace pv {
-MainWindow::MainWindow(QWidget *parent) :
+MainWindow::MainWindow(const char *open_file_name,
+ QWidget *parent) :
QMainWindow(parent)
{
setup_ui();
+ if (open_file_name) {
+ const QString s(QString::fromUtf8(open_file_name));
+ QMetaObject::invokeMethod(this, "load_file",
+ Qt::QueuedConnection,
+ Q_ARG(QString, s));
+ }
}
void MainWindow::setup_ui()
}
+void MainWindow::load_file(QString file_name)
+{
+ _session.load_file(file_name.toStdString());
+}
+
void MainWindow::on_actionOpen_triggered()
{
- QString file_name = QFileDialog::getOpenFileName(
+ const QString file_name = QFileDialog::getOpenFileName(
this, tr("Open File"), "",
tr("Sigrok Sessions (*.sr)"));
- _session.load_file(file_name.toStdString());
+ load_file(file_name);
}
void MainWindow::on_actionQuit_triggered()
Q_OBJECT
public:
- explicit MainWindow(QWidget *parent = 0);
+ explicit MainWindow(const char *open_file_name = NULL,
+ QWidget *parent = 0);
private:
void setup_ui();
SamplingBar *_sampling_bar;
private slots:
+ void load_file(QString file_name);
void on_actionOpen_triggered();
void on_actionQuit_triggered();