void GCF::Components::MainWindow::showChildWidget(QWidget* parent, QWidget* child) { if(!parent || !child) return; if(parent == d->workspace) { d->workspace->setCurrentWidget(child); } else { QList<QDockWidget*> dockWidgets = d->dockWidgetMap.values(); QDockWidget* dw = qobject_cast<QDockWidget*>(parent); if(dw && dockWidgets.contains(dw)) { QTabWidget* tw = qobject_cast<QTabWidget*>(dw->widget()); int index = tw->indexOf(child); if(index < 0) child->show(); else { child->setEnabled(true); tw->setCurrentWidget(child); } } } }
void View::bringToFront() { if(isManagedByMainWindow_){ QTabWidget* tab = 0; for(QWidget* widget = parentWidget(); widget; widget = widget->parentWidget()){ if(tab = dynamic_cast<QTabWidget*>(widget)){ tab->setCurrentWidget(this); } } } }
void View::bringToFront() { if(viewArea_){ QTabWidget* tab = 0; for(QWidget* widget = parentWidget(); widget; widget = widget->parentWidget()){ if(tab = dynamic_cast<QTabWidget*>(widget)){ tab->setCurrentWidget(this); } } } }
void PluginTextEditor::openFile(QString file) { Project *project = IPlatform::getInstance()->getProjectManager()->getProject(); if(project) { QTabWidget *tabwidget = IPlatform::getInstance()->getWindowManager()->getWindow()->getTabWidget(); QTextEdit *textedit = new QTextEdit(tabwidget); textedit->setText(Backend::readFile(project->getLocation() + file)); tabwidget->addTab(textedit, file); tabwidget->setCurrentWidget(textedit); } }
classeMinuterieRouge::classeMinuterieRouge(QWidget* boite) : boiteRouge(boite) { QWidget *page = boiteRouge->parentWidget(); if(page != 0 && page->parentWidget() != 0) { QTabWidget *onglet = qobject_cast <QTabWidget*>(page->parentWidget()->parentWidget()); if(onglet != 0 && onglet->currentWidget() != page) onglet->setCurrentWidget(page); } QPalette palette(boiteRouge->palette()); palette.setColor(QPalette::Base, QColor::fromRgb(0xff6666)); boiteRouge->setPalette(palette); setSingleShot(true); start(500); }
StartDialog::StartDialog(MainWindow *mainWindow, ProjectManager *projectManager) : ManagedClosableDialog(mainWindow, false) , mMainWindow(mainWindow) , mProjectManager(projectManager) { setMinimumSize(mMinimumSize); QTabWidget *tabWidget = new QTabWidget; RecentProjectsListWidget *recentProjects = new RecentProjectsListWidget(this); tabWidget->addTab(recentProjects, tr("&Recent projects")); SuggestToCreateDiagramWidget *diagrams = new SuggestToCreateDiagramWidget(mMainWindow, this); tabWidget->addTab(diagrams, tr("&New project with diagram")); if (recentProjects->count() == 0) { tabWidget->setCurrentWidget(diagrams); } QCommandLinkButton *quitLink = new QCommandLinkButton(tr("&Quit QReal")); QCommandLinkButton *openLink = new QCommandLinkButton(tr("&Open existing project")); QHBoxLayout *commandLinksLayout = new QHBoxLayout; commandLinksLayout->addWidget(openLink); commandLinksLayout->addWidget(quitLink); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(tabWidget); mainLayout->addLayout(commandLinksLayout); setLayout(mainLayout); setWindowTitle(tr("Start page")); connect(openLink, SIGNAL(clicked()), this, SLOT(openExistingProject())); connect(quitLink, SIGNAL(clicked()), this, SLOT(exitApp())); connect(recentProjects, SIGNAL(userDataSelected(QString)), this, SLOT(openRecentProject(QString))); connect(diagrams, SIGNAL(userDataSelected(QString)), this, SLOT(createProjectWithDiagram(QString))); }
KawaiiGL::KawaiiGL(QWidget *parent) : QMainWindow(parent), m_kView(NULL), m_edDlg(NULL), m_doc(NULL) { ui.setupUi(this); m_sett.loadFromReg(); connect(&m_sett, SIGNAL(changed()), &m_sett, SLOT(storeToReg())); setWindowTitle("KawaiiGL"); show(); // needed becase we're creating display lists in the c'tor. QDir::setCurrent(EXAMPLES_DIR); // we're reading the config and textures from there m_progMenu = new QMenu(this); m_modelsMenu = new QMenu(this); m_doc = new Document(this); // adds to the menus m_progMenu->addSeparator(); QAction *loadFromFileAct = m_progMenu->addAction("From file..."); connect(loadFromFileAct, SIGNAL(triggered(bool)), m_doc, SLOT(loadProgramFile())); m_kView = new T2GLWidget(this, m_doc); setCentralWidget(m_kView); m_edDlg = new KwEdit(this, m_sett.disp, m_doc, m_kView); // need the view for tracking vec2s m_edDlg->show(); m_edDlg->move(pos() + QPoint(width() - 20, 30)); m_control = new MyDialog(this); QBoxLayout *control_l = new QVBoxLayout(); m_control->setLayout(control_l); control_l->setMargin(0); control_l->setSpacing(0); QTabWidget *tabs = new QTabWidget(); control_l->addWidget(tabs); m_contDlg = new ControlPanel(&m_sett.disp, this, m_doc, m_kView); tabs->addTab(m_contDlg, "Config"); m_browse = new ProjBrowser(this, m_doc); tabs->addTab(m_browse, "Browser"); tabs->setCurrentWidget(m_browse); //tabs->setCurrentIndex(m_sett.gui.configWindowTab); tabs->setCurrentIndex(0); m_control->show(); m_control->move(pos() + QPoint(-30, 20)); m_control->resize(100, 100); // make it as small as possible m_doc->model()->m_errAct = new ErrorHighlight(m_edDlg); connect(m_kView, SIGNAL(message(const QString&)), this, SLOT(message(const QString&))); connect(m_edDlg, SIGNAL(changedModel(DocSrc*)), m_doc, SLOT(calc(DocSrc*))); connect(m_edDlg, SIGNAL(updateShaders()), m_doc, SLOT(compileShaders())); // connect(m_kView, SIGNAL(decompProgChanged(const QString&)), m_edDlg, SLOT(curChanged(const QString&))); connect(m_doc, SIGNAL(loaded()), m_kView, SLOT(newModelLoaded())); //connect(m_doc, SIGNAL(loaded()), m_edDlg, SLOT(doVarsUpdate())); // parsed new text. vars defs may be wrong connect(m_doc, SIGNAL(modelChanged()), m_kView, SLOT(updateGL())); connect(m_doc, SIGNAL(progChanged()), m_kView, SLOT(redoFrameBuffers())); connect(m_kView, SIGNAL(changedFBOs()), m_contDlg, SLOT(updateTexEdits())); connect(m_kView, SIGNAL(makeGradientTex(int, const QString&)), m_contDlg, SLOT(externalGradient(int, const QString&))); connect(m_doc, SIGNAL(progParamChanged()), m_kView, SLOT(updateGL())); connect(m_doc, SIGNAL(addModelLine(const QString&)), m_edDlg, SLOT(addModelLine(const QString&))); connect(m_contDlg, SIGNAL(changedRend()), m_doc, SLOT(calcNoParse())); // passes update connect(m_contDlg, SIGNAL(changedFont()), m_kView, SLOT(updateCoordFont())); connect(m_contDlg, SIGNAL(doUpdate()), m_kView, SLOT(updateGL())); // passes update connect(m_contDlg, SIGNAL(resetView()), m_kView, SLOT(resetState())); connect(m_contDlg, SIGNAL(resetLight()), m_kView, SLOT(resetLight())); connect(m_contDlg, SIGNAL(changedTexFile(int)), m_kView, SLOT(setTexture(int))); // connect(m_contDlg, SIGNAL(reassertTex(int)), m_kView, SLOT(rebindTexture(int))); connect(m_contDlg, SIGNAL(saveMesh()), m_doc, SLOT(calcSave())); connect(m_browse, SIGNAL(openDocText(DocElement*)), m_edDlg, SLOT(addPage(DocElement*)) ); connect(m_browse, SIGNAL(openPassConf(DocElement*)), m_edDlg, SLOT(addPage(DocElement*)) ); connect(m_browse, SIGNAL(commitGuiData()), m_edDlg, SLOT(commitAll())); connect(m_doc, SIGNAL(goingToClearProg()), m_edDlg, SLOT(clearingProg())); connect(m_doc, SIGNAL(didReadProg(ProgKeep*)), m_edDlg, SLOT(readProg(ProgKeep*)) ); connect(m_doc, SIGNAL(didReadProg(ProgKeep*)), m_browse, SLOT(readProg(ProgKeep*)) ); connect(m_doc, SIGNAL(didReadModel(DocSrc*)), m_browse, SLOT(readModel()) ); connect(m_doc, SIGNAL(didReadModel(DocSrc*)), m_edDlg, SLOT(readModel(DocSrc*))); connect(&m_sett.disp.bVtxNormals, SIGNAL(changed()), m_doc, SLOT(calcNoParse())); // TBD - this is bad. connect(m_contDlg->ui.clipSlider, SIGNAL(valueChanged(int)), m_kView, SLOT(setClipValue(int))); m_kView->setContextMenuPolicy(Qt::ActionsContextMenu); QPushButton *viewBot = new QPushButton("View"); viewBot->setMaximumSize(60, 19); statusBar()->addPermanentWidget(viewBot); QMenu *view = new QMenu("View"); viewBot->setMenu(view); QPushButton *fpsBot = new QPushButton(QIcon(":/images/arrow-circle.png"), QString()); fpsBot->setMaximumSize(20, 19); statusBar()->addPermanentWidget(fpsBot); (new CheckBoxIn(&m_sett.disp.fullFps, fpsBot))->reload(); QCheckBox *vSyncBox = new QCheckBox("vSync"); vSyncBox->setMaximumHeight(19); statusBar()->addPermanentWidget(vSyncBox); (new CheckBoxIn(&m_sett.disp.vSync, vSyncBox))->reload(); QAction *confVis = new QAction("Display", view); view->addAction(confVis); m_control->connectAction(confVis); QAction *editVis = new QAction("Edit", view); view->addAction(editVis); m_edDlg->connectAction(editVis); m_kView->connectedInit(); processCmdArgs(); }
StartDialog::StartDialog(MainWindow &mainWindow, ProjectManager &projectManager) : QDialog(&mainWindow, false) , mMainWindow(mainWindow) , mProjectManager(projectManager) { setMinimumSize(mMinimumSize); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); QTabWidget *tabWidget = new QTabWidget; RecentProjectsListWidget *recentProjects = new RecentProjectsListWidget(this); tabWidget->addTab(recentProjects, tr("&Recent projects")); Id const theOnlyDiagram = mMainWindow.editorManager().theOnlyDiagram(); if (theOnlyDiagram.isNull()) { SuggestToCreateDiagramWidget *diagrams = new SuggestToCreateDiagramWidget(&mMainWindow, this); tabWidget->addTab(diagrams, tr("&New project with diagram")); connect(diagrams, SIGNAL(userDataSelected(QString)), this, SLOT(createProjectWithDiagram(QString))); if (recentProjects->count() == 0) { tabWidget->setCurrentWidget(diagrams); } } QCommandLinkButton *openIDLink = new QCommandLinkButton(tr("&Open interpreted diagram")); QCommandLinkButton *createIDLink = new QCommandLinkButton(tr("&Create interpreted diagram")); QHBoxLayout *openIDLinkLayout = new QHBoxLayout; openIDLinkLayout->addWidget(openIDLink); mInterpreterButton = openIDLink; QHBoxLayout *createIDLinkLayout = new QHBoxLayout; createIDLinkLayout->addWidget(createIDLink); mCreateInterpreterButton = createIDLink; QHBoxLayout *commandLinksLayout = new QHBoxLayout; if (theOnlyDiagram != Id()) { Id const editor = mMainWindow.editorManager().editors()[0]; QString const diagramIdString = mMainWindow.editorManager().diagramNodeNameString(editor, theOnlyDiagram); QSignalMapper *newProjectMapper = new QSignalMapper(this); QCommandLinkButton *newLink = createCommandButton(tr("New project") , newProjectMapper, SLOT(map()), QKeySequence::New); newProjectMapper->setMapping(newLink, diagramIdString); connect(newProjectMapper, SIGNAL(mapped(QString)), this, SLOT(createProjectWithDiagram(QString))); commandLinksLayout->addWidget(newLink); } commandLinksLayout->addWidget(createCommandButton(tr("Open existing project") , this, SLOT(openExistingProject()), QKeySequence::Open)); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(tabWidget); mainLayout->addLayout(openIDLinkLayout); mainLayout->addLayout(createIDLinkLayout); mainLayout->addLayout(commandLinksLayout); setLayout(mainLayout); setWindowTitle(tr("Start page")); connect(openIDLink, SIGNAL(clicked()), this, SLOT(openInterpretedDiagram())); connect(createIDLink, SIGNAL(clicked()), this, SLOT(createInterpretedDiagram())); connect(recentProjects, SIGNAL(userDataSelected(QString)), this, SLOT(openRecentProject(QString))); connect(this, SIGNAL(rejected()), this, SLOT(exitApp())); }
WpEditDialog::WpEditDialog(QWidget *parent, Waypoint *wp ) : QWidget( parent ) { setWindowFlags( Qt::Tool ); setWindowModality( Qt::WindowModal ); setAttribute(Qt::WA_DeleteOnClose); if( _globalMainWindow ) { // Resize the window to the same size as the main window has. That will // completely hide the parent window. resize( _globalMainWindow->size() ); } if( wp == 0 ) { setWindowTitle(tr("New Waypoint")); m_oldName = ""; } else { setWindowTitle(tr("Edit Waypoint")); m_oldName = wp->name; } m_wp = wp; QTabWidget* tabWidget = new QTabWidget(this); // Put all pages into a scroll area. Needed by Maemo Qt, if virtual // keyboard is pop up. QScrollArea* pgArea = new QScrollArea( tabWidget ); pgArea->setWidgetResizable( true ); pgArea->setFrameStyle( QFrame::NoFrame ); WpEditDialogPageGeneral *pageG = new WpEditDialogPageGeneral(this); pgArea->setWidget( pageG ); tabWidget->addTab( pgArea, tr("General") ); #ifdef QSCROLLER QScroller::grabGesture( pgArea->viewport(), QScroller::LeftMouseButtonGesture ); #endif #ifdef QTSCROLLER QtScroller::grabGesture( pgArea->viewport(), QtScroller::LeftMouseButtonGesture ); #endif QScrollArea* paArea = new QScrollArea( tabWidget ); paArea->setWidgetResizable( true ); paArea->setFrameStyle( QFrame::NoFrame ); WpEditDialogPageAero *pageA = new WpEditDialogPageAero(this); paArea->setWidget( pageA ); tabWidget->addTab( paArea, tr("Aero") ); #ifdef QSCROLLER QScroller::grabGesture( paArea->viewport(), QScroller::LeftMouseButtonGesture ); #endif #ifdef QTSCROLLER QtScroller::grabGesture( paArea->viewport(), QtScroller::LeftMouseButtonGesture ); #endif QScrollArea* pcArea = new QScrollArea( tabWidget ); pcArea->setWidgetResizable( true ); pcArea->setFrameStyle( QFrame::NoFrame ); m_comment = new QTextEdit(this); m_comment->setWordWrapMode(QTextOption::WordWrap); Qt::InputMethodHints imh = (m_comment->inputMethodHints() | Qt::ImhNoPredictiveText); m_comment->setInputMethodHints(imh); pcArea->setWidget( m_comment ); tabWidget->addTab( pcArea, tr("Comment") ); #ifdef QSCROLLER QScroller::grabGesture( pcArea->viewport(), QScroller::LeftMouseButtonGesture ); #endif #ifdef QTSCROLLER QtScroller::grabGesture( pcArea->viewport(), QtScroller::LeftMouseButtonGesture ); #endif connect(this, SIGNAL(load(Waypoint *)), pageG, SLOT(slot_load(Waypoint *))); connect(this, SIGNAL(load(Waypoint *)), pageA, SLOT(slot_load(Waypoint *))); connect(this, SIGNAL(save(Waypoint *)), pageG, SLOT(slot_save(Waypoint *))); connect(this, SIGNAL(save(Waypoint *)), pageA, SLOT(slot_save(Waypoint *))); // Add ok and cancel buttons QPushButton *cancel = new QPushButton; cancel->setIcon(QIcon(GeneralConfig::instance()->loadPixmap("cancel.png"))); cancel->setIconSize(QSize(Layout::getButtonSize(12), Layout::getButtonSize(12))); cancel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::QSizePolicy::Preferred); QPushButton *ok = new QPushButton; ok->setIcon(QIcon(GeneralConfig::instance()->loadPixmap("ok.png"))); ok->setIconSize(QSize(Layout::getButtonSize(12), Layout::getButtonSize(12))); ok->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::QSizePolicy::Preferred); connect(ok, SIGNAL(clicked()), this, SLOT(accept())); connect(cancel, SIGNAL(clicked()), this, SLOT(close())); QVBoxLayout *buttonBox = new QVBoxLayout; buttonBox->setSpacing(0); buttonBox->addStretch(2); buttonBox->addWidget(cancel, 1); buttonBox->addSpacing(30); buttonBox->addWidget(ok, 1); buttonBox->addStretch(2); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(tabWidget); mainLayout->addLayout(buttonBox); setLayout(mainLayout); tabWidget->setCurrentWidget(pageG); // load waypoint data into tabulator widgets loadWaypointData(); }
int drv_tabwidget(int drvid, void *a0, void* a1, void* a2, void* a3, void* a4, void* a5, void* a6, void* a7, void* a8, void* a9) { handle_head* head = (handle_head*)a0; QTabWidget *self = (QTabWidget*)head->native; switch (drvid) { case TABWIDGET_INIT: { drvNewObj(a0,new QTabWidget); break; } case TABWIDGET_ADDTAB: { self->addTab(drvGetWidget(a1),drvGetString(a2)); break; } case TABWIDGET_CLEAR: { self->clear(); break; } case TABWIDGET_COUNT: { drvSetInt(a1,self->count()); break; } case TABWIDGET_CURRENTINDEX: { drvSetInt(a1,self->currentIndex()); break; } case TABWIDGET_CURRENTWIDGET: { drvSetHandle(a1,self->currentWidget()); break; } case TABWIDGET_SETCURRENTINDEX: { self->setCurrentIndex(drvGetInt(a1)); break; } case TABWIDGET_SETCURRENTWIDGET: { self->setCurrentWidget(drvGetWidget(a1)); break; } case TABWIDGET_INDEXOF: { drvSetInt(a2,self->indexOf(drvGetWidget(a1))); break; } case TABWIDGET_INSERTTAB: { self->insertTab(drvGetInt(a1),drvGetWidget(a2),drvGetString(a3)); break; } case TABWIDGET_REMOVETAB: { self->removeTab(drvGetInt(a1)); break; } case TABWIDGET_SETTABTEXT: { self->setTabText(drvGetInt(a1),drvGetString(a2)); break; } case TABWIDGET_SETTABTOOLTIP: { self->setTabToolTip(drvGetInt(a1),drvGetString(a2)); break; } case TABWIDGET_TABTEXT: { drvSetString(a2,self->tabText(drvGetInt(a1))); break; } case TABWIDGET_TABTOOLTIP: { drvSetString(a2,self->tabToolTip(drvGetInt(a1))); break; } case TABWIDGET_WIDGETOF: { drvSetHandle(a2,self->widget(drvGetInt(a1))); break; } case TABWIDGET_ONCURRENTCHANGED: { QObject::connect(self,SIGNAL(currentChanged(int)),drvNewSignal(self,a1,a2),SLOT(call(int))); break; } default: return 0; } return 1; }