[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/desktop/shell
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2010-09-01 0:42:02
Message-ID: 20100901004202.3038BAC857 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1170462 by aseigo:
FEATURE: load or use templates
M +44 -10 interactiveconsole.cpp
M +1 -0 interactiveconsole.h
--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/interactiveconsole.cpp \
#1170461:1170462 @@ -85,20 +85,28 @@
label->setFont(f);
editorLayout->addWidget(label);
- QToolButton *snippetsButton = new QToolButton(this);
- snippetsButton->setPopupMode(QToolButton::InstantPopup);
- snippetsButton->setMenu(m_snippetsMenu);
- snippetsButton->setText(i18n("Templates"));
connect(m_snippetsMenu, SIGNAL(aboutToShow()), this, \
SLOT(populateTemplatesMenu()));
- connect(m_snippetsMenu, SIGNAL(triggered(QAction*)), this, \
SLOT(loadTemplate(QAction*)));
+ QToolButton *loadTemplateButton = new QToolButton(this);
+ loadTemplateButton->setPopupMode(QToolButton::InstantPopup);
+ loadTemplateButton->setMenu(m_snippetsMenu);
+ loadTemplateButton->setText(i18n("Load"));
+ connect(loadTemplateButton, SIGNAL(triggered(QAction*)), this, \
SLOT(loadTemplate(QAction*))); +
+ QToolButton *useTemplateButton = new QToolButton(this);
+ useTemplateButton->setPopupMode(QToolButton::InstantPopup);
+ useTemplateButton->setMenu(m_snippetsMenu);
+ useTemplateButton->setText(i18n("Use"));
+ connect(useTemplateButton, SIGNAL(triggered(QAction*)), this, \
SLOT(useTemplate(QAction*))); +
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->addWidget(snippetsButton);
+ toolBar->addWidget(loadTemplateButton);
+ toolBar->addWidget(useTemplateButton);
editorLayout->addWidget(toolBar);
@@ -312,9 +320,8 @@
Plasma::Package package(path, templateStructure);
const QString scriptFile = package.filePath("mainscript");
if (!scriptFile.isEmpty()) {
- QAction *action = m_snippetsMenu->addAction(i18nc("A script template \
name and the internal plugin name for use in the user's scripts",
- "%1 (%2)", \
info.name(), info.pluginName()));
- action->setData(scriptFile);
+ QAction *action = m_snippetsMenu->addAction(info.name());
+ action->setData(info.pluginName());
}
}
}
@@ -322,9 +329,36 @@
void InteractiveConsole::loadTemplate(QAction *action)
{
- loadScriptFromUrl(KUrl(action->data().toString()));
+ Plasma::PackageStructure::Ptr templateStructure(new \
WorkspaceScripting::LayoutTemplatePackageStructure); + const QString pluginName = \
action->data().toString(); + const QString path = KStandardDirs::locate("data", \
templateStructure->defaultPackageRoot() + '/' + pluginName + '/'); + if \
(!path.isEmpty()) { + Plasma::Package package(path, templateStructure);
+ const QString scriptFile = package.filePath("mainscript");
+ if (!scriptFile.isEmpty()) {
+ loadScriptFromUrl(KUrl(scriptFile));
}
+ }
+}
+void InteractiveConsole::useTemplate(QAction *action)
+{
+ QString code("var template = loadTemplate('" + action->data().toString() + \
"')"); + if (m_editorPart) {
+ const QList<KTextEditor::View *> views = m_editorPart->views();
+ if (views.isEmpty()) {
+ m_editorPart->insertLines(m_editorPart->lines(), QStringList() << code);
+ } else {
+ KTextEditor::Cursor cursor = views.at(0)->cursorPosition();
+ m_editorPart->insertLines(cursor.line(), QStringList() << code);
+ cursor.setLine(cursor.line() + 1);
+ views.at(0)->setCursorPosition(cursor);
+ }
+ } else {
+ m_editor->insertPlainText(code);
+ }
+}
+
void InteractiveConsole::scriptFileDataRecvd(KIO::Job *job, const QByteArray &data)
{
Q_ASSERT(m_editor);
--- trunk/KDE/kdebase/workspace/plasma/desktop/shell/interactiveconsole.h \
#1170461:1170462 @@ -79,6 +79,7 @@
void loadScriptFromUrl(const KUrl &url);
void populateTemplatesMenu();
void loadTemplate(QAction *);
+ void useTemplate(QAction *);
private:
void onClose();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic