Ejemplo n.º 1
0
MainWindow::MainWindow(QWidget *parent)
: KMainWindow(parent)
{
    setCaption("KResearch");

    mTabWidget = new ConcealedTabWidget(this);
    mTabWidget->setTabsClosable(true);

    mViewWidget = new QStackedWidget(this);

    mLibraryView = new LibraryView(this);
    mAuthorView = new AuthorView(this);
    mJournalView = new JournalView(this);

    mViewWidget->addWidget(mLibraryView);
    mViewWidget->addWidget(mAuthorView);
    mViewWidget->addWidget(mJournalView);

    mTabWidget->addTab(mViewWidget, "Articles");

    connect(mLibraryView, SIGNAL(activated(const QString&)), this, SLOT(openPreview(const QString&)));
    connect(mTabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(tabCloseRequested(int)));

    mTrayIcon = new KStatusNotifierItem(this);
    mTrayIcon->setTitle("KResearch");
    mTrayIcon->setIconByName("kjournal");

    setupDockWidgets();

    setCentralWidget(mTabWidget);

    loadConfig();
}
Ejemplo n.º 2
0
void MainWindow::on_actionScan_triggered()
{
	int ret, i;
	QString s;
	struct logic_analyzer la;

	statusBar()->showMessage(tr("Scanning for logic analyzers..."));

	ret = flosslogic_scan_for_devices(&ctx);
	if (ret < 0) {
		s = tr("No supported logic analyzer found.");
		statusBar()->showMessage(s);
		return;
	} else {
		s = tr("Found supported logic analyzer: ");
		s.append(flosslogic_logic_analyzers[ret].shortname);
		statusBar()->showMessage(s);
	}

	setCurrentLA(ret);
	setNumChannels(flosslogic_logic_analyzers[ret].numchannels);

	ui->comboBoxLA->clear();
	ui->comboBoxLA->addItem(flosslogic_logic_analyzers[ret].shortname);
	ui->labelChannels->setText(s.sprintf("Channels: %d",
			flosslogic_logic_analyzers[ret].numchannels));

	i = 0;
	la = flosslogic_logic_analyzers[getCurrentLA()];
	while (la.samplerates[i].string != NULL) {
		ui->comboBoxSampleRate->addItem(la.samplerates[i].string,
			la.samplerates[i].samplerate);
		i++;
	}

	/* FIXME */
	ui->comboBoxNumSamples->addItem("3000000", 3000000);
	ui->comboBoxNumSamples->addItem("2000000", 2000000);
	ui->comboBoxNumSamples->addItem("1000000", 1000000);
	ui->comboBoxNumSamples->setEditable(true);

	ret = flosslogic_hw_init(getCurrentLA(), &ctx);
	if (ret < 0)
		statusBar()->showMessage(tr("ERROR: LA init failed."));

	if (getCurrentLA() >= 0)
		setupDockWidgets();

	/* Enable all relevant fields now (i.e. make them non-gray). */
	ui->comboBoxSampleRate->setEnabled(true);
	ui->comboBoxNumSamples->setEnabled(true);
	ui->labelChannels->setEnabled(true);
	ui->action_Get_samples->setEnabled(true);
}
Ejemplo n.º 3
0
ResourceBrowser::ResourceBrowser() :
    KXmlGuiWindow()
{
    Nepomuk::ResourceManager::instance()->init();
    setWindowTitle(i18n("Resource Browser"));
    setWindowIcon(KIcon("nepomuk"));

    buildCentralUI();
    setupDockWidgets();
    setupActions();
    setupModels();
    populateDefaultResources();
    setupGUI();
}
Ejemplo n.º 4
0
MainWindow::MainWindow(const QMap<QString, QSize> &customSizeHints,
                        QWidget *parent, Qt::WindowFlags flags)
    : QMainWindow(parent, flags)
{
    setObjectName("MainWindow");
    setWindowTitle("TinScript Remote Debugger");

    // -- default dock options...
    DockOptions opts;
    opts |= AnimatedDocks;
    opts |= AllowNestedDocks;
    opts |= AllowTabbedDocks;
    QMainWindow::setDockOptions(opts);

    setupMenuBar();
    setupDockWidgets(customSizeHints);
}
Ejemplo n.º 5
0
MainWindow::MainWindow(const QMap<QString, QSize> &customSizeHints,
                        QWidget *parent, Qt::WindowFlags flags)
    : QMainWindow(parent, flags)
{
    setObjectName("MainWindow");
    setWindowTitle("Qt Main Window Demo");

    center = new QTextEdit(this);
    center->setReadOnly(true);
    center->setMinimumSize(400, 205);
    setCentralWidget(center);

    setupToolBar();
    setupMenuBar();
    setupDockWidgets(customSizeHints);

    statusBar()->showMessage(tr("Status Bar"));
}
Ejemplo n.º 6
0
void MainWindow::on_action_Open_triggered()
{
	QString s;
	QString fileName = QFileDialog::getOpenFileName(this,
		tr("Open sample file"), ".",
		tr("Raw sample files (*.raw *.bin);;"
		   "Gnuplot data files (*.dat);;"
		   "VCD files (*.vcd);;"
		   "All files (*)"));

	if (fileName == NULL)
		return;

	QFile file(fileName);
	file.open(QIODevice::ReadOnly);
	QDataStream in(&file);

	/* TODO: Implement support for loading different input formats. */

	sample_buffer = (uint8_t *)malloc(file.size());
	if (sample_buffer == NULL) {
		/* TODO: Error handling. */
	}

	in.readRawData((char *)sample_buffer, file.size());

	setNumSamples(file.size());
	setNumChannels(8); /* FIXME */

	file.close();

	setupDockWidgets();

	ui->comboBoxLA->clear();
	ui->comboBoxLA->addItem(tr("File"));

	/* FIXME: Store number of channels in the file or allow user config. */
	s.sprintf("%d", getNumChannels());
	s.prepend(tr("Channels: "));
	ui->labelChannels->setText(s);
	ui->labelChannels->setEnabled(false);

	ui->comboBoxSampleRate->clear();
	ui->comboBoxSampleRate->setEnabled(false); /* FIXME */

	ui->comboBoxNumSamples->clear();
	ui->comboBoxNumSamples->addItem(s.sprintf("%llu", getNumSamples()),
					getNumSamples());
	ui->comboBoxNumSamples->setEnabled(true);

	ui->labelSampleStart->setText(tr("Start sample: "));
	ui->labelSampleStart->setEnabled(true);

	ui->labelSampleEnd->setText(tr("End sample: "));
	ui->labelSampleEnd->setEnabled(true);

	ui->labelZoomFactor->setText(tr("Zoom factor: "));
	ui->labelZoomFactor->setEnabled(true);

	ui->action_Save_as->setEnabled(true);
	ui->action_Get_samples->setEnabled(false);

	for (int i = 0; i < getNumChannels(); ++i) {
		channelRenderAreas[i]->setChannelNumber(i);
		channelRenderAreas[i]->setNumSamples(file.size());
		channelRenderAreas[i]->setSampleStart(0);
		channelRenderAreas[i]->setSampleEnd(getNumSamples());
		channelRenderAreas[i]->update();
	}

	/* FIXME */
}
Ejemplo n.º 7
0
void MainWindow::on_actionScan_triggered()
{
	QString s;
	GSList *devs = NULL;
	int num_devs, pos;
	struct sr_dev *dev;
	char *di_num_probes, *str;
	struct sr_samplerates *samplerates;
	const static float mult[] = { 2.f, 2.5f, 2.f };

	statusBar()->showMessage(tr("Scanning for logic analyzers..."), 2000);

	sr_dev_scan();
	devs = sr_dev_list();
	num_devs = g_slist_length(devs);

	ui->comboBoxLA->clear();
	for (int i = 0; i < num_devs; ++i) {
		dev = (struct sr_dev *)g_slist_nth_data(devs, i);
		ui->comboBoxLA->addItem(dev->driver->name); /* TODO: Full name */
	}

	if (num_devs == 0) {
		s = tr("No supported logic analyzer found.");
		statusBar()->showMessage(s, 2000);
		return;
	} else if (num_devs == 1) {
		s = tr("Found supported logic analyzer: ");
		s.append(dev->driver->name);
		statusBar()->showMessage(s, 2000);
	} else {
		/* TODO: Allow user to select one of the devices. */
		s = tr("Found multiple logic analyzers: ");
		for (int i = 0; i < num_devs; ++i) {
			dev = (struct sr_dev *)g_slist_nth_data(devs, i);
			s.append(dev->driver->name);
			if (i != num_devs - 1)
				s.append(", ");
		}
		statusBar()->showMessage(s, 2000);
		// return;
	}

	dev = (struct sr_dev *)g_slist_nth_data(devs, 0 /* opt_dev */);

	setCurrentLA(0 /* TODO */);

	di_num_probes = (char *)dev->driver->dev_info_get(
			dev->driver_index, SR_DI_NUM_PROBES);
	if (di_num_probes != NULL) {
		setNumChannels(GPOINTER_TO_INT(di_num_probes));
	} else {
		setNumChannels(8); /* FIXME: Error handling. */
	}

	ui->comboBoxLA->clear();
	ui->comboBoxLA->addItem(dev->driver->name); /* TODO: Full name */

	s = QString(tr("Channels: %1")).arg(getNumChannels());
	ui->labelChannels->setText(s);

	samplerates = (struct sr_samplerates *)dev->driver->dev_info_get(
		      dev->driver_index, SR_DI_SAMPLERATES);
	if (!samplerates) {
		/* TODO: Error handling. */
	}

	/* Populate the combobox with supported samplerates. */
	ui->comboBoxSampleRate->clear();
	if (!samplerates) {
		ui->comboBoxSampleRate->addItem("No samplerate");
		ui->comboBoxSampleRate->setEnabled(false);
	} else if (samplerates->list != NULL) {
		for (int i = 0; samplerates->list[i]; ++i) {
			str = sr_samplerate_string(samplerates->list[i]);
			s = QString(str);
			free(str);
			ui->comboBoxSampleRate->insertItem(0, s,
				QVariant::fromValue(samplerates->list[i]));
		}
		ui->comboBoxSampleRate->setEnabled(true);
	} else {
		pos = 0;
		for (uint64_t r = samplerates->low; r <= samplerates->high; ) {
			str = sr_samplerate_string(r);
			s = QString(str);
			free(str);
			ui->comboBoxSampleRate->insertItem(0, s,
						QVariant::fromValue(r));
			r *= mult[pos++];
			pos %= 3;
		}
		ui->comboBoxSampleRate->setEnabled(true);
	}
	ui->comboBoxSampleRate->setCurrentIndex(0);

	/* FIXME */
	ui->comboBoxNumSamples->clear();
	ui->comboBoxNumSamples->addItem("100", 100); /* For testing... */
	ui->comboBoxNumSamples->addItem("3000000", 3000000);
	ui->comboBoxNumSamples->addItem("2000000", 2000000);
	ui->comboBoxNumSamples->addItem("1000000", 1000000);

	ui->comboBoxNumSamples->setEditable(true);

	if (getCurrentLA() >= 0)
		setupDockWidgets();

	/* Enable all relevant fields now (i.e. make them non-gray). */
	ui->comboBoxNumSamples->setEnabled(true);
	ui->labelChannels->setEnabled(true);
	ui->action_Get_samples->setEnabled(true);
}