void CMainWindow::resizeSubMDI(const QSize &size) { QMdiSubWindow *activeSubWindow = 0; QList<QMdiSubWindow *> windowList = m_centralWidget->subWindowList(); if (windowList.size() > 0) { activeSubWindow = windowList.last(); if (0 == activeSubWindow) { return; } } else { return; } CDrawBoardFrame *frame = (CDrawBoardFrame *)activeSubWindow->widget(); if (0 == frame) { return; } frame->setMinimumSize(size); activeSubWindow->resize(QSize(size.width() + 14, size.height() + 43)); frame = 0; activeSubWindow = 0; }
void XMainWindow::showEvent(QShowEvent *event) { if(!_private->_shown) { _private->_shown = true; QRect availableGeometry = QApplication::desktop()->availableGeometry(); if(!omfgThis->showTopLevel() && !isModal()) availableGeometry = omfgThis->workspace()->geometry(); QString objName = objectName(); QPoint pos = xtsettingsValue(objName + "/geometry/pos").toPoint(); QSize lsize = xtsettingsValue(objName + "/geometry/size").toSize(); setAttribute(Qt::WA_DeleteOnClose); if(omfgThis->showTopLevel() || isModal()) { if(lsize.isValid() && xtsettingsValue(objName + "/geometry/rememberSize", true).toBool() && (metaObject()->className() != QString("xTupleDesigner"))) resize(lsize); omfgThis->_windowList.append(this); statusBar()->show(); QRect r(pos, size()); if(!pos.isNull() && availableGeometry.contains(r) && xtsettingsValue(objName + "/geometry/rememberPos", true).toBool()) move(pos); } else { QWidget * fw = focusWidget(); QMdiSubWindow *subwin = omfgThis->workspace()->addSubWindow(this); omfgThis->workspace()->setActiveSubWindow(subwin); connect(this, SIGNAL(destroyed(QObject*)), subwin, SLOT(close())); if(lsize.isValid() && xtsettingsValue(objName + "/geometry/rememberSize", true).toBool()) subwin->resize(lsize); QRect r(pos, lsize); if(!pos.isNull() && availableGeometry.contains(r) && xtsettingsValue(objName + "/geometry/rememberPos", true).toBool()) move(pos); // This originally had to be after the show? Will it work here? if(fw) fw->setFocus(); } _private->loadScriptEngine(); QList<XCheckBox*> allxcb = findChildren<XCheckBox*>(); for (int i = 0; i < allxcb.size(); ++i) allxcb.at(i)->init(); shortcuts::setStandardKeys(this); }
/*! Tile the windows. There is one window for digital signal generation and one window for analog signal generation. */ void UiGeneratorArea::tileSubWindows() { QList<QMdiSubWindow*> windows = subWindowList(); if (windows.size() == 0) return; int wHeight = (height()) / windows.size(); int y = 0; for (int i = 0; i < windows.size(); i++) { QMdiSubWindow* win = windows.at(i); win->resize(width(), wHeight); win->move(0, y); y += wHeight; } mIsSubWindowsTiled = true; }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RiuPlotMainWindow::setWidthOfMdiWindow(QWidget* mdiWindowWidget, int newWidth) { QMdiSubWindow* mdiWindow = findMdiSubWindow(mdiWindowWidget); if (mdiWindow) { QSize subWindowSize = mdiWindow->size(); subWindowSize.setWidth(std::max(newWidth, 100)); mdiWindow->resize(subWindowSize); if (mdiWindow->isMaximized()) { // Set window temporarily to normal state and back to maximized // to redo layout so the whole window canvas is filled // Tried to activate layout, did not work as expected // Tested code: // m_layout->activate(); // mdiWindow->layout()->activate(); mdiWindow->showNormal(); mdiWindow->showMaximized(); } } }
void ChatList::addChatWindow(ChatWindow* chatw) { connect(m_mainWindow, SIGNAL(closing()), chatw, SLOT(save())); int listSize = m_chatWindowList.size(); beginInsertRows(QModelIndex(), listSize, listSize); m_chatMenu.addAction(chatw->toggleViewAction()); connect(chatw, SIGNAL(ChatWindowHasChanged(ChatWindow *)), this, SLOT(changeChatWindow(ChatWindow *))); QMdiSubWindow* subWindowChat = static_cast<QMdiSubWindow*>(m_mainWindow->registerSubWindow(chatw,chatw->toggleViewAction())); connect(chatw->chat(), SIGNAL(changedName(QString)), subWindowChat, SLOT(setWindowTitle(QString))); m_chatWindowList.append(chatw); m_chatSubWindowList.append(subWindowChat); if((subWindowChat->height()<451)||(subWindowChat->width()<264)) { subWindowChat->resize(264,451); } if(NULL!=subWindowChat) { chatw->setSubWindow(subWindowChat); subWindowChat->setWindowTitle(tr("%1 (Chat)").arg(chatw->getTitleFromChat())); subWindowChat->setWindowIcon(QIcon(":/chat.png")); subWindowChat->setAttribute(Qt::WA_DeleteOnClose, false); chatw->setAttribute(Qt::WA_DeleteOnClose, false); subWindowChat->setVisible(chatw->toggleViewAction()->isChecked()); } endInsertRows(); }
/*! Enable/disable the \a generator according to \a enabled. */ void UiGeneratorArea::setGeneratorEnabled(GeneratorType generator, bool enabled) { GeneratorDevice* device = DeviceManager::instance().activeDevice() ->generatorDevice(); if (device == NULL) return; QMdiSubWindow* win; if (generator == AnalogGenerator) { win = mAnalogWin; device->enableAnalogGenerator(enabled); } else { win = mDigitalWin; device->enableDigitalGenerator(enabled); } bool added = (subWindowList().indexOf(win) != -1); if (enabled && !added) { addSubWindow(win); // for some reason the subwindow (win) can have a very small size // in some circumstances. Make sure it at least gets the same // size as its widget if (win->size().width() < win->widget()->size().width() || win->size().height() < win->widget()->size().height()) { win->resize(win->widget()->size()); } win->show(); win->widget()->show(); } else if (!enabled && added) { removeSubWindow(win); } }
QssEditor::QssEditor(QWidget *parent) : QWidget(parent), ui(new Ui::QssEditor), m_changed(false) { ui->setupUi(this); // some default values QHash<QString, QVariant> defaultValues; defaultValues.insert(SETTING_PREVIEW_DELAY, 750); Settings::instance()->addDefaultValues(defaultValues); resetWindowTitle(); // icons ui->toolOpen->setIcon(QIcon::fromTheme("document-open", QIcon(":/images/open.png"))); ui->toolSave->setIcon(QIcon::fromTheme("document-save", QIcon(":/images/save.png"))); ui->toolSaveAs->setIcon(QIcon::fromTheme("document-save-as", QIcon(":/images/saveas.png"))); ui->toolClose->setIcon(QIcon::fromTheme("window-close", QIcon(":/images/close.png"))); ui->toolUndo->setIcon(QIcon::fromTheme("edit-undo", QIcon(":/images/undo.png"))); ui->toolRedo->setIcon(QIcon::fromTheme("edit-redo", QIcon(":/images/redo.png"))); ui->toolOptions->setIcon(QIcon::fromTheme("preferences-system", QIcon(":/images/options.png"))); // application shortcuts new QShortcut(QKeySequence::Quit, this, SLOT(slotQuit())); new QShortcut(QKeySequence::Find, this, SLOT(slotFind())); new QShortcut(QKeySequence::FindNext, this, SLOT(slotFindNext())); new QShortcut(QKeySequence::HelpContents, this, SLOT(slotAbout())); // shortcuts ui->toolOpen->setShortcut(QKeySequence::Open); ui->toolSave->setShortcut(QKeySequence::Save); ui->toolSaveAs->setShortcut(QKeySequence::SaveAs); ui->toolClose->setShortcut(QKeySequence::Close); // built-in Qt icon ui->toolAboutQt->setIcon(QIcon( #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) ":/qt-project.org/qmessagebox/images/qtlogo-64.png" #else ":/trolltech/qmessagebox/images/qtlogo-64.png" #endif )); // menu for toolbutton QMenu *toolButtonMenu = new QMenu(this); toolButtonMenu->addAction("Item1"); toolButtonMenu->addSeparator(); toolButtonMenu->addAction("Item2"); ui->toolButton->setMenu(toolButtonMenu); m_timerDelayedApply = new QTimer(this); m_timerDelayedApply->setSingleShot(true); connect(m_timerDelayedApply, SIGNAL(timeout()), this, SLOT(slotApplyCss())); resetPreviewDelay(); QTimer *timerProgress = new QTimer(this); timerProgress->setInterval(500); connect(timerProgress, SIGNAL(timeout()), this, SLOT(slotProgress())); timerProgress->start(); ui->splitter->setCollapsible(0, false); ui->splitter->setStretchFactor(0, 1); // splitter size QList<int> list = QList<int>() << width()/2 << width()/2; ui->splitter->setSizes(list); // some MDI windows QMdiSubWindow *mdi = ui->mdiArea->addSubWindow(new QLabel("MDI", ui->mdiArea)); mdi->resize(160, 80); #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) ui->tree->header()->setSectionResizeMode(QHeaderView::ResizeToContents); ui->table->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); #else ui->tree->header()->setResizeMode(QHeaderView::ResizeToContents); ui->table->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); #endif ui->tree->topLevelItem(0)->setExpanded(true); ui->text->setCaretLineVisible(true); ui->text->setCaretLineBackgroundColor(QColor("gainsboro")); ui->text->setAutoIndent(true); ui->text->setIndentationGuides(false); ui->text->setIndentationsUseTabs(true); ui->text->setIndentationWidth(4); ui->text->setMarginsBackgroundColor(QColor("gainsboro")); ui->text->setMarginLineNumbers(1, true); ui->text->setMarginWidth(1, 50); ui->text->setAutoCompletionSource(QsciScintilla::AcsAll); ui->text->setAutoCompletionReplaceWord(true); ui->text->setAutoCompletionCaseSensitivity(false); ui->text->setAutoCompletionUseSingle(QsciScintilla::AcusAlways); ui->text->setAutoCompletionThreshold(0); ui->text->setBraceMatching(QsciScintilla::SloppyBraceMatch); ui->text->setMatchedBraceBackgroundColor(Qt::yellow); ui->text->setUnmatchedBraceForegroundColor(Qt::blue); // QSS lexer QsciLexerQSS *lexQss = new QsciLexerQSS(this); ui->text->setLexer(lexQss); ui->text->setFocus(); ui->text->installEventFilter(this); restoreLastFiles(); QTimer::singleShot(0, this, SLOT(slotDelayedOpen())); }
void TopWin::setIsMdiWin(bool val) { if (MusEGlobal::unityWorkaround) return; if (val) { if (!isMdiWin()) { _savedToolbarState = saveState(); int width_temp=width(); int height_temp=height(); bool vis=isVisible(); QMdiSubWindow* subwin = createMdiWrapper(); muse->addMdiSubWindow(subwin); subwin->resize(width_temp, height_temp); subwin->move(0,0); subwin->setVisible(vis); this->QMainWindow::show(); //bypass the delegation to the subwin if (_sharesToolsAndMenu == _sharesWhenFree[_type]) shareToolsAndMenu(_sharesWhenSubwin[_type]); fullscreenAction->setEnabled(false); fullscreenAction->setChecked(false); subwinAction->setChecked(true); muse->updateWindowMenu(); } else { if (MusEGlobal::debugMsg) printf("TopWin::setIsMdiWin(true) called, but window is already a MDI win\n"); } } else { if (isMdiWin()) { int width_temp=width(); int height_temp=height(); bool vis=isVisible(); QMdiSubWindow* mdisubwin_temp=mdisubwin; mdisubwin=NULL; setParent(NULL); mdisubwin_temp->hide(); delete mdisubwin_temp; resize(width_temp, height_temp); setVisible(vis); if (_sharesToolsAndMenu == _sharesWhenSubwin[_type]) shareToolsAndMenu(_sharesWhenFree[_type]); fullscreenAction->setEnabled(true); subwinAction->setChecked(false); muse->updateWindowMenu(); } else { if (MusEGlobal::debugMsg) printf("TopWin::setIsMdiWin(false) called, but window is not a MDI win\n"); } } }