void QWaylandShellSurface::updateTransientParent(QWindow *parent) { QWaylandWindow *parent_wayland_window = static_cast<QWaylandWindow *>(parent->handle()); if (!parent_wayland_window || !parent_wayland_window->shellSurface()) return; // set_transient expects a position relative to the parent QPoint transientPos = m_window->geometry().topLeft(); // this is absolute QWindow *parentWin = m_window->window()->transientParent(); transientPos -= parentWin->geometry().topLeft(); if (parent_wayland_window->decoration()) { transientPos.setX(transientPos.x() + parent_wayland_window->decoration()->margins().left()); transientPos.setY(transientPos.y() + parent_wayland_window->decoration()->margins().top()); } uint32_t flags = 0; Qt::WindowFlags wf = m_window->window()->flags(); if (wf.testFlag(Qt::ToolTip) || wf.testFlag(Qt::WindowTransparentForInput)) flags |= WL_SHELL_SURFACE_TRANSIENT_INACTIVE; set_transient(parent_wayland_window->wl_surface(), transientPos.x(), transientPos.y(), flags); }
void wxTopLevelWindowQt::SetWindowStyleFlag( long style ) { wxWindow::SetWindowStyleFlag( style ); if ( HasFlag( wxCENTRE ) ) { Centre(); } if ( !GetHandle() ) return; Qt::WindowFlags qtFlags = GetHandle()->windowFlags(); if ( HasFlag( wxSTAY_ON_TOP ) != qtFlags.testFlag( Qt::WindowStaysOnTopHint ) ) qtFlags ^= Qt::WindowStaysOnTopHint; if ( HasFlag( wxCAPTION ) ) { // Only show buttons if window has caption if ( HasFlag( wxSYSTEM_MENU ) ) { qtFlags |= Qt::WindowSystemMenuHint; if ( HasFlag( wxMINIMIZE_BOX ) ) qtFlags |= Qt::WindowMinimizeButtonHint; else qtFlags &= ~Qt::WindowMinimizeButtonHint; if ( HasFlag( wxMAXIMIZE_BOX ) ) qtFlags |= Qt::WindowMaximizeButtonHint; else qtFlags &= ~Qt::WindowMaximizeButtonHint; if ( HasFlag( wxCLOSE_BOX ) ) qtFlags |= Qt::WindowCloseButtonHint; else qtFlags &= ~Qt::WindowCloseButtonHint; } else { qtFlags &= ~Qt::WindowSystemMenuHint; qtFlags &= ~Qt::WindowMinMaxButtonsHint; qtFlags &= ~Qt::WindowCloseButtonHint; } } GetHandle()->setWindowFlags( qtFlags ); wxCHECK_RET( !( HasFlag( wxMAXIMIZE ) && HasFlag( wxMAXIMIZE ) ), "Window cannot be both maximized and minimized" ); if ( HasFlag( wxMAXIMIZE ) ) GetHandle()->setWindowState( Qt::WindowMaximized ); else if ( HasFlag( wxMINIMIZE ) ) GetHandle()->setWindowState( Qt::WindowMinimized ); if ( HasFlag( wxRESIZE_BORDER ) ) GetHandle()->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ); else GetHandle()->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); }
GetPasswordWidget::GetPasswordWidget(char* passwd, QWidget *parent) : QDialog(parent), ui(new Ui::GetPasswordWidget) { Passwd = passwd; ui->setupUi(this); ui->PasswordField->setFocus(); Qt::WindowFlags flags = this->windowFlags(); if(flags.testFlag(Qt::WindowContextHelpButtonHint)) this->setWindowFlags(flags & ~Qt::WindowContextHelpButtonHint); }
GetContactWidget::GetContactWidget(unsigned int& contactID, char* nickname, unsigned int& nickLen, QWidget *parent = 0) : QDialog(parent), ui(new Ui::GetContactWidget) { ui->setupUi(this); this->contactID = &contactID; this->nickname = nickname; this->nickLen = &nickLen; ui->contactIDLine->setFocus(); Qt::WindowFlags flags = this->windowFlags(); if(flags.testFlag(Qt::WindowContextHelpButtonHint)) this->setWindowFlags(flags & ~Qt::WindowContextHelpButtonHint); }
About::About(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f) { setupUi(this); setWindowIcon(QIcon(QPixmap(":/img/help-about.png"))); mAuthorIcon->setPixmap(QPixmap(":/img/cc32.png")); mLicenseIcon->setPixmap(QPixmap(":/img/GNU-icon32.png")); mAuthorText->setText("<b>" + ColorCode::GAME_TITLE + "</b><br>" + tr("A needful game to train your brain ;-)") + tr("<br><br>Free MasterMind clone including a built in,<br>rather intelligent solver.") + "<br><br>" + tr("Version") + ": " + ColorCode::VERSION + "<br>" + tr("Author") + ": Dirk Laebisch"); QString license_file = ":/docs/GPL.html"; if (QFile::exists(license_file)) { QFont fixed_font; fixed_font.setStyleHint(QFont::TypeWriter); fixed_font.setFamily("Courier"); mLicenseText->setFont(fixed_font); QFile f(license_file); if (f.open(QIODevice::ReadOnly)) { mLicenseText->setText(QString::fromUtf8(f.readAll().constData())); } f.close(); } else { mLicenseText->setText( "<i>" + tr("This program is free software; you can redistribute it and/or modify " "it under the terms of the GNU General Public License as published by " "the Free Software Foundation; either version 3 of the License, or " "(at your option) any later version.") + "</i>" ); } }
//---------------------------------------------------------------------- void GuiWindowHandler::saveToConfig() { bool is_fullscreen = the_gui_.windowState() & Qt::WindowFullScreen; if (!is_fullscreen) { int x = the_gui_.x(); int y = the_gui_.y(); if (x<0) x=0; if (y<20) y=20; ConfigFileHandler::getInstance().setAppPosX(x); ConfigFileHandler::getInstance().setAppPosY(y); ConfigFileHandler::getInstance().setAppSizeX(the_gui_.width()); ConfigFileHandler::getInstance().setAppSizeY(the_gui_.height()); ConfigFileHandler::getInstance().setAppState((int)the_gui_.windowState()); } //Resizeable bool is_resizeable =true; if (the_gui_.minimumWidth() == the_gui_.maximumWidth()) is_resizeable = false; ConfigFileHandler::getInstance().setAppIsResizeable(is_resizeable); //Maximizeable Qt::WindowFlags wflags = the_gui_.windowFlags(); bool is_maximizeable= wflags.testFlag(Qt::WindowMaximizeButtonHint); ConfigFileHandler::getInstance().setAppIsMaximizeable(is_maximizeable); //Minimizeable bool is_minimizeable= wflags.testFlag(Qt::WindowMinimizeButtonHint); ConfigFileHandler::getInstance().setAppIsMinimizeable(is_minimizeable); }
QtShell::QtShell(QWidget* parent, Qt::WindowFlags flags) : updatesDisabled(false) { if (parent == nullptr || flags.testFlag(Qt::Window)) { widget = new QtMainWindowControl(this, parent, flags); widget->setUpdatesEnabled(false); updatesDisabled = true; widget->setAttribute(Qt::WA_DeleteOnClose); } else { widget = new QtControlWidget(parent, this, flags | Qt::Dialog); widget->setObjectName("shell widget"); } widget->setProperty("shell", QVariant::fromValue(static_cast<Shell*>(this))); }
void wxWindowQt::SetWindowStyleFlag( long style ) { wxWindowBase::SetWindowStyleFlag( style ); // wxMISSING_IMPLEMENTATION( "wxWANTS_CHARS, wxTAB_TRAVERSAL" ); // // wxFULL_REPAINT_ON_RESIZE: Qt::WResizeNoErase (marked obsolete) // // wxTRANSPARENT_WINDOW, wxCLIP_CHILDREN: Used in window for // // performance, apparently not needed. // // // wxWANTS_CHARS: Need to reimplement event() // // See: http://doc.qt.nokia.com/latest/qwidget.html#events // // wxTAB_TRAVERSAL: reimplement focusNextPrevChild() // // Qt::WindowFlags qtFlags = GetHandle()->windowFlags(); // // // For this to work Qt::CustomizeWindowHint must be set (done in Create()) // if ( HasFlag( wxCAPTION ) ) // { // // Enable caption bar and all buttons. This behavious // // is overwritten by subclasses (wxTopLevelWindow). // qtFlags |= Qt::WindowTitleHint; // qtFlags |= Qt::WindowSystemMenuHint; // qtFlags |= Qt::WindowMinMaxButtonsHint; // qtFlags |= Qt::WindowCloseButtonHint; // } // else // { // // Disable caption bar, include all buttons to be effective // qtFlags &= ~Qt::WindowTitleHint; // qtFlags &= ~Qt::WindowSystemMenuHint; // qtFlags &= ~Qt::WindowMinMaxButtonsHint; // qtFlags &= ~Qt::WindowCloseButtonHint; // } // // GetHandle()->setWindowFlags( qtFlags ); // // // Validate border styles // int numberOfBorderStyles = 0; // if ( HasFlag( wxBORDER_NONE )) // numberOfBorderStyles++; // if ( HasFlag( wxBORDER_STATIC )) // numberOfBorderStyles++; // if ( HasFlag( wxBORDER_SIMPLE )) // numberOfBorderStyles++; // if ( HasFlag( wxBORDER_RAISED )) // numberOfBorderStyles++; // if ( HasFlag( wxBORDER_SUNKEN )) // numberOfBorderStyles++; // if ( HasFlag( wxBORDER_THEME )) // numberOfBorderStyles++; // wxCHECK_RET( numberOfBorderStyles <= 1, "Only one border style can be specified" ); // // // Borders only supported for QFrame's // QFrame *qtFrame = qobject_cast< QFrame* >( QtGetContainer() ); // wxCHECK_RET( numberOfBorderStyles == 0 || qtFrame, // "Borders not supported for this window type (not QFrame)" ); // // if ( HasFlag( wxBORDER_NONE ) ) // { // qtFrame->setFrameStyle( QFrame::NoFrame ); // } // else if ( HasFlag( wxBORDER_STATIC ) ) // { // wxMISSING_IMPLEMENTATION( "wxBORDER_STATIC" ); // } // else if ( HasFlag( wxBORDER_SIMPLE ) ) // { // qtFrame->setFrameStyle( QFrame::Panel ); // qtFrame->setFrameShadow( QFrame::Plain ); // } // else if ( HasFlag( wxBORDER_RAISED ) ) // { // qtFrame->setFrameStyle( QFrame::Panel ); // qtFrame->setFrameShadow( QFrame::Raised ); // } // else if ( HasFlag( wxBORDER_SUNKEN ) ) // { // qtFrame->setFrameStyle( QFrame::Panel ); // qtFrame->setFrameShadow( QFrame::Sunken ); // } // else if ( HasFlag( wxBORDER_THEME ) ) // { // qtFrame->setFrameStyle( QFrame::StyledPanel ); // qtFrame->setFrameShadow( QFrame::Plain ); // } Qt::WindowFlags qtFlags = GetHandle()->windowFlags(); if ( HasFlag( wxFRAME_NO_TASKBAR ) ) { // qtFlags &= ~Qt::WindowType_Mask; if ( (style & wxSIMPLE_BORDER) || (style & wxNO_BORDER) ) { qtFlags = Qt::ToolTip | Qt::FramelessWindowHint; } else qtFlags |= Qt::Dialog; } else if ( ( (style & wxSIMPLE_BORDER) || (style & wxNO_BORDER) ) != qtFlags.testFlag( Qt::FramelessWindowHint ) ) { qtFlags ^= Qt::FramelessWindowHint; } GetHandle()->setWindowFlags( qtFlags ); }
void OverlayEditorScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *e) { QGraphicsScene::contextMenuEvent(e); if (e->isAccepted()) return; if (! e->widget()) return; QGraphicsPixmapItem *item = childAt(e->scenePos()); QMenu qm(e->widget()); QMenu *qmLayout = qm.addMenu(tr("Layout preset")); QAction *qaLayoutLargeAvatar = qmLayout->addAction(tr("Large square avatar")); QAction *qaLayoutText = qmLayout->addAction(tr("Avatar and Name")); QMenu *qmTrans = qm.addMenu(tr("User Opacity")); QActionGroup *qagUser = new QActionGroup(&qm); QAction *userOpacity[8]; for (int i=0;i<8;++i) { qreal o = (i + 1) / 8.0; userOpacity[i] = new QAction(tr("%1%").arg(o * 100.0f, 0, 'f', 1), qagUser); userOpacity[i]->setCheckable(true); userOpacity[i]->setData(o); if (qFuzzyCompare(qgiGroup->opacity(), o)) userOpacity[i]->setChecked(true); qmTrans->addAction(userOpacity[i]); } QAction *color = NULL; QAction *fontAction = NULL; QAction *objectOpacity[8]; for (int i=0;i<8;++i) objectOpacity[i] = NULL; QAction *boxpen[4] = { NULL, NULL, NULL, NULL}; QAction *boxpad[4] = { NULL, NULL, NULL, NULL}; QAction *boxpencolor = NULL; QAction *boxfillcolor = NULL; QAction *align[6]; for (int i=0;i<6;++i) align[i] = NULL; if (item) { qm.addSeparator(); QMenu *qmObjTrans = qm.addMenu(tr("Object Opacity")); QActionGroup *qagObject = new QActionGroup(&qm); for (int i=0;i<8;++i) { qreal o = i + 1 / 8.0; objectOpacity[i] = new QAction(tr("%1%").arg(o * 100.0f, 0, 'f', 1), qagObject); objectOpacity[i]->setCheckable(true); objectOpacity[i]->setData(o); if (qFuzzyCompare(item->opacity(), o)) objectOpacity[i]->setChecked(true); qmObjTrans->addAction(objectOpacity[i]); } QMenu *qmObjAlign = qm.addMenu(tr("Alignment")); Qt::Alignment a; if (item == qgpiAvatar) a = os.qaAvatar; else if (item == qgpiChannel) a = os.qaChannel; else if (item == qgpiMuted) a = os.qaMutedDeafened; else a = os.qaUserName; align[0] = qmObjAlign->addAction(tr("Left")); align[0]->setCheckable(true); align[0]->setData(Qt::AlignLeft); if (a & Qt::AlignLeft) align[0]->setChecked(true); align[1] = qmObjAlign->addAction(tr("Center")); align[1]->setCheckable(true); align[1]->setData(Qt::AlignHCenter); if (a & Qt::AlignHCenter) align[1]->setChecked(true); align[2] = qmObjAlign->addAction(tr("Right")); align[2]->setCheckable(true); align[2]->setData(Qt::AlignRight); if (a & Qt::AlignRight) align[2]->setChecked(true); qmObjAlign->addSeparator(); align[3] = qmObjAlign->addAction(tr("Top")); align[3]->setCheckable(true); align[3]->setData(Qt::AlignTop); if (a & Qt::AlignTop) align[3]->setChecked(true); align[4] = qmObjAlign->addAction(tr("Center")); align[4]->setCheckable(true); align[4]->setData(Qt::AlignVCenter); if (a & Qt::AlignVCenter) align[4]->setChecked(true); align[5] = qmObjAlign->addAction(tr("Bottom")); align[5]->setCheckable(true); align[5]->setData(Qt::AlignBottom); if (a & Qt::AlignBottom) align[5]->setChecked(true); if ((item != qgpiAvatar) && (item != qgpiMuted)) { color = qm.addAction(tr("Color...")); fontAction = qm.addAction(tr("Font...")); } } if (qgpiBox->isVisible()) { qm.addSeparator(); QMenu *qmBox = qm.addMenu(tr("Bounding box")); QMenu *qmPen = qmBox->addMenu(tr("Pen width")); QMenu *qmPad = qmBox->addMenu(tr("Padding")); boxpencolor = qmBox->addAction(tr("Pen color")); boxfillcolor = qmBox->addAction(tr("Fill color")); QActionGroup *qagPen = new QActionGroup(qmPen); QActionGroup *qagPad = new QActionGroup(qmPad); for (int i=0;i<4;++i) { qreal v = (i) ? powf(2.0f, static_cast<float>(-10 + i)) : 0.0f; boxpen[i] = new QAction(QString::number(i), qagPen); boxpen[i]->setData(v); boxpen[i]->setCheckable(true); if (qFuzzyCompare(os.fBoxPenWidth, v)) boxpen[i]->setChecked(true); qmPen->addAction(boxpen[i]); boxpad[i] = new QAction(QString::number(i), qagPad); boxpad[i]->setData(v); boxpad[i]->setCheckable(true); if (qFuzzyCompare(os.fBoxPad, v)) boxpad[i]->setChecked(true); qmPad->addAction(boxpad[i]); } } QAction *act = qm.exec(e->screenPos()); if (! act) return; for (int i=0;i<8;++i) { if (userOpacity[i] == act) { float o = static_cast<float>(act->data().toReal()); os.fUser[tsColor] = o; qgiGroup->setOpacity(o); } } for (int i=0;i<8;++i) { if (objectOpacity[i] == act) { qreal o = act->data().toReal(); if (item == qgpiMuted) os.fMutedDeafened = o; else if (item == qgpiAvatar) os.fAvatar = o; else if (item == qgpiChannel) os.fChannel = o; else if (item == qgpiName) os.fUserName = o; item->setOpacity(o); } } for (int i=0;i<4;++i) { if (boxpen[i] == act) { os.fBoxPenWidth = act->data().toReal(); moveBox(); } else if (boxpad[i] == act) { os.fBoxPad = act->data().toReal(); moveBox(); } } for (int i=0;i<6;++i) { if (align[i] == act) { Qt::Alignment *aptr; if (item == qgpiAvatar) aptr = & os.qaAvatar; else if (item == qgpiChannel) aptr = & os.qaChannel; else if (item == qgpiMuted) aptr = & os.qaMutedDeafened; else aptr = & os.qaUserName; Qt::Alignment a = static_cast<Qt::Alignment>(act->data().toInt()); if (a & Qt::AlignHorizontal_Mask) { *aptr = (*aptr & ~Qt::AlignHorizontal_Mask) | a; } else { *aptr = (*aptr & ~Qt::AlignVertical_Mask) | a; } updateSelected(); } } if (act == boxpencolor) { QColor qc = QColorDialog::getColor(os.qcBoxPen, e->widget(), tr("Pick pen color"), QColorDialog::DontUseNativeDialog | QColorDialog::ShowAlphaChannel); if (! qc.isValid()) return; os.qcBoxPen = qc; moveBox(); } else if (act == boxfillcolor) { QColor qc = QColorDialog::getColor(os.qcBoxFill, e->widget(), tr("Pick fill color"), QColorDialog::DontUseNativeDialog | QColorDialog::ShowAlphaChannel); if (! qc.isValid()) return; os.qcBoxFill = qc; moveBox(); } else if (act == color) { QColor *col = NULL; if (item == qgpiChannel) col = & os.qcChannel; else if (item == qgpiName) col = & os.qcUserName[tsColor]; if (! col) return; QColor qc = QColorDialog::getColor(*col, e->widget(), tr("Pick color"), QColorDialog::DontUseNativeDialog); if (! qc.isValid()) return; qc.setAlpha(255); if (qc == *col) return; *col = qc; updateSelected(); } else if (act == fontAction) { QFont *fontptr = (item == qgpiChannel) ? &os.qfChannel : &os.qfUserName; qgpiSelected = NULL; qgriSelected->hide(); // QFontDialog doesn't really like graphics view. At all. QFontDialog qfd; qfd.setOptions(QFontDialog::DontUseNativeDialog); qfd.setCurrentFont(*fontptr); qfd.setWindowTitle(tr("Pick font")); int ret; if (g.ocIntercept) { QGraphicsProxyWidget *qgpw = new QGraphicsProxyWidget(NULL, Qt::Window); qgpw->setWidget(&qfd); addItem(qgpw); qgpw->setZValue(3.0f); qgpw->setPanelModality(QGraphicsItem::PanelModal); qgpw->setPos(- qgpw->boundingRect().width() / 2.0f, - qgpw->boundingRect().height() / 2.0f); qgpw->show(); ret = qfd.exec(); qgpw->hide(); qgpw->setWidget(NULL); delete qgpw; } else { Qt::WindowFlags wf = g.mw->windowFlags(); if (wf.testFlag(Qt::WindowStaysOnTopHint)) qfd.setWindowFlags(qfd.windowFlags() | Qt::WindowStaysOnTopHint); ret = qfd.exec(); } if (! ret) return; *fontptr = qfd.selectedFont(); resync(); } else if (act == qaLayoutLargeAvatar) { os.setPreset(OverlaySettings::LargeSquareAvatar); resync(); } else if (act == qaLayoutText) { os.setPreset(OverlaySettings::AvatarAndName); resync(); } }