TermWidget::TermWidget(const QString & wdir, const QString & shell, QWidget * parent) : QWidget(parent) { m_border = palette().color(QPalette::Window); m_term = new TermWidgetImpl(wdir, shell, this); setFocusProxy(m_term); m_layout = new QVBoxLayout; setLayout(m_layout); m_layout->addWidget(m_term); propertiesChanged(); connect(m_term, SIGNAL(finished()), this, SIGNAL(finished())); connect(m_term, SIGNAL(splitHorizontal()), this, SLOT(term_splitHorizontal())); connect(m_term, SIGNAL(splitVertical()), this, SLOT(term_splitVertical())); connect(m_term, SIGNAL(splitCollapse()), this, SLOT(term_splitCollapse())); connect(m_term, SIGNAL(termGetFocus()), this, SLOT(term_termGetFocus())); connect(m_term, SIGNAL(termLostFocus()), this, SLOT(term_termLostFocus())); }
QtSE::QtSE( QWidget *parent ) : QMainWindow( parent ) { // Make this first so we can start intercepting messages ASAP coutEdit = new VLogger( NULL ); std::cout << "test cout" << std::endl; std::cerr << "test cerr" << std::endl; std::clog << "test clog" << std::endl; //g_coutList = new QListWidget( NULL ); activeProjectItem = NULL; //connect( qApp , SIGNAL(focusChanged(QWidget*,QWidget*)) , this , SLOT(focusChanged(QWidget*,QWidget*)) ); menuFile = this->menuBar()->addMenu( "File" ); actionSave = menuFile->addAction( "Open" , this , SLOT(open()) , QKeySequence( Qt::CTRL | Qt::Key_O ) ); actionSave = menuFile->addAction( "Save" , this , SLOT(save()) , QKeySequence( Qt::CTRL | Qt::Key_S ) ); menuFile->addSeparator(); actionQuit = menuFile->addAction( "Quit" , this , SLOT(close()) ); menuView = this->menuBar()->addMenu( "View" ); actionSplitHorizontally = menuView->addAction( "Split Horizontal" , this , SLOT(splitHorizontally()) ); actionSplitVertically = menuView->addAction( "Split Vertical" , this , SLOT(splitVertically()) ); actionSplitCollapse = menuView->addAction( "Collapse" , this , SLOT(splitCollapse()) ); menuHelp = this->menuBar()->addMenu( "Help" ); actionAbout = menuHelp->addAction( "About" , this , SLOT(about()) ); projectTree = new QTreeWidget( NULL ); projectTree->header()->setStretchLastSection( true ); projectTree->header()->setHidden( true ); projectTree->setContextMenuPolicy( Qt::CustomContextMenu ); connect( projectTree , SIGNAL(customContextMenuRequested(QPoint)) , this , SLOT(projectTreeContextMenu(QPoint)) ); fsProjectTree = new QTreeWidget( NULL ); fsProjectTree->header()->setStretchLastSection( true ); fsProjectTree->header()->setHidden( true ); fsProjectTree->setContextMenuPolicy( Qt::CustomContextMenu ); connect( fsProjectTree , SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)) , this , SLOT(fsProjectTreeItemDoubleClicked(QTreeWidgetItem*,int)) ); connect( fsProjectTree , SIGNAL(customContextMenuRequested(QPoint)) , this , SLOT(fsProjectTreeContextMenu(QPoint)) ); viewWidget = new VGLView( NULL ); //CProjectTreeItem *dummyProject = new CProjectTreeItem( CProjectTreeItem::invalid , projectTree , QStringList( "testProject" ) ); QTreeWidget *dummyProject = projectTree; CProjectTreeItem *dummyStage = new CProjectTreeItem( CProjectTreeItem::stage , dummyProject , QStringList( "Stages" ) ); CProjectTreeItem *dummyStage1 = new CProjectTreeItem( CProjectTreeItem::invalid , dummyStage , QStringList( "Stage 1" ) ); CProjectTreeItem *dummyFB = new CProjectTreeItem( CProjectTreeItem::framebuffer , dummyProject , QStringList( "Framebuffers" ) ); CProjectTreeItem *dummyFB1 = new CProjectTreeItem( CProjectTreeItem::invalid , dummyFB , QStringList( "Framebuffer 1" ) ); CProjectTreeItem *dummyShader = new CProjectTreeItem( CProjectTreeItem::shader , dummyProject , QStringList( "Shaders" ) ); CProjectTreeItem *dummyShader1 = new CProjectTreeItem( CProjectTreeItem::invalid , dummyShader , QStringList( "Shader 1" ) ); CProjectTreeItem *dummyModel = new CProjectTreeItem( CProjectTreeItem::model , dummyProject , QStringList( "Models" ) ); CProjectTreeItem *dummyModel1 = new CProjectTreeItem( CProjectTreeItem::invalid , dummyModel , QStringList( "Model 1" ) ); CProjectTreeItem *dummyTexture = new CProjectTreeItem( CProjectTreeItem::texture , dummyProject , QStringList( "Textures" ) ); CProjectTreeItem *dummyTexture1 = new CProjectTreeItem( CProjectTreeItem::invalid , dummyTexture , QStringList( "Texture 1" ) ); projectTree->expandAll(); itemsTab = new QTabWidget( NULL ); itemsTab->addTab( projectTree , "Project" ); itemsTab->addTab( fsProjectTree , "Filesystem" ); itemsTab->setTabPosition( QTabWidget::East ); itemsTab->setTabsClosable( false ); itemsTab->setContextMenuPolicy( Qt::CustomContextMenu ); connect( itemsTab , SIGNAL(customContextMenuRequested(QPoint)) , this , SLOT(itemsTabTreeContextMenu(QPoint)) ); viewSplitter = new QSplitter( Qt::Vertical , NULL ); viewSplitter->addWidget( viewWidget ); viewSplitter->setStretchFactor( 0 , 1 ); viewSplitter->addWidget( itemsTab ); viewSplitter->setStretchFactor( 1 , 4 ); tabArea = new VTabWidgetArea(); connect( tabArea , SIGNAL(widgetDeleted(QWidget*)) , this , SLOT(tabWidgetDeleted(QWidget*)) ); editSplitter = new QSplitter( Qt::Vertical , NULL ); editSplitter->addWidget( tabArea ); editSplitter->setStretchFactor( 0 , 4 ); editSplitter->addWidget( coutEdit ); editSplitter->setStretchFactor( 1 , 1 ); windowSplitter = new QSplitter( NULL ); windowSplitter->addWidget( viewSplitter ); windowSplitter->setStretchFactor( 0 , 4 ); windowSplitter->addWidget( editSplitter ); windowSplitter->setStretchFactor( 1 , 1 ); this->setCentralWidget( windowSplitter ); // Test open(); this->setWindowTitle( "QtSE[*]" ); }
void TermWidget::term_splitCollapse() { emit splitCollapse(this); }
void TermWidgetImpl::act_splitCollapse() { emit splitCollapse(); }