void PostWindow::applySettings(Settings::Manager * settings) { int scrollback = settings->value("IDE/postWindow/scrollback").toInt(); QFont font = settings->codeFont(); QPalette palette; settings->beginGroup("IDE/editor/colors"); if (settings->contains("text")) { QTextCharFormat format = settings->value("text").value<QTextCharFormat>(); QBrush bg = format.background(); QBrush fg = format.foreground(); if (bg.style() != Qt::NoBrush) palette.setBrush(QPalette::Base, bg); if (fg.style() != Qt::NoBrush) palette.setBrush(QPalette::Text, fg); } settings->endGroup(); // colors bool lineWrap = settings->value("IDE/postWindow/lineWrap").toBool(); setMaximumBlockCount(scrollback); setFont(font); setPalette(palette); setLineWrap( lineWrap ); QFontMetrics metrics (font); QString stringOfSpaces (settings->value("IDE/editor/indentWidth").toInt(), QChar(' ')); setTabStopWidth(metrics.width(stringOfSpaces)); updateActionShortcuts(settings); }
void StelShortcut::setPrimaryKey(const QKeySequence &key) { m_primaryKey = key; updateActionShortcuts(); emit shortcutChanged(this); }
/*! Mimic the look of the text editor toolbar as defined in e.g. EditorView::EditorView */ EditorToolBar::EditorToolBar(QWidget *parent) : Utils::StyledBar(parent), d(new EditorToolBarPrivate(parent, this)) { QHBoxLayout *toolBarLayout = new QHBoxLayout(this); toolBarLayout->setMargin(0); toolBarLayout->setSpacing(0); toolBarLayout->addWidget(d->m_defaultToolBar); d->m_toolBarPlaceholder->setLayout(toolBarLayout); d->m_toolBarPlaceholder->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); d->m_defaultToolBar->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); d->m_activeToolBar = d->m_defaultToolBar; d->m_lockButton->setAutoRaise(true); d->m_lockButton->setEnabled(false); d->m_dragHandle->setProperty("noArrow", true); d->m_dragHandle->setToolTip(tr("Drag to drag documents between splits")); d->m_dragHandle->installEventFilter(this); d->m_dragHandleMenu = new QMenu(d->m_dragHandle); d->m_dragHandle->setMenu(d->m_dragHandleMenu); connect(d->m_goBackAction, &QAction::triggered, this, &EditorToolBar::goBackClicked); connect(d->m_goForwardAction, &QAction::triggered, this, &EditorToolBar::goForwardClicked); d->m_editorList->setProperty("hideicon", true); d->m_editorList->setProperty("notelideasterisk", true); d->m_editorList->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); d->m_editorList->setMinimumContentsLength(20); d->m_editorList->setModel(DocumentModel::model()); d->m_editorList->setMaxVisibleItems(40); d->m_editorList->setContextMenuPolicy(Qt::CustomContextMenu); d->m_closeEditorButton->setAutoRaise(true); d->m_closeEditorButton->setIcon(Icons::CLOSE_TOOLBAR.icon()); d->m_closeEditorButton->setEnabled(false); d->m_closeEditorButton->setProperty("showborder", true); d->m_toolBarPlaceholder->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); d->m_backButton->setDefaultAction(d->m_goBackAction); d->m_forwardButton->setDefaultAction(d->m_goForwardAction); if (Utils::HostOsInfo::isMacHost()) { d->m_horizontalSplitAction->setIconVisibleInMenu(false); d->m_verticalSplitAction->setIconVisibleInMenu(false); d->m_splitNewWindowAction->setIconVisibleInMenu(false); } d->m_splitButton->setIcon(Icons::SPLIT_HORIZONTAL_TOOLBAR.icon()); d->m_splitButton->setToolTip(tr("Split")); d->m_splitButton->setPopupMode(QToolButton::InstantPopup); d->m_splitButton->setProperty("noArrow", true); QMenu *splitMenu = new QMenu(d->m_splitButton); splitMenu->addAction(d->m_horizontalSplitAction); splitMenu->addAction(d->m_verticalSplitAction); splitMenu->addAction(d->m_splitNewWindowAction); d->m_splitButton->setMenu(splitMenu); d->m_closeSplitButton->setAutoRaise(true); d->m_closeSplitButton->setIcon(Icons::CLOSE_SPLIT_BOTTOM.icon()); QHBoxLayout *toplayout = new QHBoxLayout(this); toplayout->setSpacing(0); toplayout->setMargin(0); toplayout->addWidget(d->m_backButton); toplayout->addWidget(d->m_forwardButton); toplayout->addWidget(d->m_lockButton); toplayout->addWidget(d->m_dragHandle); toplayout->addWidget(d->m_editorList); toplayout->addWidget(d->m_closeEditorButton); toplayout->addWidget(d->m_toolBarPlaceholder, 1); // Custom toolbar stretches toplayout->addWidget(d->m_splitButton); toplayout->addWidget(d->m_closeSplitButton); setLayout(toplayout); // this signal is disconnected for standalone toolbars and replaced with // a private slot connection connect(d->m_editorList, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &EditorToolBar::listSelectionActivated); connect(d->m_editorList, &QComboBox::customContextMenuRequested, [this](QPoint p) { QMenu menu; fillListContextMenu(&menu); menu.exec(d->m_editorList->mapToGlobal(p)); }); connect(d->m_dragHandleMenu, &QMenu::aboutToShow, [this]() { d->m_dragHandleMenu->clear(); fillListContextMenu(d->m_dragHandleMenu); }); connect(d->m_lockButton, &QAbstractButton::clicked, this, &EditorToolBar::makeEditorWritable); connect(d->m_closeEditorButton, &QAbstractButton::clicked, this, &EditorToolBar::closeEditor, Qt::QueuedConnection); connect(d->m_horizontalSplitAction, &QAction::triggered, this, &EditorToolBar::horizontalSplitClicked, Qt::QueuedConnection); connect(d->m_verticalSplitAction, &QAction::triggered, this, &EditorToolBar::verticalSplitClicked, Qt::QueuedConnection); connect(d->m_splitNewWindowAction, &QAction::triggered, this, &EditorToolBar::splitNewWindowClicked, Qt::QueuedConnection); connect(d->m_closeSplitButton, &QAbstractButton::clicked, this, &EditorToolBar::closeSplitClicked, Qt::QueuedConnection); connect(ActionManager::command(Constants::CLOSE), &Command::keySequenceChanged, this, &EditorToolBar::updateActionShortcuts); connect(ActionManager::command(Constants::GO_BACK), &Command::keySequenceChanged, this, &EditorToolBar::updateActionShortcuts); connect(ActionManager::command(Constants::GO_FORWARD), &Command::keySequenceChanged, this, &EditorToolBar::updateActionShortcuts); updateActionShortcuts(); }
/*! Mimic the look of the text editor toolbar as defined in e.g. EditorView::EditorView */ EditorToolBar::EditorToolBar(QWidget *parent) : Utils::StyledBar(parent), m_editorList(new QComboBox(this)), m_closeButton(new QToolButton), m_lockButton(new QToolButton), m_goBackAction(new QAction(QIcon(QLatin1String(":/help/images/previous.png")), EditorManager::tr("Go Back"), parent)), m_goForwardAction(new QAction(QIcon(QLatin1String(":/help/images/next.png")), EditorManager::tr("Go Forward"), parent)), m_activeToolBar(0), m_toolBarPlaceholder(new QWidget), m_defaultToolBar(new QWidget(this)), m_isStandalone(false) { QHBoxLayout *toolBarLayout = new QHBoxLayout(this); toolBarLayout->setMargin(0); toolBarLayout->setSpacing(0); toolBarLayout->addWidget(m_defaultToolBar); m_toolBarPlaceholder->setLayout(toolBarLayout); m_toolBarPlaceholder->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); m_defaultToolBar->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); m_activeToolBar = m_defaultToolBar; m_editorsListModel = EditorManager::instance()->openedEditorsModel(); connect(m_goBackAction, SIGNAL(triggered()), this, SIGNAL(goBackClicked())); connect(m_goForwardAction, SIGNAL(triggered()), this, SIGNAL(goForwardClicked())); m_editorList->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_editorList->setMinimumContentsLength(20); m_editorList->setModel(m_editorsListModel); m_editorList->setMaxVisibleItems(40); m_editorList->setContextMenuPolicy(Qt::CustomContextMenu); m_lockButton->setAutoRaise(true); m_lockButton->setProperty("type", QLatin1String("dockbutton")); m_lockButton->setVisible(false); m_closeButton->setAutoRaise(true); m_closeButton->setIcon(QIcon(":/core/images/closebutton.png")); m_closeButton->setProperty("type", QLatin1String("dockbutton")); m_closeButton->setEnabled(false); m_toolBarPlaceholder->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); m_backButton = new QToolButton(this); m_backButton->setDefaultAction(m_goBackAction); m_forwardButton= new QToolButton(this); m_forwardButton->setDefaultAction(m_goForwardAction); QHBoxLayout *toplayout = new QHBoxLayout(this); toplayout->setSpacing(0); toplayout->setMargin(0); toplayout->addWidget(m_backButton); toplayout->addWidget(m_forwardButton); toplayout->addWidget(m_editorList); toplayout->addWidget(m_toolBarPlaceholder, 1); // Custom toolbar stretches toplayout->addWidget(m_lockButton); toplayout->addWidget(m_closeButton); setLayout(toplayout); // this signal is disconnected for standalone toolbars and replaced with // a private slot connection connect(m_editorList, SIGNAL(activated(int)), this, SIGNAL(listSelectionActivated(int))); connect(m_editorList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(listContextMenu(QPoint))); connect(m_lockButton, SIGNAL(clicked()), this, SLOT(makeEditorWritable())); connect(m_closeButton, SIGNAL(clicked()), this, SLOT(closeView()), Qt::QueuedConnection); ActionManager *am = ICore::instance()->actionManager(); connect(am->command(Constants::CLOSE), SIGNAL(keySequenceChanged()), this, SLOT(updateActionShortcuts())); connect(am->command(Constants::GO_BACK), SIGNAL(keySequenceChanged()), this, SLOT(updateActionShortcuts())); connect(am->command(Constants::GO_FORWARD), SIGNAL(keySequenceChanged()), this, SLOT(updateActionShortcuts())); }