|
@@ -59,6 +59,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
#include <QKeyEvent>
|
|
|
#include <QMimeData>
|
|
|
#include <QPointer>
|
|
|
+#include <QPushButton>
|
|
|
#include <QTextCursor>
|
|
|
#include <QVBoxLayout>
|
|
|
#include <QScrollBar>
|
|
@@ -95,7 +96,10 @@ ctkConsolePrivate::ctkConsolePrivate(ctkConsole& object) :
|
|
|
MultilineStatement(false), Ps1("$ "), Ps2("> "),
|
|
|
EditorHints(ctkConsole::AutomaticIndentation | ctkConsole::RemoveTrailingSpaces),
|
|
|
ScrollbarAtBottom(false),
|
|
|
- CompleterShortcuts(QList<QKeySequence>() << Qt::Key_Tab)
|
|
|
+ CompleterShortcuts(QList<QKeySequence>() << Qt::Key_Tab),
|
|
|
+ RunFileOptions(ctkConsole::RunFileShortcut),
|
|
|
+ RunFileButton(NULL),
|
|
|
+ RunFileAction(NULL)
|
|
|
{
|
|
|
}
|
|
|
|
|
@@ -129,23 +133,30 @@ void ctkConsolePrivate::init()
|
|
|
this->CommandHistory.append("");
|
|
|
this->CommandPosition = 0;
|
|
|
|
|
|
- QAction* runFileAction = new QAction(q->tr("&Run file"),q);
|
|
|
- runFileAction->setShortcut(q->tr("Ctrl+r"));
|
|
|
- connect(runFileAction, SIGNAL(triggered()), q, SLOT(runFile()));
|
|
|
- q->addAction(runFileAction);
|
|
|
+ this->RunFileAction = new QAction(q->tr("&Run file"), q);
|
|
|
+ this->RunFileAction->setShortcut(q->tr("Ctrl+r"));
|
|
|
+ connect(this->RunFileAction, SIGNAL(triggered()), q, SLOT(runFile()));
|
|
|
+ q->addAction(this->RunFileAction);
|
|
|
|
|
|
QAction* printHelpAction = new QAction(q->tr("Print &help"),q);
|
|
|
printHelpAction->setShortcut(q->tr("Ctrl+h"));
|
|
|
connect(printHelpAction, SIGNAL(triggered()), q, SLOT(printHelp()));
|
|
|
q->addAction(printHelpAction);
|
|
|
|
|
|
+ this->RunFileButton = new QPushButton(q);
|
|
|
+ this->RunFileButton->setText(q->tr("&Run script from file"));
|
|
|
+ this->RunFileButton->setVisible(false);
|
|
|
+
|
|
|
QVBoxLayout * layout = new QVBoxLayout(q);
|
|
|
layout->setMargin(0);
|
|
|
+ layout->setSpacing(0);
|
|
|
layout->addWidget(this);
|
|
|
+ layout->addWidget(this->RunFileButton);
|
|
|
|
|
|
connect(this->verticalScrollBar(), SIGNAL(valueChanged(int)),
|
|
|
SLOT(onScrollBarValueChanged(int)));
|
|
|
connect(this, SIGNAL(textChanged()), SLOT(onTextChanged()));
|
|
|
+ connect(this->RunFileButton, SIGNAL(clicked()), q, SLOT(runFile()));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
@@ -974,6 +985,17 @@ void ctkConsole::addCompleterShortcut(const QKeySequence& key)
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
+CTK_GET_CPP(ctkConsole, ctkConsole::RunFileOptions, runFileOptions, RunFileOptions);
|
|
|
+
|
|
|
+//-----------------------------------------------------------------------------
|
|
|
+void ctkConsole::setRunFileOptions(const RunFileOptions& newOptions)
|
|
|
+{
|
|
|
+ Q_D(ctkConsole);
|
|
|
+ d->RunFileButton->setVisible(newOptions.testFlag(ctkConsole::RunFileButton));
|
|
|
+ d->RunFileAction->setEnabled(newOptions.testFlag(ctkConsole::RunFileShortcut));
|
|
|
+}
|
|
|
+
|
|
|
+//-----------------------------------------------------------------------------
|
|
|
void ctkConsole::exec(const QString& command)
|
|
|
{
|
|
|
Q_D(ctkConsole);
|