📄 qdesigner_command.cpp
字号:
lb->show(); } checkSelection(m_parentWidget);}// ---- BreakLayoutCommand ----BreakLayoutCommand::BreakLayoutCommand(QDesignerFormWindowInterface *formWindow) : QDesignerFormWindowCommand(tr("Break layout"), formWindow){}BreakLayoutCommand::~BreakLayoutCommand(){}void BreakLayoutCommand::init(const QList<QWidget*> &widgets, QWidget *layoutBase){ QDesignerFormEditorInterface *core = formWindow()->core(); m_widgets = widgets; m_layoutBase = core->widgetFactory()->containerOfWidget(layoutBase); m_layout = 0; QPoint grid = formWindow()->grid(); LayoutInfo::Type lay = LayoutInfo::layoutType(core, m_layoutBase); if (lay == LayoutInfo::HBox) m_layout = new HorizontalLayout(widgets, m_layoutBase, formWindow(), m_layoutBase, qobject_cast<QSplitter*>(m_layoutBase) != 0); else if (lay == LayoutInfo::VBox) m_layout = new VerticalLayout(widgets, m_layoutBase, formWindow(), m_layoutBase, qobject_cast<QSplitter*>(m_layoutBase) != 0); else if (lay == LayoutInfo::Grid) m_layout = new GridLayout(widgets, m_layoutBase, formWindow(), m_layoutBase, QSize(qMax(5, grid.x()), qMax(5, grid.y()))); // ### StackedLayout Q_ASSERT(m_layout != 0); m_layout->sort(); m_margin = m_layout->margin(); m_spacing = m_layout->spacing();}void BreakLayoutCommand::redo(){ if (!m_layout) return; QDesignerFormEditorInterface *core = formWindow()->core(); QWidget *lb = m_layout->layoutBaseWidget(); QDesignerLayoutDecorationExtension *deco = qt_extension<QDesignerLayoutDecorationExtension*>(core->extensionManager(), lb); QWidget *p = m_layout->parentWidget(); if (!deco && hasLayout(p)) deco = qt_extension<QDesignerLayoutDecorationExtension*>(core->extensionManager(), p); formWindow()->clearSelection(false); m_layout->breakLayout(); delete deco; // release the extension foreach (QWidget *widget, m_widgets) { widget->resize(widget->size().expandedTo(QSize(16, 16))); }}void BreakLayoutCommand::undo(){ if (!m_layout) return; formWindow()->clearSelection(false); m_layout->doLayout(); if (m_layoutBase && m_layoutBase->layout()) { m_layoutBase->layout()->setSpacing(m_spacing); m_layoutBase->layout()->setMargin(m_margin); }}// ---- ToolBoxCommand ----ToolBoxCommand::ToolBoxCommand(QDesignerFormWindowInterface *formWindow) : QDesignerFormWindowCommand(QString(), formWindow){}ToolBoxCommand::~ToolBoxCommand(){}void ToolBoxCommand::init(QToolBox *toolBox){ m_toolBox = toolBox; m_index = m_toolBox->currentIndex(); m_widget = m_toolBox->widget(m_index); m_itemText = m_toolBox->itemText(m_index); m_itemIcon = m_toolBox->itemIcon(m_index);}void ToolBoxCommand::removePage(){ m_toolBox->removeItem(m_index); m_widget->hide(); m_widget->setParent(formWindow());}void ToolBoxCommand::addPage(){ m_widget->setParent(m_toolBox); m_toolBox->insertItem(m_index, m_widget, m_itemIcon, m_itemText); m_toolBox->setCurrentIndex(m_index); m_widget->show();}// ---- MoveToolBoxPageCommand ----MoveToolBoxPageCommand::MoveToolBoxPageCommand(QDesignerFormWindowInterface *formWindow) : ToolBoxCommand(formWindow){}MoveToolBoxPageCommand::~MoveToolBoxPageCommand(){}void MoveToolBoxPageCommand::init(QToolBox *toolBox, QWidget *page, int newIndex){ ToolBoxCommand::init(toolBox); setDescription(tr("Move Page")); m_widget = page; m_oldIndex = m_toolBox->indexOf(m_widget); m_itemText = m_toolBox->itemText(m_oldIndex); m_itemIcon = m_toolBox->itemIcon(m_oldIndex); m_newIndex = newIndex;}void MoveToolBoxPageCommand::redo(){ m_toolBox->removeItem(m_oldIndex); m_toolBox->insertItem(m_newIndex, m_widget, m_itemIcon, m_itemText);}void MoveToolBoxPageCommand::undo(){ m_toolBox->removeItem(m_newIndex); m_toolBox->insertItem(m_oldIndex, m_widget, m_itemIcon, m_itemText);}// ---- DeleteToolBoxPageCommand ----DeleteToolBoxPageCommand::DeleteToolBoxPageCommand(QDesignerFormWindowInterface *formWindow) : ToolBoxCommand(formWindow){}DeleteToolBoxPageCommand::~DeleteToolBoxPageCommand(){}void DeleteToolBoxPageCommand::init(QToolBox *toolBox){ ToolBoxCommand::init(toolBox); setDescription(tr("Delete Page"));}void DeleteToolBoxPageCommand::redo(){ removePage(); cheapUpdate();}void DeleteToolBoxPageCommand::undo(){ addPage(); cheapUpdate();}// ---- AddToolBoxPageCommand ----AddToolBoxPageCommand::AddToolBoxPageCommand(QDesignerFormWindowInterface *formWindow) : ToolBoxCommand(formWindow){}AddToolBoxPageCommand::~AddToolBoxPageCommand(){}void AddToolBoxPageCommand::init(QToolBox *toolBox){ init(toolBox, InsertBefore);}void AddToolBoxPageCommand::init(QToolBox *toolBox, InsertionMode mode){ m_toolBox = toolBox; m_index = m_toolBox->currentIndex(); if (mode == InsertAfter) m_index++; m_widget = new QDesignerWidget(formWindow(), m_toolBox); m_itemText = tr("Page"); m_itemIcon = QIcon(); m_widget->setObjectName(tr("page")); formWindow()->ensureUniqueObjectName(m_widget); setDescription(tr("Insert Page")); QDesignerFormEditorInterface *core = formWindow()->core(); core->metaDataBase()->add(m_widget);}void AddToolBoxPageCommand::redo(){ addPage(); cheapUpdate();}void AddToolBoxPageCommand::undo(){ removePage(); cheapUpdate();}// ---- TabWidgetCommand ----TabWidgetCommand::TabWidgetCommand(QDesignerFormWindowInterface *formWindow) : QDesignerFormWindowCommand(QString(), formWindow){}TabWidgetCommand::~TabWidgetCommand(){}void TabWidgetCommand::init(QTabWidget *tabWidget){ m_tabWidget = tabWidget; m_index = m_tabWidget->currentIndex(); m_widget = m_tabWidget->widget(m_index); m_itemText = m_tabWidget->tabText(m_index); m_itemIcon = m_tabWidget->tabIcon(m_index);}void TabWidgetCommand::removePage(){ m_tabWidget->removeTab(m_index); m_widget->hide(); m_widget->setParent(formWindow()); m_tabWidget->setCurrentIndex(qMin(m_index, m_tabWidget->count()));}void TabWidgetCommand::addPage(){ m_widget->setParent(0); m_tabWidget->insertTab(m_index, m_widget, m_itemIcon, m_itemText); m_widget->show(); m_tabWidget->setCurrentIndex(m_index);}// ---- DeleteTabPageCommand ----DeleteTabPageCommand::DeleteTabPageCommand(QDesignerFormWindowInterface *formWindow) : TabWidgetCommand(formWindow){}DeleteTabPageCommand::~DeleteTabPageCommand(){}void DeleteTabPageCommand::init(QTabWidget *tabWidget){ TabWidgetCommand::init(tabWidget); setDescription(tr("Delete Page"));}void DeleteTabPageCommand::redo(){ removePage(); cheapUpdate();}void DeleteTabPageCommand::undo(){ addPage(); cheapUpdate();}// ---- AddTabPageCommand ----AddTabPageCommand::AddTabPageCommand(QDesignerFormWindowInterface *formWindow) : TabWidgetCommand(formWindow){}AddTabPageCommand::~AddTabPageCommand(){}void AddTabPageCommand::init(QTabWidget *tabWidget){ init(tabWidget, InsertBefore);}void AddTabPageCommand::init(QTabWidget *tabWidget, InsertionMode mode){ m_tabWidget = tabWidget; m_index = m_tabWidget->currentIndex(); if (mode == InsertAfter) m_index++; m_widget = new QDesignerWidget(formWindow(), m_tabWidget); m_itemText = tr("Page"); m_itemIcon = QIcon(); m_widget->setObjectName(tr("tab")); formWindow()->ensureUniqueObjectName(m_widget); setDescription(tr("Insert Page")); QDesignerFormEditorInterface *core = formWindow()->core(); core->metaDataBase()->add(m_widget);}void AddTabPageCommand::redo(){ addPage(); cheapUpdate();}void AddTabPageCommand::undo(){ removePage(); cheapUpdate();}// ---- MoveTabPageCommand ----MoveTabPageCommand::MoveTabPageCommand(QDesignerFormWindowInterface *formWindow) : TabWidgetCommand(formWindow){}MoveTabPageCommand::~MoveTabPageCommand(){}void MoveTabPageCommand::init(QTabWidget *tabWidget, QWidget *page, const QIcon &icon, const QString &label, int index, int newIndex){ TabWidgetCommand::init(tabWidget); setDescription(tr("Move Page")); m_page = page; m_newIndex = newIndex; m_oldIndex = index; m_label = label; m_icon = icon;}void MoveTabPageCommand::redo(){ m_tabWidget->removeTab(m_oldIndex); m_tabWidget->insertTab(m_newIndex, m_page, m_icon, m_label); m_tabWidget->setCurrentIndex(m_newIndex);}void MoveTabPageCommand::undo(){ m_tabWidget->removeTab(m_newIndex); m_tabWidget->insertTab(m_oldIndex, m_page, m_icon, m_label); m_tabWidget->setCurrentIndex(m_oldIndex);}// ---- StackedWidgetCommand ----StackedWidgetCommand::StackedWidgetCommand(QDesignerFormWindowInterface *formWindow) : QDesignerFormWindowCommand(QString(), formWindow){}StackedWidgetCommand::~StackedWidgetCommand(){}void StackedWidgetCommand::init(QStackedWidget *stackedWidget){ m_stackedWidget = stackedWidget; m_index = m_stackedWidget->currentIndex(); m_widget = m_stackedWidget->widget(m_index);}void StackedWidgetCommand::removePage(){ m_stackedWidget->removeWidget(m_stackedWidget->widget(m_index)); m_widget->hide(); m_widget->setParent(formWindow());}void StackedWidgetCommand::addPage(){ m_stackedWidget->insertWidget(m_index, m_widget); m_widget->show(); m_stackedWidget->setCurrentIndex(m_index);}// ---- MoveStackedWidgetCommand ----MoveStackedWidgetCommand::MoveStackedWidgetCommand(QDesignerFormWindowInterface *formWindow) : StackedWidgetCommand(formWindow){}MoveStackedWidgetCommand::~MoveStackedWidgetCommand(){}void MoveStackedWidgetCommand::init(QStackedWidget *stackedWidget, QWidget *page, int newIndex){ StackedWidgetCommand::init(stackedWidget); setDescription(tr("Move Page")); m_widget = page; m_newIndex = newIndex; m_oldIndex = m_stackedWidget->indexOf(m_widget);}void MoveStackedWidgetCommand::redo(){ m_stackedWidget->removeWidget(m_widget); m_stackedWidget->insertWidget(m_newIndex, m_widget);}void MoveStackedWidgetCommand::undo(){ m_stackedWidget->removeWidget(m_widget); m_stackedWidget->insertWidget(m_oldIndex, m_widget);}// ---- DeleteStackedWidgetPageCommand ----DeleteStackedWidgetPageCommand::DeleteStackedWidgetPageCommand(QDesignerFormWindowInterface *formWindow) : StackedWidgetCommand(formWindow){}DeleteStackedWidgetPageCommand::~DeleteStackedWidgetPageCommand(){}void DeleteStackedWidgetPageCommand::init(QStackedWidget *stackedWidget){ StackedWidgetCommand::init(stackedWidget); setDescription(tr("Delete Page"));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -