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(); }
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); }
ResourceBrowser::ResourceBrowser() : KXmlGuiWindow() { Nepomuk::ResourceManager::instance()->init(); setWindowTitle(i18n("Resource Browser")); setWindowIcon(KIcon("nepomuk")); buildCentralUI(); setupDockWidgets(); setupActions(); setupModels(); populateDefaultResources(); setupGUI(); }
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); }
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")); }
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 */ }
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); }