本文整理汇总了C++中ktexteditor::View::setContextMenu方法的典型用法代码示例。如果您正苦于以下问题:C++ View::setContextMenu方法的具体用法?C++ View::setContextMenu怎么用?C++ View::setContextMenu使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ktexteditor::View
的用法示例。
在下文中一共展示了View::setContextMenu方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createView
KTextEditor::View* HtmlEditor::createView( QWidget* parent )
{
KTextEditor::Document *document = mEditor->createDocument( parent );
bool result = document->setHighlightingMode( "html" );
if ( result ) {
kDebug() << "Syntax highlighting enabled";
}
KTextEditor::View *view = document->createView( parent );
QMenu *menu = view->defaultContextMenu();
KTextEditor::ConfigInterface *interface = qobject_cast< KTextEditor::ConfigInterface* >( view );
if ( interface ) {
KAction *actWordWrap = new KAction( i18n( "Dynamic Word Wrap" ), view );
actWordWrap->setCheckable( true );
connect( actWordWrap, SIGNAL(triggered(bool)), this, SLOT(toggleWordWrap()) );
KAction *actLineNumber = new KAction( i18n("Show line numbers"), view );
actLineNumber->setCheckable( true );
connect( actLineNumber, SIGNAL(triggered(bool)), this, SLOT(toggleLineNumber()) );
QMenu *options = new QMenu( i18n( "Options" ), qobject_cast< QWidget* >( view ) );
options->addAction( actWordWrap );
options->addAction( actLineNumber );
menu->addSeparator();
menu->addMenu( options );
interface->setConfigValue( "dynamic-word-wrap", true );
actWordWrap->setChecked( true );
}
view->setContextMenu( menu );
return view;
}
示例2: QWidget
TextEditor::TextEditor(KTextEditor::Document *editorPart, PackageModel *model, QWidget *parent)
: QWidget(parent)
{
QHBoxLayout *l = new QHBoxLayout(this);
QWidget *centralWidget = editorPart->widget();
KTextEditor::View *view = qobject_cast<KTextEditor::View*>(centralWidget);
if (view) {
view->setContextMenu(view->defaultContextMenu());
//modify the toolbar
modifyToolBar(view);
KTextEditor::ConfigInterface *config = qobject_cast<KTextEditor::ConfigInterface*>(view);
if (config) {
config->setConfigValue("line-numbers", true);
config->setConfigValue("dynamic-word-wrap", true);
}
config = dynamic_cast<KTextEditor::ConfigInterface*>(editorPart);
if (config) {
config->setConfigValue("backup-on-save-prefix", ".");
}
// set nice defaults for katepart
KTextEditor::CommandInterface *command = dynamic_cast<KTextEditor::CommandInterface *>(editorPart->editor());
QString ret;
if (command) { //generic
command->queryCommand("set-indent-mode")->exec(view, "set-indent-mode normal", ret); // more friendly
command->queryCommand("set-replace-tabs")->exec(view, "set-replace-tabs 1", ret);// replaces tabs with spaces????
command->queryCommand("set-indent-width")->exec(view, "set-indent-width 4", ret);//4 spaces, Plasma's general coding style
}
//we should be setting the specific editing indentation, highlighting based on the type of document
if (model->implementationApi() == "declarativeappletscript" || model->implementationApi() == "javascript") {
editorPart->setHighlightingMode("JavaScript");
} else if (model->implementationApi() == "ruby-script") {
editorPart->setHighlightingMode("ruby");
if (command) {
command->queryCommand("set-indent-width")->exec(view, "set-indent-width 2", ret);// 2 spaces recommended for ruby
}
}
//there is no need for one more control. But we keep the code because it is easier to understand.
//so keep the generic format.
/*} else if (editorPart->setHighlightingMode() == "python") {
continue;
// Q: why we don't change the spaces?
// A: 4 spaces are recommended for python
}*/
}
l->addWidget(centralWidget);
}
示例3: QDialog
InteractiveConsole::InteractiveConsole(QWidget *parent)
: QDialog(parent),
m_splitter(new QSplitter(Qt::Vertical, this)),
m_editorPart(0),
m_editor(0),
m_output(0),
m_loadAction(KStandardAction::open(this, SLOT(openScriptFile()), this)),
m_saveAction(KStandardAction::saveAs(this, SLOT(saveScript()), this)),
m_clearAction(KStandardAction::clear(this, SLOT(clearEditor()), this)),
m_executeAction(new QAction(QIcon::fromTheme(QStringLiteral("system-run")), i18n("&Execute"), this)),
m_plasmaAction(new QAction(QIcon::fromTheme(QStringLiteral("plasma")), i18nc("Toolbar Button to switch to Plasma Scripting Mode", "Plasma"), this)),
m_kwinAction(new QAction(QIcon::fromTheme(QStringLiteral("kwin")), i18nc("Toolbar Button to switch to KWin Scripting Mode", "KWin"), this)),
m_snippetsMenu(new QMenu(i18n("Templates"), this)),
m_fileDialog(0),
m_closeWhenCompleted(false),
m_mode(PlasmaConsole)
{
addAction(KStandardAction::close(this, SLOT(close()), this));
addAction(m_saveAction);
addAction(m_clearAction);
setWindowTitle(i18n("Desktop Shell Scripting Console"));
setAttribute(Qt::WA_DeleteOnClose);
//setButtons(QDialog::None);
QWidget *widget = new QWidget(m_splitter);
QVBoxLayout *editorLayout = new QVBoxLayout(widget);
QLabel *label = new QLabel(i18n("Editor"), widget);
QFont f = label->font();
f.setBold(true);
label->setFont(f);
editorLayout->addWidget(label);
connect(m_snippetsMenu, &QMenu::aboutToShow, this, &InteractiveConsole::populateTemplatesMenu);
QToolButton *loadTemplateButton = new QToolButton(this);
loadTemplateButton->setPopupMode(QToolButton::InstantPopup);
loadTemplateButton->setMenu(m_snippetsMenu);
loadTemplateButton->setText(i18n("Load"));
connect(loadTemplateButton, &QToolButton::triggered, this, &InteractiveConsole::loadTemplate);
QToolButton *useTemplateButton = new QToolButton(this);
useTemplateButton->setPopupMode(QToolButton::InstantPopup);
useTemplateButton->setMenu(m_snippetsMenu);
useTemplateButton->setText(i18n("Use"));
connect(useTemplateButton, &QToolButton::triggered, this, &InteractiveConsole::useTemplate);
QActionGroup *modeGroup = new QActionGroup(this);
modeGroup->addAction(m_plasmaAction);
modeGroup->addAction(m_kwinAction);
m_plasmaAction->setCheckable(true);
m_kwinAction->setCheckable(true);
m_plasmaAction->setChecked(true);
connect(modeGroup, &QActionGroup::triggered, this, &InteractiveConsole::modeSelectionChanged);
KToolBar *toolBar = new KToolBar(this, true, false);
toolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBar->addAction(m_loadAction);
toolBar->addAction(m_saveAction);
toolBar->addAction(m_clearAction);
toolBar->addAction(m_executeAction);
toolBar->addAction(m_plasmaAction);
toolBar->addAction(m_kwinAction);
toolBar->addWidget(loadTemplateButton);
toolBar->addWidget(useTemplateButton);
editorLayout->addWidget(toolBar);
KService::List offers = KServiceTypeTrader::self()->query(QStringLiteral("KTextEditor/Document"));
foreach (const KService::Ptr service, offers) {
m_editorPart = service->createInstance<KTextEditor::Document>(widget);
if (m_editorPart) {
m_editorPart->setHighlightingMode(QStringLiteral("JavaScript/PlasmaDesktop"));
KTextEditor::View * view = m_editorPart->createView(widget);
view->setContextMenu(view->defaultContextMenu());
KTextEditor::ConfigInterface *config = qobject_cast<KTextEditor::ConfigInterface*>(view);
if (config) {
config->setConfigValue(QStringLiteral("line-numbers"), true);
config->setConfigValue(QStringLiteral("dynamic-word-wrap"), true);
}
editorLayout->addWidget(view);
connect(m_editorPart, &KTextEditor::Document::textChanged,
this, &InteractiveConsole::scriptTextChanged);
break;
}
}