static Qt::ToolBarArea toolBarArea(const DockButton *button) { Q_ASSERT(button); auto bar = qobject_cast<QToolBar *>(button->parent()); Q_ASSERT(bar); auto win = qobject_cast<QMainWindow *>(bar->parentWidget()); Q_ASSERT(win); return win->toolBarArea(bar); }
static Qt::Orientation toolBarOrientation(const DockButton *button) { switch (toolBarArea(button)) { case Qt::LeftToolBarArea: case Qt::RightToolBarArea: return Qt::Vertical; default: return Qt::Horizontal; } }
void MainWindow::saveSettings() { taskWrHouse->saveCurrentState(); domainsStateMonitor->saveCurrentState(); settings.setValue("Geometry", saveGeometry()); settings.setValue("State", saveState()); settings.setValue("ToolBarArea", toolBarArea(toolBar)); settings.setValue("Visible", this->isVisible()); settings.setValue("WaitAtClose", waitAtClose); settings.beginGroup("LogDock"); settings.setValue("DockArea", dockWidgetArea(logDock)); settings.setValue("Visible", logDock->isVisible()); settings.setValue("Floating", logDock->isFloating()); settings.setValue("Geometry", logDock->saveGeometry()); settings.endGroup(); settings.beginGroup("DomainDock"); settings.setValue("DockArea", dockWidgetArea(domainDock)); settings.setValue("Visible", domainDock->isVisible()); settings.setValue("Floating", domainDock->isFloating()); settings.setValue("Geometry", domainDock->saveGeometry()); settings.endGroup(); settings.beginGroup("NetworkDock"); settings.setValue("DockArea", dockWidgetArea(networkDock)); settings.setValue("Visible", networkDock->isVisible()); settings.setValue("Floating", networkDock->isFloating()); settings.setValue("Geometry", networkDock->saveGeometry()); settings.endGroup(); settings.beginGroup("StoragePoolDock"); settings.setValue("DockArea", dockWidgetArea(storagePoolDock)); settings.setValue("Visible", storagePoolDock->isVisible()); settings.setValue("Floating", storagePoolDock->isFloating()); settings.setValue("Geometry", storagePoolDock->saveGeometry()); settings.endGroup(); settings.beginGroup("SecretDock"); settings.setValue("DockArea", dockWidgetArea(secretDock)); settings.setValue("Visible", secretDock->isVisible()); settings.setValue("Floating", secretDock->isFloating()); settings.setValue("Geometry", secretDock->saveGeometry()); settings.endGroup(); settings.beginGroup("IfaceDock"); settings.setValue("DockArea", dockWidgetArea(secretDock)); settings.setValue("Visible", secretDock->isVisible()); settings.setValue("Floating", secretDock->isFloating()); settings.setValue("Geometry", secretDock->saveGeometry()); settings.endGroup(); settings.beginGroup("ConnectListColumns"); settings.setValue("column0", connListWidget->columnWidth(0)); settings.setValue("column1", connListWidget->columnWidth(1)); settings.setValue("column2", connListWidget->columnWidth(2)); settings.endGroup(); settings.sync(); }
void MainWindow::saveSettings() { //much more clear than loadSettings(), don't you think? settings->setWindowSize(this->size()); settings->setRecentFilesList(recentFilesPath); settings->setShowMenuBar(showMenuBarAct->isChecked()); settings->setTBArea(toolBarArea(mainToolBar)); settings->setLastDirUsed(lastDirUsed); /*settings->setCreateNewShortCuts(false); QStringList a, b; for(int i=0; i<actionsList.size(); i++){ if(!actionsList.at(i)->shortcut().isEmpty()){ a<<actionsList.at(i)->text().remove('&'); b<<actionsList.at(i)->shortcut(); } } settings->setShortCuts(a, b);*/ settings->saveSettings(); }
bool MainWindow::event(QEvent *event) { bool retVal = QMainWindow::event(event); // this has to be done before calling setVisible() // FIXME we depend on QEvent::HoverMove (instead of QEvent::MouseMove) // but the latter depends on mouse tracking being enabled on this widget // and all its children (especially the video widget) ... if ((event->type() == QEvent::HoverMove) && autoHideControlBar) { int y = reinterpret_cast<QHoverEvent *> (event)->pos().y(); if ((y < 0) || (y >= height())) { // QHoverEvent sometimes reports quite strange coordinates - ignore them return retVal; } cursorHideTimer->stop(); unsetCursor(); switch (toolBarArea(controlBar)) { case Qt::TopToolBarArea: controlBar->setVisible(y < 60); break; case Qt::BottomToolBarArea: controlBar->setVisible(y >= (height() - 60)); break; default: break; } if (controlBar->isHidden()) { cursorHideTimer->start(); } } return retVal; }
void DockButton::paintEvent(QPaintEvent* event) { Q_UNUSED(event); QStylePainter p(this); QStyleOptionToolButton opt; initStyleOption(&opt); if (toolBarOrientation(this) == Qt::Vertical) { QSize size = opt.rect.size(); size.transpose(); opt.rect.setSize(size); if (toolBarArea(this) == Qt::RightToolBarArea) { p.rotate(90); p.translate(0, -width()); } else { p.rotate(-90); p.translate(-height(), 0); } } p.drawComplexControl(QStyle::CC_ToolButton, opt); }
Qt::ToolBarArea MainWidget::getToolBarArea() { if (debug) qDebug() << PDEBUG; return toolBarArea(ui->toolBar); }