SubWindow::SubWindow( QWidget *parent, Qt::WindowFlags windowFlags ) : QMdiSubWindow( parent, windowFlags ), m_buttonSize( 17, 17 ), m_titleBarHeight( 24 ) { // initialize the tracked geometry to whatever Qt thinks the normal geometry currently is. // this should always work, since QMdiSubWindows will not start as maximized m_trackedNormalGeom = normalGeometry(); // inits the colors m_activeColor = Qt::SolidPattern; m_textShadowColor = Qt::black; m_borderColor = Qt::black; // close, maximize and restore (after maximizing) buttons m_closeBtn = new QPushButton( embed::getIconPixmap( "close" ), QString::null, this ); m_closeBtn->resize( m_buttonSize ); m_closeBtn->setFocusPolicy( Qt::NoFocus ); m_closeBtn->setCursor( Qt::ArrowCursor ); m_closeBtn->setAttribute( Qt::WA_NoMousePropagation ); m_closeBtn->setToolTip( tr( "Close" ) ); connect( m_closeBtn, SIGNAL( clicked( bool ) ), this, SLOT( close() ) ); m_maximizeBtn = new QPushButton( embed::getIconPixmap( "maximize" ), QString::null, this ); m_maximizeBtn->resize( m_buttonSize ); m_maximizeBtn->setFocusPolicy( Qt::NoFocus ); m_maximizeBtn->setCursor( Qt::ArrowCursor ); m_maximizeBtn->setAttribute( Qt::WA_NoMousePropagation ); m_maximizeBtn->setToolTip( tr( "Maximize" ) ); connect( m_maximizeBtn, SIGNAL( clicked( bool ) ), this, SLOT( showMaximized() ) ); m_restoreBtn = new QPushButton( embed::getIconPixmap( "restore" ), QString::null, this ); m_restoreBtn->resize( m_buttonSize ); m_restoreBtn->setFocusPolicy( Qt::NoFocus ); m_restoreBtn->setCursor( Qt::ArrowCursor ); m_restoreBtn->setAttribute( Qt::WA_NoMousePropagation ); m_restoreBtn->setToolTip( tr( "Restore" ) ); connect( m_restoreBtn, SIGNAL( clicked( bool ) ), this, SLOT( showNormal() ) ); // QLabel for the window title and the shadow effect m_shadow = new QGraphicsDropShadowEffect(); m_shadow->setColor( m_textShadowColor ); m_shadow->setXOffset( 1 ); m_shadow->setYOffset( 1 ); m_windowTitle = new QLabel( this ); m_windowTitle->setFocusPolicy( Qt::NoFocus ); m_windowTitle->setAttribute( Qt::WA_TransparentForMouseEvents, true ); m_windowTitle->setGraphicsEffect( m_shadow ); // disable the minimize button setWindowFlags( Qt::SubWindow | Qt::WindowMaximizeButtonHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint ); }
void NodeEditorWindows::writeSettings() { QSettings settings("GPStudio", "gpnode"); // MainWindow position/size/maximized settings.beginGroup("MainWindow"); settings.setValue("size", normalGeometry().size()); settings.setValue("pos", normalGeometry().topLeft()); settings.setValue("maximized", isMaximized()); settings.endGroup(); // old projects write settings.beginWriteArray("projects"); for (int i = 0; i < _oldProjects.size() && i < MaxOldProject; ++i) { settings.setArrayIndex(i); QString path = _oldProjects[i]; settings.setValue("path", path); } settings.endArray(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setupUi(this); firstGeometry = normalGeometry(); firstGeometry.setTopLeft(firstGeometry.center()); setWindowFlags(Qt::FramelessWindowHint); Ui_MainWindow::menuBar->setVisible(false); setWindowTitle("iniTunes"); setCentralWidget(frame); frame->setLayout(verticalLayout); mkconnections(); table->setLibrary(&library); tree->updateTree(&library); playlists->addPlaylists(library.playlists()); qDebug()<<"End of constructor"; qApp->setStyleSheet("QPushButton{ border-radius:1px; font : bold 10px; min-width: 1em; }"); }
void calculateGeometry() { // Convert to global points QObject* parent__ = parent(); if ( parent__ == NULL ) return; QWidget* parent_ = static_cast< QWidget* >( parent__ ); QRect parentRect = parent_ -> geometry(); parentRect.moveTopLeft( parent_ -> mapToGlobal(QPoint(0,0)) ); QRect widgetRect( parentRect ); QLayout* layout_ = layout(); if ( layout_ != NULL ) { QApplication::instance() -> sendPostedEvents(); layout_ -> activate(); layout_ -> update(); } QRect normalGeometry_ = normalGeometry(); // Use normal geometry if there is any if ( normalGeometry_.width() != 0 && normalGeometry_.height() != 0 ) { widgetRect.setWidth( normalGeometry_.width() ); widgetRect.setHeight( normalGeometry_.height() ); } if ( layout_ != 0 ) { QSize sizeHint = layout_ -> sizeHint(); if ( widgetRect.height() < sizeHint.height() ) widgetRect.setHeight( sizeHint.height() ); if ( widgetRect.width() < sizeHint.width() ) widgetRect.setWidth( sizeHint.width() ); widgetRect.setSize( sizeHint ); } QPoint bindTo; switch(parentCornerToAnchor_) { default: case Qt::TopLeftCorner: bindTo = parentRect.topLeft(); break; case Qt::TopRightCorner: bindTo = parentRect.topRight(); break; case Qt::BottomLeftCorner: bindTo = parentRect.bottomLeft(); break; case Qt::BottomRightCorner: bindTo = parentRect.bottomRight(); break; } switch(widgetCornerToAnchor_) { default: case Qt::TopLeftCorner: widgetRect.moveTopLeft( bindTo ); break; case Qt::TopRightCorner: widgetRect.moveTopRight( bindTo ); break; case Qt::BottomLeftCorner: widgetRect.moveBottomLeft( bindTo ); break; case Qt::BottomRightCorner: widgetRect.moveBottomRight( bindTo ); break; } QDesktopWidget desktopWidget; // If user only has one screen, ensure the popup doesn't go off screen // If multiple screens, this could be annoying as the popup can be viewed on a 2nd screen if ( desktopWidget.screenCount() == 1) widgetRect = desktopWidget.screenGeometry( parent_ ).intersected( widgetRect ); setGeometry( widgetRect ); }
int QWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 23) qt_static_metacall(this, _c, _id, _a); _id -= 23; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< bool*>(_v) = isModal(); break; case 1: *reinterpret_cast< Qt::WindowModality*>(_v) = windowModality(); break; case 2: *reinterpret_cast< bool*>(_v) = isEnabled(); break; case 3: *reinterpret_cast< QRect*>(_v) = geometry(); break; case 4: *reinterpret_cast< QRect*>(_v) = frameGeometry(); break; case 5: *reinterpret_cast< QRect*>(_v) = normalGeometry(); break; case 6: *reinterpret_cast< int*>(_v) = x(); break; case 7: *reinterpret_cast< int*>(_v) = y(); break; case 8: *reinterpret_cast< QPoint*>(_v) = pos(); break; case 9: *reinterpret_cast< QSize*>(_v) = frameSize(); break; case 10: *reinterpret_cast< QSize*>(_v) = size(); break; case 11: *reinterpret_cast< int*>(_v) = width(); break; case 12: *reinterpret_cast< int*>(_v) = height(); break; case 13: *reinterpret_cast< QRect*>(_v) = rect(); break; case 14: *reinterpret_cast< QRect*>(_v) = childrenRect(); break; case 15: *reinterpret_cast< QRegion*>(_v) = childrenRegion(); break; case 16: *reinterpret_cast< QSizePolicy*>(_v) = sizePolicy(); break; case 17: *reinterpret_cast< QSize*>(_v) = minimumSize(); break; case 18: *reinterpret_cast< QSize*>(_v) = maximumSize(); break; case 19: *reinterpret_cast< int*>(_v) = minimumWidth(); break; case 20: *reinterpret_cast< int*>(_v) = minimumHeight(); break; case 21: *reinterpret_cast< int*>(_v) = maximumWidth(); break; case 22: *reinterpret_cast< int*>(_v) = maximumHeight(); break; case 23: *reinterpret_cast< QSize*>(_v) = sizeIncrement(); break; case 24: *reinterpret_cast< QSize*>(_v) = baseSize(); break; case 25: *reinterpret_cast< QPalette*>(_v) = palette(); break; case 26: *reinterpret_cast< QFont*>(_v) = font(); break; case 27: *reinterpret_cast< QCursor*>(_v) = cursor(); break; case 28: *reinterpret_cast< bool*>(_v) = hasMouseTracking(); break; case 29: *reinterpret_cast< bool*>(_v) = isActiveWindow(); break; case 30: *reinterpret_cast< Qt::FocusPolicy*>(_v) = focusPolicy(); break; case 31: *reinterpret_cast< bool*>(_v) = hasFocus(); break; case 32: *reinterpret_cast< Qt::ContextMenuPolicy*>(_v) = contextMenuPolicy(); break; case 33: *reinterpret_cast< bool*>(_v) = updatesEnabled(); break; case 34: *reinterpret_cast< bool*>(_v) = isVisible(); break; case 35: *reinterpret_cast< bool*>(_v) = isMinimized(); break; case 36: *reinterpret_cast< bool*>(_v) = isMaximized(); break; case 37: *reinterpret_cast< bool*>(_v) = isFullScreen(); break; case 38: *reinterpret_cast< QSize*>(_v) = sizeHint(); break; case 39: *reinterpret_cast< QSize*>(_v) = minimumSizeHint(); break; case 40: *reinterpret_cast< bool*>(_v) = acceptDrops(); break; case 41: *reinterpret_cast< QString*>(_v) = windowTitle(); break; case 42: *reinterpret_cast< QIcon*>(_v) = windowIcon(); break; case 43: *reinterpret_cast< QString*>(_v) = windowIconText(); break; case 44: *reinterpret_cast< double*>(_v) = windowOpacity(); break; case 45: *reinterpret_cast< bool*>(_v) = isWindowModified(); break; case 46: *reinterpret_cast< QString*>(_v) = toolTip(); break; case 47: *reinterpret_cast< QString*>(_v) = statusTip(); break; case 48: *reinterpret_cast< QString*>(_v) = whatsThis(); break; case 49: *reinterpret_cast< QString*>(_v) = accessibleName(); break; case 50: *reinterpret_cast< QString*>(_v) = accessibleDescription(); break; case 51: *reinterpret_cast< Qt::LayoutDirection*>(_v) = layoutDirection(); break; case 52: *reinterpret_cast< bool*>(_v) = autoFillBackground(); break; case 53: *reinterpret_cast< QString*>(_v) = styleSheet(); break; case 54: *reinterpret_cast< QLocale*>(_v) = locale(); break; case 55: *reinterpret_cast< QString*>(_v) = windowFilePath(); break; case 56: *reinterpret_cast< Qt::InputMethodHints*>(_v) = inputMethodHints(); break; } _id -= 57; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 1: setWindowModality(*reinterpret_cast< Qt::WindowModality*>(_v)); break; case 2: setEnabled(*reinterpret_cast< bool*>(_v)); break; case 3: setGeometry(*reinterpret_cast< QRect*>(_v)); break; case 8: move(*reinterpret_cast< QPoint*>(_v)); break; case 10: resize(*reinterpret_cast< QSize*>(_v)); break; case 16: setSizePolicy(*reinterpret_cast< QSizePolicy*>(_v)); break; case 17: setMinimumSize(*reinterpret_cast< QSize*>(_v)); break; case 18: setMaximumSize(*reinterpret_cast< QSize*>(_v)); break; case 19: setMinimumWidth(*reinterpret_cast< int*>(_v)); break; case 20: setMinimumHeight(*reinterpret_cast< int*>(_v)); break; case 21: setMaximumWidth(*reinterpret_cast< int*>(_v)); break; case 22: setMaximumHeight(*reinterpret_cast< int*>(_v)); break; case 23: setSizeIncrement(*reinterpret_cast< QSize*>(_v)); break; case 24: setBaseSize(*reinterpret_cast< QSize*>(_v)); break; case 25: setPalette(*reinterpret_cast< QPalette*>(_v)); break; case 26: setFont(*reinterpret_cast< QFont*>(_v)); break; case 27: setCursor(*reinterpret_cast< QCursor*>(_v)); break; case 28: setMouseTracking(*reinterpret_cast< bool*>(_v)); break; case 30: setFocusPolicy(*reinterpret_cast< Qt::FocusPolicy*>(_v)); break; case 32: setContextMenuPolicy(*reinterpret_cast< Qt::ContextMenuPolicy*>(_v)); break; case 33: setUpdatesEnabled(*reinterpret_cast< bool*>(_v)); break; case 34: setVisible(*reinterpret_cast< bool*>(_v)); break; case 40: setAcceptDrops(*reinterpret_cast< bool*>(_v)); break; case 41: setWindowTitle(*reinterpret_cast< QString*>(_v)); break; case 42: setWindowIcon(*reinterpret_cast< QIcon*>(_v)); break; case 43: setWindowIconText(*reinterpret_cast< QString*>(_v)); break; case 44: setWindowOpacity(*reinterpret_cast< double*>(_v)); break; case 45: setWindowModified(*reinterpret_cast< bool*>(_v)); break; case 46: setToolTip(*reinterpret_cast< QString*>(_v)); break; case 47: setStatusTip(*reinterpret_cast< QString*>(_v)); break; case 48: setWhatsThis(*reinterpret_cast< QString*>(_v)); break; case 49: setAccessibleName(*reinterpret_cast< QString*>(_v)); break; case 50: setAccessibleDescription(*reinterpret_cast< QString*>(_v)); break; case 51: setLayoutDirection(*reinterpret_cast< Qt::LayoutDirection*>(_v)); break; case 52: setAutoFillBackground(*reinterpret_cast< bool*>(_v)); break; case 53: setStyleSheet(*reinterpret_cast< QString*>(_v)); break; case 54: setLocale(*reinterpret_cast< QLocale*>(_v)); break; case 55: setWindowFilePath(*reinterpret_cast< QString*>(_v)); break; case 56: setInputMethodHints(*reinterpret_cast< Qt::InputMethodHints*>(_v)); break; } _id -= 57; } else if (_c == QMetaObject::ResetProperty) { switch (_id) { case 27: unsetCursor(); break; case 51: unsetLayoutDirection(); break; case 54: unsetLocale(); break; } _id -= 57; } else if (_c == QMetaObject::QueryPropertyDesignable) { bool *_b = reinterpret_cast<bool*>(_a[0]); switch (_id) { case 41: *_b = isWindow(); break; case 42: *_b = isWindow(); break; case 43: *_b = isWindow(); break; case 44: *_b = isWindow(); break; case 45: *_b = isWindow(); break; case 55: *_b = isWindow(); break; } _id -= 57; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 57; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 57; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 57; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 57; } #endif // QT_NO_PROPERTIES return _id; }