void MainWindow::createDockWindows() { // Engine debug QDockWidget* engineDebugDock = new QDockWidget(tr("Engine Debug"), this); m_engineDebugLog = new PlainTextLog(engineDebugDock); connect(m_engineDebugLog, SIGNAL(saveLogToFileRequest()), this, SLOT(saveLogToFile())); engineDebugDock->setWidget(m_engineDebugLog); addDockWidget(Qt::BottomDockWidgetArea, engineDebugDock); // Move list QDockWidget* moveListDock = new QDockWidget(tr("Moves"), this); moveListDock->setWidget(m_moveList); addDockWidget(Qt::RightDockWidgetArea, moveListDock); // Tags QDockWidget* tagsDock = new QDockWidget(tr("Tags"), this); QTreeView* tagsView = new QTreeView(tagsDock); tagsView->setModel(m_tagsModel); tagsView->setAlternatingRowColors(true); tagsView->setRootIsDecorated(false); tagsDock->setWidget(tagsView); addDockWidget(Qt::RightDockWidgetArea, tagsDock); tabifyDockWidget(moveListDock, tagsDock); moveListDock->raise(); // Add toggle view actions to the View menu m_viewMenu->addAction(moveListDock->toggleViewAction()); m_viewMenu->addAction(tagsDock->toggleViewAction()); m_viewMenu->addAction(engineDebugDock->toggleViewAction()); }
void MainWindow::ConnectStack() { auto* widget = new QWidget; auto* layout = new QVBoxLayout; widget->setLayout(layout); layout->addWidget(m_game_list); layout->addWidget(m_search_bar); layout->setMargin(0); connect(m_search_bar, &SearchBar::Search, m_game_list, &GameList::SetSearchTerm); m_stack->addWidget(widget); setCentralWidget(m_stack); setTabPosition(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea, QTabWidget::North); addDockWidget(Qt::RightDockWidgetArea, m_log_widget); addDockWidget(Qt::RightDockWidgetArea, m_log_config_widget); addDockWidget(Qt::RightDockWidgetArea, m_code_widget); addDockWidget(Qt::RightDockWidgetArea, m_register_widget); addDockWidget(Qt::RightDockWidgetArea, m_watch_widget); addDockWidget(Qt::RightDockWidgetArea, m_breakpoint_widget); tabifyDockWidget(m_log_widget, m_log_config_widget); tabifyDockWidget(m_log_widget, m_code_widget); tabifyDockWidget(m_log_widget, m_register_widget); tabifyDockWidget(m_log_widget, m_watch_widget); tabifyDockWidget(m_log_widget, m_breakpoint_widget); }
void Ide::onInit() { auto p = Preferences::get(); if (p->wasWindowMaximized()) { showMaximized(); } else { resize(p->windowSize()); } addDockWidget(Qt::LeftDockWidgetArea, new ProjectDock(this)); auto java = new JavaDock(this); addDockWidget(Qt::BottomDockWidgetArea, java); auto zipAlign = new ZipAlignDock(this); addDockWidget(Qt::BottomDockWidgetArea, zipAlign); tabifyDockWidget(java, zipAlign); auto jarSigner = new JarSignerDock(this); addDockWidget(Qt::BottomDockWidgetArea, jarSigner); tabifyDockWidget(zipAlign, jarSigner); auto adb = new AdbDock(this); addDockWidget(Qt::BottomDockWidgetArea, adb); tabifyDockWidget(jarSigner, adb); restoreState(p->docksState()); }
void Editor::UIInitHelper() { tabifyDockWidget(ui.projectDock, ui.primitiveDock); tabifyDockWidget(ui.primitiveDock, ui.propertyDock); ui.projectDock->raise(); ui.propertyWidget->setPropertiesWithoutValueMarked(true); ui.propertyWidget->setHeaderVisible(false); ui.propertyWidget->setRootIsDecorated(false); }
MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) { setWindowTitle(i18n("Silence")); Controller *controller = Controller::create(); controller->setMainWindow(this); controller->setActionManager(new ActionManager(actionCollection())); centralwidgetstack = new QStackedWidget; setCentralWidget(centralwidgetstack); // ContentView contentview = new ContentView; centralwidgetstack->addWidget(contentview); controller->setContentView(contentview); nodepropertywidget = new NodePropertyWidget(i18n("Properties"), this); nodepropertywidget->hide(); controller->setNodePropertyWidget(nodepropertywidget); // the treeview on the left side treeview = new TreeView(i18n("Nodes"), this); controller->setTreeView(treeview); // search sidebar searchnodesidebar = new SearchNodeSidebar(i18n("Search Nodes"), this); controller->setSearchNodeSidebar(searchnodesidebar); // navigation sidebar navigationsidebar = new NavigationSidebar(i18nc("title of the navigation sidebar", "Navigation"), this); controller->setNavigationSidebar(navigationsidebar); // information sidebar to show the metainfos infosidebar = new InfoSidebar(i18n("Information"), this); controller->setInfoSidebar(infosidebar); // docking the widgets addDockWidget(Qt::RightDockWidgetArea, navigationsidebar); addDockWidget(Qt::RightDockWidgetArea, infosidebar); addDockWidget(Qt::LeftDockWidgetArea, treeview); addDockWidget(Qt::LeftDockWidgetArea, treeview); tabifyDockWidget(treeview, searchnodesidebar); addDockWidget(Qt::LeftDockWidgetArea, nodepropertywidget); statusbar = new SiStatusBar; setStatusBar(statusbar); controller->setStatusBar(statusbar); controller->getTextEdit()->setVisible(false); controller->getRichTextEdit()->setVisible(false); viewmenu = new ViewMenu(); connect(controller->getActionManager()->getGlobalAction(Actions::EXIT), SIGNAL(triggered()), this, SLOT(quit())); silencemenu = new SilenceMenu(actionCollection()); setupGUI(QSize(1100, 600), Keys | StatusBar | Save | Create); }
MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) { setWindowTitle(i18n("Silence")); controller = Controller::create(); // ContentView contentview = new ContentView; setCentralWidget(contentview); controller->setContentView(contentview); nodepropertywidget = new NodePropertyWidget(i18n("Properties"), this); nodepropertywidget->hide(); controller->setNodePropertyWidget(nodepropertywidget); // the treeview on the left side treeview = new TreeView(i18n("Nodes"), actionCollection(), this); controller->setTreeView(treeview); // search sidebar searchnodesidebar = new SearchNodeSidebar(i18n("Search Nodes"), this); controller->setSearchNodeSidebar(searchnodesidebar); // navigation sidebar navigationsidebar = new NavigationSidebar(i18n("Navigation"), this); controller->setNavigationSidebar(navigationsidebar); // information sidebar to show the meta-infos infosidebar = new InfoSidebar(i18n("Info"), this); controller->setInfoSidebar(infosidebar); // docking the widgets addDockWidget(Qt::RightDockWidgetArea, navigationsidebar); addDockWidget(Qt::RightDockWidgetArea, infosidebar); addDockWidget(Qt::LeftDockWidgetArea, treeview); addDockWidget(Qt::LeftDockWidgetArea, treeview); tabifyDockWidget(treeview, searchnodesidebar); addDockWidget(Qt::LeftDockWidgetArea, nodepropertywidget); statusbar = new SiStatusBar; setStatusBar(statusbar); controller->setStatusBar(statusbar); controller->setActionCollection(actionCollection()); controller->getTextEdit()->setVisible(false); controller->getRichTextEdit()->setVisible(false); viewmenu = new ViewMenu(actionCollection()); KAction *action = actionCollection()->addAction("exit"); action->setText(i18n("&Exit")); action->setIcon(KIcon("application-exit")); connect(action, SIGNAL(triggered()), qApp, SLOT(quit())); setupGUI(QSize(1100, 600), Keys | StatusBar | Save | Create); }
void MainWindow::setup_views_default() { // Tabs should be on the top of windows, not at the bottom setTabPosition( Qt::LeftDockWidgetArea, QTabWidget::North ); setTabPosition( Qt::RightDockWidgetArea, QTabWidget::North ); setTabPosition( Qt::BottomDockWidgetArea, QTabWidget::North ); setTabPosition( Qt::TopDockWidgetArea, QTabWidget::North ); addDockWidget( Qt::LeftDockWidgetArea, m_project_view.get() ); tabifyDockWidget( m_project_view.get(), m_changes_view.get() ); tabifyDockWidget( m_project_view.get(), m_objects_view.get() ); addDockWidget( Qt::RightDockWidgetArea, m_libraries_view.get() ); tabifyDockWidget( m_libraries_view.get(), m_layers_view.get() ); tabifyDockWidget( m_libraries_view.get(), m_toolbox_view.get() ); addDockWidget( Qt::BottomDockWidgetArea, m_log_view.get() ); }
void QtDockRegion::setDefaultPreferenceForDockWidget(QDockWidget* qDockWidget) { auto qMainWindow = qtWindow_.window(); assert(qMainWindow != nullptr); qDockWidget->setVisible(!hidden_); qMainWindow->tabifyDockWidget(&qDockWidget_, qDockWidget); qDockWidget->setFloating(qDockWidget_.isFloating()); qDockWidget->setFeatures(qDockWidget_.features()); qDockWidget->setAllowedAreas(qDockWidget_.allowedAreas()); }
void MainWindow::slotPlotAnimationEdit() { if (_plotEditDockWidget->isHidden()) { _plotEditDockWidget->show(); tabifyDockWidget(_csharpAssemblyDockWidget, _plotEditDockWidget); } else _plotEditDockWidget->hide(); }
void MainWindow::createDockWindows() { //creating the Data Manager Dock DMdock = new QDockWidget(tr("Data Manager"), this); dataManager = new MVdataManager(DMdock); DMdock->setWidget(dataManager); addDockWidget(Qt::TopDockWidgetArea, DMdock); //creating the Mask Manager Dock MMDock = new QDockWidget(tr("Mask Manager"), this); maskManager = new MaskManager(MMDock); MMDock->setWidget(maskManager); addDockWidget(Qt::TopDockWidgetArea, MMDock); //creating the Plot Dock PlotDock = new QDockWidget(tr("Plot"), this); plotWidget = new PlotWidget(PlotDock); PlotDock->setWidget(plotWidget); addDockWidget(Qt::TopDockWidgetArea, PlotDock); eventViewerDock = new QDockWidget(tr("Data Inspector"), this); eventViewer = new EventViewer(eventViewerDock); eventViewerDock->setWidget(eventViewer); addDockWidget(Qt::TopDockWidgetArea, eventViewerDock); // maskEditorDock = new QDockWidget(tr("MaskEdit"),this); // maskMatrix = new checkableMatrix(this); // maskEditorDock->setWidget(maskMatrix); // addDockWidget(Qt::BottomDockWidgetArea,maskEditorDock); tabifyDockWidget(DMdock, MMDock); tabifyDockWidget(PlotDock, eventViewerDock); // tabifyDockWidget(eventViewerDock, maskEditorDock); //workaround: there is no way at the moment to select the //desired tab. You must guess which is the index of the internal //tab structure. //ref: http://qt-project.org/forums/viewthread/2835 raisePlotDock(); raiseDMDock(); }
void RenderWindow::slotMenuAnimationDocksPositions() { ResetDocksPositions(); ui->dockWidget_histogram->hide(); ui->dockWidget_info->hide(); ui->dockWidget_animation->show(); ui->toolBar->hide(); #ifdef USE_GAMEPAD ui->dockWidget_gamepad_dock->hide(); #endif ui->dockWidget_queue_dock->hide(); tabifyDockWidget(ui->dockWidget_materialEditor, ui->dockWidget_effects); tabifyDockWidget(ui->dockWidget_effects, ui->dockWidget_image_adjustments); tabifyDockWidget(ui->dockWidget_image_adjustments, ui->dockWidget_rendering_engine); tabifyDockWidget(ui->dockWidget_rendering_engine, ui->dockWidget_objects); tabifyDockWidget(ui->dockWidget_objects, ui->dockWidget_histogram); addDockWidget(Qt::LeftDockWidgetArea, ui->dockWidget_Materials); }
void ToolWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget* dockWidget) { QList<QDockWidget*> dockWidgets = findChildren<QDockWidget*>(); QMainWindow::addDockWidget(area, dockWidget); // We want to force tabbing, so retabify all of our widgets. QDockWidget* lastDockWidget = dockWidget; foreach (QDockWidget* nextDockWidget, dockWidgets) { tabifyDockWidget(lastDockWidget, nextDockWidget); lastDockWidget = nextDockWidget; }
void GPUCommandListWidget::OnCommandDoubleClicked(const QModelIndex& index) { const int command_id = list_widget->model()->data(index, GPUCommandListModel::CommandIdRole).toInt(); if (COMMAND_IN_RANGE(command_id, texture0)) { auto info = Pica::DebugUtils::TextureInfo::FromPicaRegister(Pica::registers.texture0, Pica::registers.texture0_format); // TODO: Instead, emit a signal here to be caught by the main window widget. auto main_window = static_cast<QMainWindow*>(parent()); main_window->tabifyDockWidget(this, new TextureInfoDockWidget(info, main_window)); } }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->logPanel->setReadOnly(true); ui->logPanel->setFont(QFont("Monospace", 8, 2)); connect(ui->OgreWidget->mLogListener, SIGNAL(logMessageUpdated()), this, SLOT(writeToLogPanel())); connect(ui->listWidget, SIGNAL(doubleClicked(QModelIndex)), this , SLOT(materialSelected())); connect(ui->workspaceTree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(workspaceItemSelected(QTreeWidgetItem*))); currMatName = "DefaultSettings"; ui->workspaceTree->setColumnCount(1); ui->workspaceTree->setHeaderLabel("Materials"); tabifyDockWidget(ui->vDock, ui->fDock); tabifyDockWidget(ui->workspaceDock, ui->propertiesDock); }
void RenderWindow::slotStackAllDocks() { tabifyDockWidget(ui->dockWidget_materialEditor, ui->dockWidget_effects); tabifyDockWidget(ui->dockWidget_effects, ui->dockWidget_image_adjustments); tabifyDockWidget(ui->dockWidget_image_adjustments, ui->dockWidget_rendering_engine); tabifyDockWidget(ui->dockWidget_rendering_engine, ui->dockWidget_objects); tabifyDockWidget(ui->dockWidget_objects, ui->dockWidget_histogram); tabifyDockWidget(ui->dockWidget_histogram, ui->dockWidget_info); }
void NodeEditorWindows::createDocks() { // settings of mdi area setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); setTabPosition(Qt::LeftDockWidgetArea, QTabWidget::North); // cam explorer dock _camExplorerDock = new QDockWidget(tr("Node project explorer"), this); QWidget *camExplorerContent = new QWidget(_camExplorerDock); QLayout *camExplorerLayout = new QVBoxLayout(); _camExplorerWidget = new CamExplorerWidget(); camExplorerLayout->addWidget(_camExplorerWidget); camExplorerContent->setLayout(camExplorerLayout); _camExplorerDock->setWidget(camExplorerContent); addDockWidget(Qt::LeftDockWidgetArea, _camExplorerDock); // viewer explorer dock _viewerExplorerDock = new QDockWidget(tr("Viewers"), this); QWidget *viewerExplorerContent = new QWidget(_viewerExplorerDock); QLayout *viewerExplorerLayout = new QVBoxLayout(); _viewerExplorerWidget = new ViewerExplorerWidget(); viewerExplorerLayout->addWidget(_viewerExplorerWidget); viewerExplorerContent->setLayout(viewerExplorerLayout); _viewerExplorerDock->setWidget(viewerExplorerContent); tabifyDockWidget(_camExplorerDock, _viewerExplorerDock); // lib treeview dock _libTreeViewDock = new QDockWidget(tr("IP library explorer"), this); QWidget *libTreeViewContent = new QWidget(_libTreeViewDock); QLayout *libTreeViewLayout = new QVBoxLayout(); _libTreeView = new LibTreeView(); _libTreeView->setLib(&Lib::getLib()); libTreeViewLayout->addWidget(_libTreeView); libTreeViewContent->setLayout(libTreeViewLayout); _libTreeViewDock->setWidget(libTreeViewContent); addDockWidget(Qt::RightDockWidgetArea, _libTreeViewDock); // compile log dock _compileLogDock = new QDockWidget(tr("Compilation log"), this); QWidget *compileLogContent = new QWidget(_compileLogDock); QLayout *compileLogLayout = new QVBoxLayout(); _compileLog = new CompileLogWidget(); compileLogLayout->addWidget(_compileLog); compileLogContent->setLayout(compileLogLayout); _compileLogDock->setWidget(compileLogContent); addDockWidget(Qt::BottomDockWidgetArea, _compileLogDock); connect(_compileLog, SIGNAL(messageSended(QString)), this, SLOT(showMessage(QString))); }
void MuseScore::showSelectionWindow(bool val) { QAction* a = getAction("toggle-selection-window"); if (selectionWindow == 0) { selectionWindow = new SelectionWindow(this,this->currentScore()); connect(selectionWindow, SIGNAL(closed(bool)), a, SLOT(setChecked(bool))); addDockWidget(Qt::LeftDockWidgetArea,selectionWindow); if (paletteBox && paletteBox->isVisible()) { tabifyDockWidget(paletteBox, selectionWindow); } } selectionWindow->setVisible(val); if (val) { selectionWindow->raise(); } }
void MainWindow::initSnap(int snapType) { static Screenshot *dockWidget0 = NULL; Screenshot *dockWidget = new Screenshot(dockCtrlNames[snapType], this); addDockWidget(static_cast<Qt::DockWidgetArea>(Qt::RightDockWidgetArea), dockWidget); // create tabbed history widgets if (dockWidget0) tabifyDockWidget(dockWidget0, dockWidget); else dockWidget0 = dockWidget; menuPictures->addAction(dockWidget->toggleViewAction()); dockCtrls[snapType] = dockWidget; }
void MainWindow::initHistory(int snapType) { QString title = dockCtrlNames[snapType]; QDockWidget *dockWidget = new QDockWidget(this); dockWidget->setObjectName("dockWidget_" + title); dockWidget->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetMovable|QDockWidget::NoDockWidgetFeatures); QWidget *dockWidgetContents = new QWidget(dockWidget); dockWidgetContents->setObjectName("dockWidgetContents_" + title); QGridLayout *gridLayout = new QGridLayout(dockWidgetContents); gridLayout->setObjectName("gridLayout_" + title); gridLayout->setContentsMargins(0, 0, 0, 0); QTextBrowser * tb; if (snapType == DOCK_HISTORY) { tb = tbHistory = new QTextBrowser(dockWidgetContents); tbHistory->setOpenExternalLinks(true); } else if (snapType == DOCK_MAMEINFO) tb = tbMameinfo = new QTextBrowser(dockWidgetContents); else if (snapType == DOCK_DRIVERINFO) tb = tbDriverinfo = new QTextBrowser(dockWidgetContents); else if (snapType == DOCK_STORY) tb = tbStory = new QTextBrowser(dockWidgetContents); else tb = tbCommand = new QTextBrowser(dockWidgetContents); tb->setObjectName("textBrowser_" + title); tb->setFrameShape(QFrame::NoFrame); gridLayout->addWidget(tb); dockWidget->setWidget(dockWidgetContents); dockWidget->setWindowTitle(tr(qPrintable(title))); addDockWidget(static_cast<Qt::DockWidgetArea>(Qt::RightDockWidgetArea), dockWidget); // create tabbed history widgets if (dwHistory) tabifyDockWidget(dwHistory, dockWidget); else dwHistory = dockWidget; menuDocuments->addAction(dockWidget->toggleViewAction()); dockCtrls[snapType] = dockWidget; }
void MainWindow::setupControllers(const QStringList &devices, bool setDefaults){ for(int i = 0; i < devices.length(); i++){ bool dummy = false; QString s = devices.at(i); QStringList split = s.split(','); if(split.length() < 2){ qDebug() << "Invalid device String: " << s << endl; continue; } if(split.at(1).startsWith("DUMMY")) dummy = true; qDebug() << "Found device IP: " << split.at(0) << "ID: " << split.at(1) << "Dummy: " << dummy << endl; LightController *lc = new LightController(split.at(0), split.at(1), controllers.size() + 1, dummy, this); for(int j = 1; j <= 4; j++){ connect(audio, SIGNAL(setRandomAll()), lc->zones[j], SLOT(setRandomExt())); } connect(master, SIGNAL(doColor(QColor, unsigned char)), lc->zones[0], SLOT(setColorExt(QColor))); connect(master, SIGNAL(doBright(unsigned char, unsigned char)), lc->zones[0], SLOT(setBrightExt(unsigned char))); connect(master, SIGNAL(doOn(unsigned char)), lc->zones[0], SLOT(setOnExt())); connect(master, SIGNAL(doOff(unsigned char)), lc->zones[0], SLOT(setOffExt())); connect(master, SIGNAL(doWhite(unsigned char)), lc->zones[0], SLOT(setWhiteExt())); connect(master, SIGNAL(fadeEnabled()), lc->zones[0], SLOT(disableFade())); controllers.append(lc); addDockWidget(Qt::BottomDockWidgetArea, lc); if(controllers.size() > 1) tabifyDockWidget(controllers.first(), controllers.last()); } if(setDefaults){ master->setColorExt(Qt::blue); usleep(150000); master->setBrightExt(18); } }
void MainWindow::createWidgets() { { // Dock Chutier _chutierDock = new QDockWidget( "Media List", this ); { _chutier = new Chutier( _chutierDock ); _chutierDock->setWidget( _chutier ); addDockWidget( Qt::TopDockWidgetArea, _chutierDock ); _viewMenu->addAction( _chutierDock->toggleViewAction() ); _viewMenu->addAction( _chutier->_viewerChutierDock->toggleViewAction() ); } } { // Dock Viewer createWidgetViewer(); saveWidgets(); // Dock UndoWidget QDockWidget * undoDock = new QDockWidget( "Command List", this ); { _undoView = new UndoView( Projet::getInstance().getCommandManager(), undoDock ); _undoWidget = new UndoWidget( _undoView ); undoDock->setWidget( _undoWidget ); addDockWidget( Qt::TopDockWidgetArea, undoDock ); _viewMenu->addAction( undoDock->toggleViewAction() ); } tabifyDockWidget( _chutierDock, undoDock ); undoDock->setHidden( true ); undoDock->setFloating( true ); // Dock Timeline QML _graphicTimelineDock = new QDockWidget( "Graphic Timeline", this ); _timelineGraphic = new TimelineGraphic( this ); _graphicTimelineDock->setWidget( _timelineGraphic ); addDockWidget( Qt::BottomDockWidgetArea, _graphicTimelineDock ); _viewMenu->addAction( _graphicTimelineDock->toggleViewAction() ); } }
void MainWindow::setUIMode(bool docks_enabled) { // Already in this mode? if(docks_enabled == ui->tabWidget->isHidden()) return; settings->setValue("docksEnabled", docks_enabled); // Enabling tabs needs a restart if(!docks_enabled) { QMessageBox::warning(this, trUtf8("Restart needed"), trUtf8("You need to restart firebird to enable the tab interface.")); return; } //Convert the tabs into QDockWidgets QDockWidget *last_dock = nullptr; while(ui->tabWidget->count()) { QWidget *tab = ui->tabWidget->widget(0); QDockWidget *dw = new QDockWidget(ui->tabWidget->tabText(0), this); docks.push_back(dw); #ifdef Q_OS_MAC connect(dw, SIGNAL(visibilityChanged(bool)), this, SLOT(dockVisibilityChanged(bool))); #endif if(tab == ui->tabDebugger) dock_debugger = dw; dw->setObjectName(ui->tabWidget->tabText(0)); tab->setParent(dw->widget()); addDockWidget(Qt::RightDockWidgetArea, dw); dw->setWidget(tab); if(last_dock != nullptr) tabifyDockWidget(last_dock, dw); last_dock = dw; } ui->tabWidget->setHidden(true); ui->uiDocks->setChecked(docks_enabled); }
void GPUCommandListWidget::OnCommandDoubleClicked(const QModelIndex& index) { const unsigned int command_id = list_widget->model()->data(index, GPUCommandListModel::CommandIdRole).toUInt(); if (COMMAND_IN_RANGE(command_id, texture0) || COMMAND_IN_RANGE(command_id, texture1) || COMMAND_IN_RANGE(command_id, texture2)) { unsigned index; if (COMMAND_IN_RANGE(command_id, texture0)) { index = 0; } else if (COMMAND_IN_RANGE(command_id, texture1)) { index = 1; } else { index = 2; } auto config = Pica::registers.GetTextures()[index].config; auto format = Pica::registers.GetTextures()[index].format; auto info = Pica::DebugUtils::TextureInfo::FromPicaRegister(config, format); // TODO: Instead, emit a signal here to be caught by the main window widget. auto main_window = static_cast<QMainWindow*>(parent()); main_window->tabifyDockWidget(this, new TextureInfoDockWidget(info, main_window)); } }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { exporting = false; ui->setupUi(this); connect(this, SIGNAL(renderedImage(QList<QImage>)), ui->widget, SLOT(updatePixmap(QList<QImage>))); ui->outDir->setText(QDir::homePath()); exporting = false; ui->widget->scaleBox = ui->scale; tabifyDockWidget(ui->dockPreferences, ui->dockExport); ui->dockPreferences->raise(); pattern = QPixmap(20,20); QPainter painter(&pattern); #define BRIGHT 190 #define SHADOW 150 painter.fillRect(0,0,10,10,QColor(SHADOW,SHADOW,SHADOW)); painter.fillRect(10,0,10,10,QColor(BRIGHT,BRIGHT,BRIGHT)); painter.fillRect(10,10,10,10,QColor(SHADOW,SHADOW,SHADOW)); painter.fillRect(0,10,10,10,QColor(BRIGHT,BRIGHT,BRIGHT)); setAcceptDrops(true); }
/*! \brief IDE main class constructor \param parent */ WindowIDE::WindowIDE(QWidget *parent) : QMainWindow(parent), ui(new Ui::WindowIDE) { ui->setupUi(this); tabifyDockWidget(ui->projectDockWidget,ui->filesDockWidget); this->setWindowTitle(tr("PockEmul Integrated Development Environment")); this->setAttribute(Qt::WA_DeleteOnClose,true); setupEditor(); connect(ui->actionCompile, SIGNAL(triggered()), this, SLOT(compile())); connect(ui->actionSave,SIGNAL(triggered()),this,SLOT(save())); connect(ui->actionSave_All,SIGNAL(triggered()),this,SLOT(saveAll())); //connect(ui->listWidget,SIGNAL(itemDoubleClicked(QListWidgetItem*)),this,SLOT(load(QListWidgetItem*))); connect(ui->treeView,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(load(QModelIndex))); connect(ui->tabWidget,SIGNAL(tabCloseRequested(int)),this,SLOT(closeEditorTab(int))); connect(ui->outputtabWidget,SIGNAL(tabCloseRequested(int)),this,SLOT(closeOutputTab(int))); connect(ui->actionNew,SIGNAL(triggered()),this,SLOT(newFile())); connect(mainwindow,SIGNAL(DestroySignal(CPObject*)),this,SLOT(DestroySlot(CPObject*))); }
MainWindow::MainWindow(const QString cfgfile, QWidget *parent) : QMainWindow(parent), configOk(true), ui(new Ui::MainWindow), d_lnb_lo(0), d_fftAvg(0.5), d_have_audio(true), dec_afsk1200(0) { ui->setupUi(this); /* Initialise default configuration directory */ QByteArray xdg_dir = qgetenv("XDG_CONFIG_HOME"); if (xdg_dir.isEmpty()) m_cfg_dir = QString("%1/.config/gqrx").arg(QDir::homePath()); // Qt takes care of conversion to native separators else m_cfg_dir = QString("%1/gqrx").arg(xdg_dir.data()); setWindowTitle(QString("Gqrx %1").arg(VERSION)); /* frequency control widget */ ui->freqCtrl->setup(10, (quint64) 0, (quint64) 9999e6, 1, UNITS_MHZ); ui->freqCtrl->setFrequency(144500000); d_filter_shape = receiver::FILTER_SHAPE_NORMAL; /* create receiver object */ rx = new receiver("", ""); rx->set_rf_freq(144500000.0f); /* meter timer */ meter_timer = new QTimer(this); connect(meter_timer, SIGNAL(timeout()), this, SLOT(meterTimeout())); /* FFT timer & data */ iq_fft_timer = new QTimer(this); connect(iq_fft_timer, SIGNAL(timeout()), this, SLOT(iqFftTimeout())); audio_fft_timer = new QTimer(this); connect(audio_fft_timer, SIGNAL(timeout()), this, SLOT(audioFftTimeout())); d_fftData = new std::complex<float>[MAX_FFT_SIZE]; d_realFftData = new double[MAX_FFT_SIZE]; d_pwrFftData = new double[MAX_FFT_SIZE](); d_iirFftData = new double[MAX_FFT_SIZE]; for (int i = 0; i < MAX_FFT_SIZE; i++) d_iirFftData[i] = -120.0; // dBFS /* timer for data decoders */ dec_timer = new QTimer(this); connect(dec_timer, SIGNAL(timeout()), this, SLOT(decoderTimeout())); /* create dock widgets */ uiDockRxOpt = new DockRxOpt(); uiDockAudio = new DockAudio(); uiDockInputCtl = new DockInputCtl(); //uiDockIqPlay = new DockIqPlayer(); uiDockFft = new DockFft(); /* Add dock widgets to main window. This should be done even for dock widgets that are going to be hidden, otherwise they will end up floating in their own top-level window and can not be docked to the mainwindow. */ addDockWidget(Qt::RightDockWidgetArea, uiDockInputCtl); addDockWidget(Qt::RightDockWidgetArea, uiDockRxOpt); tabifyDockWidget(uiDockInputCtl, uiDockRxOpt); addDockWidget(Qt::RightDockWidgetArea, uiDockAudio); addDockWidget(Qt::RightDockWidgetArea, uiDockFft); tabifyDockWidget(uiDockFft, uiDockAudio); //addDockWidget(Qt::BottomDockWidgetArea, uiDockIqPlay); /* hide docks that we don't want to show initially */ /** FIXME: Hide them initially but store layout in config **/ // uiDockInputCtl->hide(); // uiDockFft->hide(); //uiDockIqPlay->hide(); /* misc configurations */ //uiDockAudio->setFftRange(0, 8000); // FM /* Add dock widget actions to View menu. By doing it this way all signal/slot connections will be established automagially. */ ui->menu_View->addAction(uiDockInputCtl->toggleViewAction()); ui->menu_View->addAction(uiDockRxOpt->toggleViewAction()); ui->menu_View->addAction(uiDockAudio->toggleViewAction()); ui->menu_View->addAction(uiDockFft->toggleViewAction()); //ui->menu_View->addAction(uiDockIqPlay->toggleViewAction()); ui->menu_View->addSeparator(); ui->menu_View->addAction(ui->mainToolBar->toggleViewAction()); ui->menu_View->addSeparator(); ui->menu_View->addAction(ui->actionFullScreen); /* connect signals and slots */ connect(ui->freqCtrl, SIGNAL(newFrequency(qint64)), this, SLOT(setNewFrequency(qint64))); connect(uiDockInputCtl, SIGNAL(lnbLoChanged(double)), this, SLOT(setLnbLo(double))); connect(uiDockInputCtl, SIGNAL(gainChanged(double)), SLOT(setRfGain(double))); connect(uiDockInputCtl, SIGNAL(freqCorrChanged(int)), this, SLOT(setFreqCorr(int))); connect(uiDockInputCtl, SIGNAL(iqSwapChanged(bool)), this, SLOT(setIqSwap(bool))); connect(uiDockInputCtl, SIGNAL(dcCancelChanged(bool)), this, SLOT(setDcCancel(bool))); connect(uiDockInputCtl, SIGNAL(iqBalanceChanged(bool)), this, SLOT(setIqBalance(bool))); connect(uiDockInputCtl, SIGNAL(ignoreLimitsChanged(bool)), this, SLOT(setIgnoreLimits(bool))); connect(uiDockRxOpt, SIGNAL(filterOffsetChanged(qint64)), this, SLOT(setFilterOffset(qint64))); connect(uiDockRxOpt, SIGNAL(demodSelected(int)), this, SLOT(selectDemod(int))); connect(uiDockRxOpt, SIGNAL(fmMaxdevSelected(float)), this, SLOT(setFmMaxdev(float))); connect(uiDockRxOpt, SIGNAL(fmEmphSelected(double)), this, SLOT(setFmEmph(double))); connect(uiDockRxOpt, SIGNAL(amDcrToggled(bool)), this, SLOT(setAmDcr(bool))); connect(uiDockRxOpt, SIGNAL(agcToggled(bool)), this, SLOT(setAgcOn(bool))); connect(uiDockRxOpt, SIGNAL(agcHangToggled(bool)), this, SLOT(setAgcHang(bool))); connect(uiDockRxOpt, SIGNAL(agcThresholdChanged(int)), this, SLOT(setAgcThreshold(int))); connect(uiDockRxOpt, SIGNAL(agcSlopeChanged(int)), this, SLOT(setAgcSlope(int))); connect(uiDockRxOpt, SIGNAL(agcGainChanged(int)), this, SLOT(setAgcGain(int))); connect(uiDockRxOpt, SIGNAL(agcDecayChanged(int)), this, SLOT(setAgcDecay(int))); connect(uiDockRxOpt, SIGNAL(noiseBlankerChanged(int,bool,float)), this, SLOT(setNoiseBlanker(int,bool,float))); connect(uiDockRxOpt, SIGNAL(sqlLevelChanged(double)), this, SLOT(setSqlLevel(double))); connect(uiDockAudio, SIGNAL(audioGainChanged(float)), this, SLOT(setAudioGain(float))); connect(uiDockAudio, SIGNAL(audioRecStarted(QString)), this, SLOT(startAudioRec(QString))); connect(uiDockAudio, SIGNAL(audioRecStopped()), this, SLOT(stopAudioRec())); connect(uiDockAudio, SIGNAL(audioPlayStarted(QString)), this, SLOT(startAudioPlayback(QString))); connect(uiDockAudio, SIGNAL(audioPlayStopped()), this, SLOT(stopAudioPlayback())); connect(uiDockAudio, SIGNAL(fftRateChanged(int)), this, SLOT(setAudioFftRate(int))); connect(uiDockFft, SIGNAL(fftSizeChanged(int)), this, SLOT(setIqFftSize(int))); connect(uiDockFft, SIGNAL(fftRateChanged(int)), this, SLOT(setIqFftRate(int))); connect(uiDockFft, SIGNAL(fftSplitChanged(int)), this, SLOT(setIqFftSplit(int))); connect(uiDockFft, SIGNAL(fftAvgChanged(double)), this, SLOT(setIqFftAvg(double))); connect(uiDockFft, SIGNAL(resetFftZoom()), ui->plotter, SLOT(resetHorizontalZoom())); connect(uiDockFft, SIGNAL(gotoFftCenter()), ui->plotter, SLOT(moveToCenterFreq())); connect(uiDockFft, SIGNAL(gotoDemodFreq()), ui->plotter, SLOT(moveToDemodFreq())); // restore last session if (!loadConfig(cfgfile, true)) { qDebug() << "No input device found"; if (on_actionIoConfig_triggered() != QDialog::Accepted) { qDebug() << "I/O device configuration cancelled."; configOk = false; } } }
QT_BEGIN_NAMESPACE MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent) : QMainWindow(parent) , m_bookmarkWidget(0) , m_filterCombo(0) , m_toolBarMenu(0) , m_cmdLine(cmdLine) , m_progressWidget(0) , m_qtDocInstaller(0) , m_connectedInitSignals(false) { TRACE_OBJ setToolButtonStyle(Qt::ToolButtonFollowStyle); setDockOptions(dockOptions() | AllowNestedDocks); QString collectionFile; if (usesDefaultCollection()) { MainWindow::collectionFileDirectory(true); collectionFile = MainWindow::defaultHelpCollectionFileName(); } else { collectionFile = cmdLine->collectionFile(); } HelpEngineWrapper &helpEngineWrapper = HelpEngineWrapper::instance(collectionFile); BookmarkManager *bookMarkManager = BookmarkManager::instance(); if (!initHelpDB(!cmdLine->collectionFileGiven())) { qDebug("Fatal error: Help engine initialization failed. " "Error message was: %s\nAssistant will now exit.", qPrintable(HelpEngineWrapper::instance().error())); std::exit(1); } m_centralWidget = new CentralWidget(this); setCentralWidget(m_centralWidget); m_indexWindow = new IndexWindow(this); QDockWidget *indexDock = new QDockWidget(tr("Index"), this); indexDock->setObjectName(QLatin1String("IndexWindow")); indexDock->setWidget(m_indexWindow); addDockWidget(Qt::LeftDockWidgetArea, indexDock); m_contentWindow = new ContentWindow; QDockWidget *contentDock = new QDockWidget(tr("Contents"), this); contentDock->setObjectName(QLatin1String("ContentWindow")); contentDock->setWidget(m_contentWindow); addDockWidget(Qt::LeftDockWidgetArea, contentDock); m_searchWindow = new SearchWidget(helpEngineWrapper.searchEngine()); m_searchWindow->setFont(!helpEngineWrapper.usesBrowserFont() ? qApp->font() : helpEngineWrapper.browserFont()); QDockWidget *searchDock = new QDockWidget(tr("Search"), this); searchDock->setObjectName(QLatin1String("SearchWindow")); searchDock->setWidget(m_searchWindow); addDockWidget(Qt::LeftDockWidgetArea, searchDock); QDockWidget *bookmarkDock = new QDockWidget(tr("Bookmarks"), this); bookmarkDock->setObjectName(QLatin1String("BookmarkWindow")); bookmarkDock->setWidget(m_bookmarkWidget = bookMarkManager->bookmarkDockWidget()); addDockWidget(Qt::LeftDockWidgetArea, bookmarkDock); QDockWidget *openPagesDock = new QDockWidget(tr("Open Pages"), this); openPagesDock->setObjectName(QLatin1String("Open Pages")); OpenPagesManager *openPagesManager = OpenPagesManager::createInstance(this, usesDefaultCollection(), m_cmdLine->url()); openPagesDock->setWidget(openPagesManager->openPagesWidget()); addDockWidget(Qt::LeftDockWidgetArea, openPagesDock); connect(m_centralWidget, SIGNAL(addBookmark(QString, QString)), bookMarkManager, SLOT(addBookmark(QString, QString))); connect(bookMarkManager, SIGNAL(escapePressed()), this, SLOT(activateCurrentCentralWidgetTab())); connect(bookMarkManager, SIGNAL(setSource(QUrl)), m_centralWidget, SLOT(setSource(QUrl))); connect(bookMarkManager, SIGNAL(setSourceInNewTab(QUrl)), openPagesManager, SLOT(createPage(QUrl))); QHelpSearchEngine *searchEngine = helpEngineWrapper.searchEngine(); connect(searchEngine, SIGNAL(indexingStarted()), this, SLOT(indexingStarted())); connect(searchEngine, SIGNAL(indexingFinished()), this, SLOT(indexingFinished())); QString defWindowTitle = tr("Qt Assistant"); setWindowTitle(defWindowTitle); setupActions(); statusBar()->show(); m_centralWidget->connectTabBar(); setupFilterToolbar(); setupAddressToolbar(); const QString windowTitle = helpEngineWrapper.windowTitle(); setWindowTitle(windowTitle.isEmpty() ? defWindowTitle : windowTitle); QByteArray iconArray = helpEngineWrapper.applicationIcon(); if (iconArray.size() > 0) { QPixmap pix; pix.loadFromData(iconArray); QIcon appIcon(pix); qApp->setWindowIcon(appIcon); } else { QIcon appIcon(QLatin1String(":/trolltech/assistant/images/assistant-128.png")); qApp->setWindowIcon(appIcon); } QToolBar *toolBar = addToolBar(tr("Bookmark Toolbar")); toolBar->setObjectName(QLatin1String("Bookmark Toolbar")); bookMarkManager->setBookmarksToolbar(toolBar); // Show the widget here, otherwise the restore geometry and state won't work // on x11. show(); toolBar->hide(); toolBarMenu()->addAction(toolBar->toggleViewAction()); QByteArray ba(helpEngineWrapper.mainWindow()); if (!ba.isEmpty()) restoreState(ba); ba = helpEngineWrapper.mainWindowGeometry(); if (!ba.isEmpty()) { restoreGeometry(ba); } else { tabifyDockWidget(contentDock, indexDock); tabifyDockWidget(indexDock, bookmarkDock); tabifyDockWidget(bookmarkDock, searchDock); contentDock->raise(); const QRect screen = QApplication::desktop()->screenGeometry(); resize(4*screen.width()/5, 4*screen.height()/5); } if (!helpEngineWrapper.hasFontSettings()) { helpEngineWrapper.setUseAppFont(false); helpEngineWrapper.setUseBrowserFont(false); helpEngineWrapper.setAppFont(qApp->font()); helpEngineWrapper.setAppWritingSystem(QFontDatabase::Latin); helpEngineWrapper.setBrowserFont(qApp->font()); helpEngineWrapper.setBrowserWritingSystem(QFontDatabase::Latin); } else { updateApplicationFont(); } updateAboutMenuText(); QTimer::singleShot(0, this, SLOT(insertLastPages())); if (m_cmdLine->enableRemoteControl()) (void)new RemoteControl(this); if (m_cmdLine->contents() == CmdLineParser::Show) showContents(); else if (m_cmdLine->contents() == CmdLineParser::Hide) hideContents(); if (m_cmdLine->index() == CmdLineParser::Show) showIndex(); else if (m_cmdLine->index() == CmdLineParser::Hide) hideIndex(); if (m_cmdLine->bookmarks() == CmdLineParser::Show) showBookmarksDockWidget(); else if (m_cmdLine->bookmarks() == CmdLineParser::Hide) hideBookmarksDockWidget(); if (m_cmdLine->search() == CmdLineParser::Show) showSearch(); else if (m_cmdLine->search() == CmdLineParser::Hide) hideSearch(); if (m_cmdLine->contents() == CmdLineParser::Activate) showContents(); else if (m_cmdLine->index() == CmdLineParser::Activate) showIndex(); else if (m_cmdLine->bookmarks() == CmdLineParser::Activate) showBookmarksDockWidget(); if (!m_cmdLine->currentFilter().isEmpty()) { const QString &curFilter = m_cmdLine->currentFilter(); if (helpEngineWrapper.customFilters().contains(curFilter)) helpEngineWrapper.setCurrentFilter(curFilter); } if (usesDefaultCollection()) QTimer::singleShot(0, this, SLOT(lookForNewQtDocumentation())); else checkInitState(); connect(&helpEngineWrapper, SIGNAL(documentationRemoved(QString)), this, SLOT(documentationRemoved(QString))); connect(&helpEngineWrapper, SIGNAL(documentationUpdated(QString)), this, SLOT(documentationUpdated(QString))); setTabPosition(Qt::AllDockWidgetAreas, QTabWidget::North); GlobalActions::instance()->updateActions(); if (helpEngineWrapper.addressBarEnabled()) showNewAddress(); }
void mainWindow::createDocks() { Monitor = new monitor(); setCentralWidget(Monitor); setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::BottomDockWidgetArea); setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); setDockOptions(QMainWindow::ForceTabbedDocks|QMainWindow::VerticalTabs); ///////// /// Create and dock the Log window /////////////////////////// log = new logWindow(); showStartupMessage(); QDockWidget *log_dock = new QDockWidget(tr("FoldWatcher Log"), this); log_dock->setWidget(log); log_dock->setAllowedAreas(Qt::BottomDockWidgetArea); addDockWidget(Qt::BottomDockWidgetArea, log_dock); ///////// /// Create and dock the FAHLog window /////////////////////////// fahlog_log = new logWindow(); QDockWidget *fahlog_dock = new QDockWidget(tr("FAHlog.txt"), this); fahlog_dock->setWidget(fahlog_log); fahlog_dock->setAllowedAreas(Qt::BottomDockWidgetArea); addDockWidget(Qt::BottomDockWidgetArea, fahlog_dock); ///////// /// Create and dock the Clients' List window /////////////////////////// clients = new clientList(); QDockWidget *clients_dock = new QDockWidget(tr("Clients"), this); clients_dock->setWidget(clients); clients_dock->setAllowedAreas(Qt::BottomDockWidgetArea); addDockWidget(Qt::BottomDockWidgetArea, clients_dock); tabifyDockWidget(clients_dock, log_dock); ///////// /// Create and dock the Information window /////////////////////////// info = new proteinInfo(); QDockWidget *info_dock = new QDockWidget(tr("Protein information"), this); info_dock->setWidget(info); info_dock->setAllowedAreas(Qt::RightDockWidgetArea); addDockWidget(Qt::RightDockWidgetArea, info_dock); ///////// /// Create and dock the Team Stats window /////////////////////////// TeamStats = new teamStats(); QDockWidget *team_dock = new QDockWidget(tr("Team Statistics"), this); team_dock->setWidget(TeamStats); team_dock->setAllowedAreas(Qt::RightDockWidgetArea); addDockWidget(Qt::RightDockWidgetArea, team_dock); ///////// /// Create and dock the Personal Stats window /////////////////////////// PersonalStats = new personalStats(); QDockWidget *personal_dock = new QDockWidget(tr("Personal Statistics"), this); personal_dock->setWidget(PersonalStats); personal_dock->setAllowedAreas(Qt::RightDockWidgetArea); addDockWidget(Qt::RightDockWidgetArea, personal_dock); ///////// /// Create and dock the Analog Clock window /////////////////////////// analogClock = new AnalogClock(); QDockWidget *clock_dock = new QDockWidget(tr("Clock"), this); clock_dock->setWidget(analogClock); clock_dock->setAllowedAreas(Qt::LeftDockWidgetArea); addDockWidget(Qt::LeftDockWidgetArea, clock_dock); //////// /// Tabify those docks! (at last...) //////////////////////////// // Right widget area tabifyDockWidget(info_dock, personal_dock); tabifyDockWidget(personal_dock, team_dock); // Bottom widget area tabifyDockWidget(clients_dock, fahlog_dock); tabifyDockWidget(fahlog_dock, log_dock); ///////// /// Create the "View" Menu /////////////////////////// QMenu *logsMenu = new QMenu(tr("Logs")); QMenu *statsMenu = new QMenu(tr("Stats")); QMenu *widgetsMenu = new QMenu(tr("Widgets")); logsMenu->addAction(log_dock->toggleViewAction()); logsMenu->addAction(fahlog_dock->toggleViewAction()); statsMenu->addAction(personal_dock->toggleViewAction()); statsMenu->addAction(team_dock->toggleViewAction()); widgetsMenu->addAction(clock_dock->toggleViewAction()); menuView->addMenu(logsMenu); menuView->addMenu(statsMenu); menuView->addMenu(widgetsMenu); menuView->addSeparator(); menuView->addAction(clients_dock->toggleViewAction()); menuView->addAction(info_dock->toggleViewAction()); ///////// /// Create the Toggle-View Toolbar /////////////////////////// toolbarLogs->addAction(clients_dock->toggleViewAction()); toolbarLogs->addSeparator(); toolbarLogs->addAction(log_dock->toggleViewAction()); toolbarLogs->addAction(fahlog_dock->toggleViewAction()); toolbarLogs->addSeparator(); toolbarLogs->addAction(info_dock->toggleViewAction()); toolbarLogs->addAction(personal_dock->toggleViewAction()); toolbarLogs->addAction(team_dock->toggleViewAction()); show(); }
void MainWindow::init() { // Log connect(this, SIGNAL(logUpdated(QString)), this, SLOT(updateLog(QString))); enableCtrls(false); for (int i = DOCK_SNAP; i <= DOCK_PCB; i ++) initSnap(i); for (int i = DOCK_HISTORY; i <= DOCK_COMMAND; i ++) initHistory(i); ipsUI->init(); // must call optUtils->init() after win, before show() optUtils->init(); #ifdef Q_OS_WIN //fixme: win font hack if (language.startsWith("zh_") || language.startsWith("ja_")) { QFont font; font.setFamily("MS Gothic"); font.setFixedPitch(true); tbCommand->setFont(font); // tbCommand->setLineWrapMode(QTextEdit::NoWrap); } //rearrange docks addDockWidget(static_cast<Qt::DockWidgetArea>(Qt::LeftDockWidgetArea), m1UI); tabifyDockWidget(dwFolderList, m1UI); #endif /* Q_OS_WIN */ tabifyDockWidget(dwHistory, dwGUILog); //hide non popular docks by default dwGUILog->hide(); for (int i = DOCK_SNAP; i < DOCK_LAST; i ++) { if (i != DOCK_SNAP && i != DOCK_TITLE && i != DOCK_HISTORY && i != DOCK_MAMEINFO) dockCtrls[i]->hide(); } dwFolderList->raise(); dockCtrls[DOCK_SNAP]->raise(); dockCtrls[DOCK_HISTORY]->raise(); /* test ini readable/writable */ // mkdir for individual game settings QDir().mkpath(CFG_PREFIX); QString warnings = ""; QFile iniFile(CFG_PREFIX + "mamepgui" INI_EXT); if (!iniFile.open(QIODevice::ReadWrite | QFile::Text)) warnings.append(QFileInfo(iniFile).absoluteFilePath()); iniFile.close(); if (warnings.size() > 0) { poplog("Current user has no sufficient privilege to read/write:\n" + warnings + "\n\ncouldn't save GUI settings."); //quit the program close(); return; } loadGuiSettings(); if (!validateMameBinary()) { //quit the program close(); return; } QIcon mamepIcon(":/res/mamep_256.png"); qApp->setWindowIcon(mamepIcon); trayIcon = new QSystemTrayIcon(this); trayIcon->setIcon(mamepIcon); // must init app style before background if (gui_style.isEmpty()) gui_style = pGuiSettings->value("gui_style").toString(); QStringList styles = QStyleFactory::keys(); QActionGroup *styleActions = new QActionGroup(this); foreach (QString style, styles) { QAction* act = menuGUIStyle->addAction(style); act->setCheckable(true); if (gui_style == style) act->setChecked(true); styleActions->addAction(act); connect(act, SIGNAL(triggered()), this, SLOT(setGuiStyle())); }
MainWindow::MainWindow() { setWindowTitle( "BRDF Explorer" ); // create the parameter window paramWnd = new ParameterWindow(); viewer3D = new Plot3DWidget( this->windowHandle(), paramWnd->getBRDFList() ); connect( paramWnd, SIGNAL(incidentDirectionChanged(float,float)), viewer3D, SLOT(incidentDirectionChanged(float,float)) ); connect( paramWnd, SIGNAL(graphParametersChanged(bool,bool)), viewer3D, SLOT(graphParametersChanged(bool,bool)) ); connect( paramWnd, SIGNAL(brdfListChanged(std::vector<brdfPackage>)), viewer3D, SLOT(brdfListChanged(std::vector<brdfPackage>)) ); plot3D = new ViewerWindow( viewer3D ); cartesianThetaV = new PlotCartesianWindow( paramWnd, THETA_V_PLOT ); cartesianThetaH = new PlotCartesianWindow( paramWnd, THETA_H_PLOT ); cartesianThetaD = new PlotCartesianWindow( paramWnd, THETA_D_PLOT ); cartesianAlbedo = new PlotCartesianWindow( paramWnd, ALBEDO_PLOT ); viewer2D = new PlotPolarWidget( this->windowHandle(), paramWnd->getBRDFList() ); connect( paramWnd, SIGNAL(incidentDirectionChanged(float,float)), viewer2D, SLOT(incidentDirectionChanged(float,float)) ); connect( paramWnd, SIGNAL(graphParametersChanged(bool,bool)), viewer2D, SLOT(graphParametersChanged(bool,bool)) ); connect( paramWnd, SIGNAL(brdfListChanged(std::vector<brdfPackage>)), viewer2D, SLOT(brdfListChanged(std::vector<brdfPackage>)) ); polarPlot = new ViewerWindow(viewer2D); viewerSphere = new LitSphereWindow( paramWnd ); ibl = new IBLWindow( paramWnd ); imageSlice = new ImageSliceWindow( paramWnd ); ShowingDockWidget* Plot3DWidget = new ShowingDockWidget("3D Plot", this); Plot3DWidget->setWidget( plot3D ); addDockWidget( Qt::RightDockWidgetArea, Plot3DWidget ); ShowingDockWidget* paramsWidget = new ShowingDockWidget(tr("BRDF Parameters"), this); paramsWidget->setWidget( paramWnd ); addDockWidget( Qt::LeftDockWidgetArea, paramsWidget ); ShowingDockWidget* PlotPolarWidget = new ShowingDockWidget(tr("Polar Plot"), this); PlotPolarWidget->setWidget( polarPlot ); addDockWidget( Qt::RightDockWidgetArea, PlotPolarWidget ); ShowingDockWidget* thetaVWidget = new ShowingDockWidget(tr("Theta V"), this); thetaVWidget->setWidget( cartesianThetaV ); addDockWidget( Qt::RightDockWidgetArea, thetaVWidget ); ShowingDockWidget* thetaHWidget = new ShowingDockWidget(tr("Theta H"), this); thetaHWidget->setWidget( cartesianThetaH ); addDockWidget( Qt::RightDockWidgetArea, thetaHWidget ); ShowingDockWidget* thetaDWidget = new ShowingDockWidget(tr("Theta D"), this); thetaDWidget->setWidget( cartesianThetaD ); addDockWidget( Qt::RightDockWidgetArea, thetaDWidget ); ShowingDockWidget* albedoWidget = new ShowingDockWidget(tr("Albedo"), this); albedoWidget->setWidget( cartesianAlbedo ); addDockWidget( Qt::RightDockWidgetArea, albedoWidget ); tabifyDockWidget( Plot3DWidget, albedoWidget); tabifyDockWidget( albedoWidget, thetaHWidget); tabifyDockWidget( thetaHWidget, thetaDWidget ); tabifyDockWidget( thetaDWidget, thetaVWidget ); tabifyDockWidget( thetaVWidget, PlotPolarWidget ); ShowingDockWidget* litSphereWidget = new ShowingDockWidget(tr("Lit Sphere"), this); litSphereWidget->setWidget( viewerSphere ); addDockWidget( Qt::RightDockWidgetArea, litSphereWidget ); ShowingDockWidget* imageSliceWidget = new ShowingDockWidget(tr("Image Slice"), this); imageSliceWidget->setWidget( imageSlice ); addDockWidget( Qt::RightDockWidgetArea, imageSliceWidget ); ShowingDockWidget* iblWidget = new ShowingDockWidget(tr("Lit Object"), this); iblWidget->setWidget( ibl ); addDockWidget( Qt::RightDockWidgetArea, iblWidget ); tabifyDockWidget( imageSliceWidget, iblWidget ); tabifyDockWidget( iblWidget, litSphereWidget ); //tabifyDockWidget( litSphereWidget, imageSliceWidget ); setCorner( Qt::BottomLeftCorner, Qt::LeftDockWidgetArea ); setCorner( Qt::BottomRightCorner, Qt::RightDockWidgetArea ); setCentralWidget( new QWidget() ); // dummy central widget centralWidget()->hide(); QMenu* fileMenu = menuBar()->addMenu(tr("&File")); QAction* openBRDF = fileMenu->addAction( "Open BRDF..." ); openBRDF->setShortcut( QKeySequence("Ctrl+O") ); connect( openBRDF, SIGNAL(triggered()), paramWnd, SLOT(openBRDFFromFile()) ); fileMenu->addAction( "&Quit", this, SLOT(close()), QKeySequence("Ctrl+Q") ); QMenu* utilMenu = menuBar()->addMenu(tr("&Utilities")); QAction* reloadAuxShaders = utilMenu->addAction( "Reload Auxiliary Shaders" ); connect( reloadAuxShaders, SIGNAL(triggered()), ibl->getWidget(), SLOT(reloadAuxShaders()) ); QMenu* helpMenu = menuBar()->addMenu(tr("&Help")); QAction* helpAbout = helpMenu->addAction( "About..." ); connect( helpAbout, SIGNAL(triggered()), this, SLOT(about()) ); // make sure everything has the correct incident direction param values at the start paramWnd->emitIncidentDirectionChanged(); }