Ejemplo n.º 1
0
ToolMainWindow::ToolMainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    m_areaToolBar.insert(Qt::TopDockWidgetArea,new ActionToolBar(this,Qt::TopDockWidgetArea));
    m_areaToolBar.insert(Qt::BottomDockWidgetArea,new ActionToolBar(this,Qt::BottomDockWidgetArea));
    m_areaToolBar.insert(Qt::LeftDockWidgetArea,new ActionToolBar(this,Qt::LeftDockWidgetArea));
    m_areaToolBar.insert(Qt::RightDockWidgetArea,new ActionToolBar(this,Qt::RightDockWidgetArea));

    QMapIterator<Qt::DockWidgetArea,ActionToolBar*> it(m_areaToolBar);
    while(it.hasNext()) {
        it.next();
        Qt::DockWidgetArea area = it.key();
        ActionToolBar *actionToolBar = it.value();
        addToolBar((Qt::ToolBarArea)area,actionToolBar->toolBar);
        addDockWidget(area,actionToolBar->dock1);
        addDockWidget(area,actionToolBar->dock2);
        if (area == Qt::TopDockWidgetArea || area == Qt::BottomDockWidgetArea)
            splitDockWidget(actionToolBar->dock1,actionToolBar->dock2,Qt::Horizontal);
        else
            splitDockWidget(actionToolBar->dock1,actionToolBar->dock2,Qt::Vertical);
        connect(actionToolBar,SIGNAL(moveActionTo(Qt::DockWidgetArea,QAction*,bool)),this,SLOT(moveToolWindow(Qt::DockWidgetArea,QAction*,bool)));
    }

    this->setDockNestingEnabled(true);
    this->setDockOptions(QMainWindow::AllowNestedDocks);

    m_statusBar = new QStatusBar;

    m_hideSideAct = new QAction(tr("Hide Sidebars"),this);
    m_hideSideAct->setIcon(QIcon("icon:images/hidesidebar.png"));
    m_hideSideAct->setCheckable(true);

    QToolButton *btn = new QToolButton;
    btn->setDefaultAction(m_hideSideAct);
    btn->setStyleSheet("QToolButton {border:0}"
                       "QToolButton:checked {background : qlineargradient(spread:pad, x1:0, y1:1, x2:1, y2:0, stop:0 rgba(55, 57, 59, 255), stop:1 rgba(255, 255, 255, 255));}");
    m_statusBar->addWidget(btn);

    m_statusBar->setContentsMargins(0,0,0,0);

    ActionToolBar *bar = m_areaToolBar.value(Qt::BottomDockWidgetArea);
    if (bar) {
        m_statusBar->addWidget(bar->toolBar,1);
    }

    this->setStatusBar(m_statusBar);

    connect(m_hideSideAct,SIGNAL(toggled(bool)),this,SLOT(hideSideBar(bool)));
}
Ejemplo n.º 2
0
void MainWindow::CreateDockWindows()
{
	// "Objects" widget
	_objectsWidget = new QDockWidget(tr("Objects"), this);
	addDockWidget(Qt::RightDockWidgetArea, _objectsWidget, Qt::Vertical);
	_objectsListBox = new QspListBox(this);
	_objectsWidget->setWidget(_objectsListBox);

	// "Actions" widget
	_actionsWidget = new QDockWidget(tr("Actions"), this);
	addDockWidget(Qt::BottomDockWidgetArea, _actionsWidget, Qt::Vertical);
	_actionsListBox = new QspListBox(this);
	_actionsWidget->setWidget(_actionsListBox);

	// "Additional desc" widget
	_descWidget = new QDockWidget(tr("Additional desc"), this);
	addDockWidget(Qt::BottomDockWidgetArea, _descWidget, Qt::Horizontal);
	_descTextBox = new QspTextBox(this);
	_descWidget->setWidget(_descTextBox);

	// "Input area" widget
	_inputWidget = new QDockWidget(tr("Input area"), this);
	addDockWidget(Qt::BottomDockWidgetArea, _inputWidget, Qt::Vertical);
	_inputTextBox = new QspInputBox(this);
	_inputWidget->setWidget(_inputTextBox);

	splitDockWidget(_actionsWidget, _inputWidget, Qt::Vertical);
}