diff --git a/interface/interface_en.ts b/interface/interface_en.ts
index c924e76330..3446903bb3 100644
--- a/interface/interface_en.ts
+++ b/interface/interface_en.ts
@@ -162,49 +162,49 @@
RunningScriptsWidget
-
+
Form
-
-
+
+
<html><head/><body><p><span style=" font-size:18pt;">Running Scripts</span></p></body></html>
-
-
+
+
<html><head/><body><p><span style=" font-weight:600;">Currently running</span></p></body></html>
-
-
+
+
Reload All
-
-
+
+
Stop All
-
-
+
+
<html><head/><body><p><span style=" font-weight:600;">Recently loaded</span></p></body></html>
-
-
+
+
(click a script or use the 1-9 keys to load and run it)
-
-
+
+
There are no scripts currently running.
diff --git a/interface/src/ui/RunningScriptsWidget.cpp b/interface/src/ui/RunningScriptsWidget.cpp
index 2238cab2df..66664dcc8c 100644
--- a/interface/src/ui/RunningScriptsWidget.cpp
+++ b/interface/src/ui/RunningScriptsWidget.cpp
@@ -1,5 +1,5 @@
//
-// RunningScripts.cpp
+// RunningScriptsWidget.cpp
// interface
//
// Created by Mohammed Nafees on 03/28/2014.
@@ -9,6 +9,8 @@
#include "RunningScriptsWidget.h"
#include
+#include
+#include
#include
#include "Application.h"
@@ -22,25 +24,17 @@ RunningScriptsWidget::RunningScriptsWidget(QDockWidget *parent) :
// remove the title bar (see the Qt docs on setTitleBarWidget)
setTitleBarWidget(new QWidget());
- ui->runningScriptsTableWidget->setColumnCount(2);
- ui->runningScriptsTableWidget->verticalHeader()->setVisible(false);
- ui->runningScriptsTableWidget->horizontalHeader()->setVisible(false);
- ui->runningScriptsTableWidget->setSelectionMode(QAbstractItemView::NoSelection);
- ui->runningScriptsTableWidget->setShowGrid(false);
- ui->runningScriptsTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
- ui->runningScriptsTableWidget->setColumnWidth(0, 235);
- ui->runningScriptsTableWidget->setColumnWidth(1, 25);
- connect(ui->runningScriptsTableWidget, &QTableWidget::cellClicked, this, &RunningScriptsWidget::stopScript);
+ _runningScriptsTable = new ScriptsTableWidget(ui->runningScriptsTableWidget);
+ _runningScriptsTable->setColumnCount(2);
+ _runningScriptsTable->setColumnWidth(0, 245);
+ _runningScriptsTable->setColumnWidth(1, 22);
+ connect(_runningScriptsTable, &QTableWidget::cellClicked, this, &RunningScriptsWidget::stopScript);
- ui->recentlyLoadedScriptsTableWidget->setColumnCount(2);
- ui->recentlyLoadedScriptsTableWidget->verticalHeader()->setVisible(false);
- ui->recentlyLoadedScriptsTableWidget->horizontalHeader()->setVisible(false);
- ui->recentlyLoadedScriptsTableWidget->setSelectionMode(QAbstractItemView::NoSelection);
- ui->recentlyLoadedScriptsTableWidget->setShowGrid(false);
- ui->recentlyLoadedScriptsTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
- ui->recentlyLoadedScriptsTableWidget->setColumnWidth(0, 25);
- ui->recentlyLoadedScriptsTableWidget->setColumnWidth(1, 235);
- connect(ui->recentlyLoadedScriptsTableWidget, &QTableWidget::cellClicked,
+ _recentlyLoadedScriptsTable = new ScriptsTableWidget(ui->recentlyLoadedScriptsTableWidget);
+ _recentlyLoadedScriptsTable->setColumnCount(2);
+ _recentlyLoadedScriptsTable->setColumnWidth(0, 25);
+ _recentlyLoadedScriptsTable->setColumnWidth(1, 235);
+ connect(_recentlyLoadedScriptsTable, &QTableWidget::cellClicked,
this, &RunningScriptsWidget::loadScript);
connect(ui->hideWidgetButton, &QPushButton::clicked,
@@ -58,25 +52,24 @@ RunningScriptsWidget::~RunningScriptsWidget()
void RunningScriptsWidget::setRunningScripts(const QStringList& list)
{
- ui->runningScriptsTableWidget->setRowCount(list.size());
+ _runningScriptsTable->setRowCount(list.size());
ui->noRunningScriptsLabel->setVisible(list.isEmpty());
ui->currentlyRunningLabel->setVisible(!list.isEmpty());
- ui->line1->setVisible(!list.isEmpty());
ui->runningScriptsTableWidget->setVisible(!list.isEmpty());
ui->reloadAllButton->setVisible(!list.isEmpty());
ui->stopAllButton->setVisible(!list.isEmpty());
for (int i = 0; i < list.size(); ++i) {
QTableWidgetItem *scriptName = new QTableWidgetItem;
- scriptName->setText(list.at(i));
+ scriptName->setText(QFileInfo(list.at(i)).fileName());
scriptName->setToolTip(list.at(i));
- scriptName->setTextAlignment(Qt::AlignCenter);
+ scriptName->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
QTableWidgetItem *closeIcon = new QTableWidgetItem;
- closeIcon->setIcon(QIcon(":/images/kill-script.svg"));
+ closeIcon->setIcon(QIcon(QPixmap(":/images/kill-script.svg").scaledToHeight(12)));
- ui->runningScriptsTableWidget->setItem(i, 0, scriptName);
- ui->runningScriptsTableWidget->setItem(i, 1, closeIcon);
+ _runningScriptsTable->setItem(i, 0, scriptName);
+ _runningScriptsTable->setItem(i, 1, closeIcon);
}
createRecentlyLoadedScriptsTable();
@@ -146,17 +139,37 @@ void RunningScriptsWidget::keyPressEvent(QKeyEvent *e)
}
}
+void RunningScriptsWidget::paintEvent(QPaintEvent *)
+{
+ QPainter painter(this);
+ painter.setPen(QColor::fromRgb(196, 196, 196));
+
+ if (ui->currentlyRunningLabel->isVisible()) {
+ // line below the 'Currently Running' label
+ painter.drawLine(20, ui->currentlyRunningLabel->y() + ui->currentlyRunningLabel->height(),
+ width() - 20, ui->currentlyRunningLabel->y() + ui->currentlyRunningLabel->height());
+ }
+
+ if (ui->recentlyLoadedLabel->isVisible()) {
+ // line below the 'Recently loaded' label
+ painter.drawLine(20, ui->recentlyLoadedLabel->y() + ui->recentlyLoadedLabel->height(),
+ width() - 20, ui->recentlyLoadedLabel->y() + ui->recentlyLoadedLabel->height());
+ }
+
+ painter.end();
+}
+
void RunningScriptsWidget::stopScript(int row, int column)
{
if (column == 1) { // make sure the user has clicked on the close icon
- _lastStoppedScript = ui->runningScriptsTableWidget->item(row, 0)->text();
- emit stopScriptName(ui->runningScriptsTableWidget->item(row, 0)->text());
+ _lastStoppedScript = _runningScriptsTable->item(row, 0)->toolTip();
+ emit stopScriptName(_runningScriptsTable->item(row, 0)->toolTip());
}
}
void RunningScriptsWidget::loadScript(int row, int column)
{
- Application::getInstance()->loadScript(ui->recentlyLoadedScriptsTableWidget->item(row, column)->text());
+ Application::getInstance()->loadScript(_recentlyLoadedScriptsTable->item(row, column)->toolTip());
}
void RunningScriptsWidget::allScriptsStopped()
@@ -183,21 +196,30 @@ void RunningScriptsWidget::createRecentlyLoadedScriptsTable()
}
ui->recentlyLoadedLabel->setVisible(!_recentlyLoadedScripts.isEmpty());
- ui->line2->setVisible(!_recentlyLoadedScripts.isEmpty());
ui->recentlyLoadedScriptsTableWidget->setVisible(!_recentlyLoadedScripts.isEmpty());
ui->recentlyLoadedInstruction->setVisible(!_recentlyLoadedScripts.isEmpty());
int limit = _recentlyLoadedScripts.size() > 9 ? 9 : _recentlyLoadedScripts.size();
- ui->recentlyLoadedScriptsTableWidget->setRowCount(limit);
+ _recentlyLoadedScriptsTable->setRowCount(limit);
for (int i = 0; i < limit; ++i) {
QTableWidgetItem *scriptName = new QTableWidgetItem;
- scriptName->setText(_recentlyLoadedScripts.at(i));
+ scriptName->setText(QFileInfo(_recentlyLoadedScripts.at(i)).fileName());
scriptName->setToolTip(_recentlyLoadedScripts.at(i));
- scriptName->setTextAlignment(Qt::AlignCenter);
+ scriptName->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
QTableWidgetItem *number = new QTableWidgetItem;
number->setText(QString::number(i+1) + ".");
+ number->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
- ui->recentlyLoadedScriptsTableWidget->setItem(i, 0, number);
- ui->recentlyLoadedScriptsTableWidget->setItem(i, 1, scriptName);
+ _recentlyLoadedScriptsTable->setItem(i, 0, number);
+ _recentlyLoadedScriptsTable->setItem(i, 1, scriptName);
}
+
+ int y = ui->recentlyLoadedScriptsTableWidget->y() + 15;
+ for (int i = 0; i < _recentlyLoadedScriptsTable->rowCount(); ++i) {
+ y += _recentlyLoadedScriptsTable->rowHeight(i);
+ }
+
+ ui->recentlyLoadedInstruction->setGeometry(20, y, width() - 20, ui->recentlyLoadedInstruction->height());
+
+ repaint();
}
diff --git a/interface/src/ui/RunningScriptsWidget.h b/interface/src/ui/RunningScriptsWidget.h
index d92927347f..51c19028cd 100644
--- a/interface/src/ui/RunningScriptsWidget.h
+++ b/interface/src/ui/RunningScriptsWidget.h
@@ -1,5 +1,5 @@
//
-// RunningScripts.h
+// RunningScriptsWidget.h
// interface
//
// Created by Mohammed Nafees on 03/28/2014.
@@ -8,9 +8,10 @@
#ifndef __hifi__RunningScriptsWidget__
#define __hifi__RunningScriptsWidget__
-// Qt
#include
+#include "ScriptsTableWidget.h"
+
namespace Ui {
class RunningScriptsWidget;
}
@@ -28,7 +29,8 @@ signals:
void stopScriptName(const QString& name);
protected:
- void keyPressEvent(QKeyEvent *e);
+ virtual void keyPressEvent(QKeyEvent *e);
+ virtual void paintEvent(QPaintEvent *);
private slots:
void stopScript(int row, int column);
@@ -37,6 +39,8 @@ private slots:
private:
Ui::RunningScriptsWidget *ui;
+ ScriptsTableWidget *_runningScriptsTable;
+ ScriptsTableWidget *_recentlyLoadedScriptsTable;
QStringList _recentlyLoadedScripts;
QString _lastStoppedScript;
diff --git a/interface/src/ui/ScriptsTableWidget.cpp b/interface/src/ui/ScriptsTableWidget.cpp
new file mode 100644
index 0000000000..e954500022
--- /dev/null
+++ b/interface/src/ui/ScriptsTableWidget.cpp
@@ -0,0 +1,41 @@
+//
+// ScriptsTableWidget.cpp
+// interface
+//
+// Created by Mohammed Nafees on 04/03/2014.
+// Copyright (c) 2014 High Fidelity, Inc. All rights reserved.
+
+#include "ScriptsTableWidget.h"
+
+#include
+#include
+#include
+#include
+#include
+
+ScriptsTableWidget::ScriptsTableWidget(QWidget *parent) :
+ QTableWidget(parent)
+{
+ verticalHeader()->setVisible(false);
+ horizontalHeader()->setVisible(false);
+ setShowGrid(false);
+ setSelectionMode(QAbstractItemView::NoSelection);
+ setEditTriggers(QAbstractItemView::NoEditTriggers);
+ setStyleSheet("background: transparent;");
+ setGeometry(0, 0, parent->width(), parent->height());
+}
+
+void ScriptsTableWidget::paintEvent(QPaintEvent *event)
+{
+ QPainter painter(viewport());
+ painter.setPen(QColor::fromRgb(196, 196, 196));
+
+ int y = 0;
+ for (int i = 0; i < rowCount(); ++i) {
+ painter.drawLine(0, rowHeight(i) + y, width(), rowHeight(i) + y);
+ y += rowHeight(i);
+ }
+ painter.end();
+
+ QTableWidget::paintEvent(event);
+}
diff --git a/interface/src/ui/ScriptsTableWidget.h b/interface/src/ui/ScriptsTableWidget.h
new file mode 100644
index 0000000000..f4726ab26d
--- /dev/null
+++ b/interface/src/ui/ScriptsTableWidget.h
@@ -0,0 +1,23 @@
+//
+// ScriptsTableWidget.h
+// interface
+//
+// Created by Mohammed Nafees on 04/03/2014.
+// Copyright (c) 2014 High Fidelity, Inc. All rights reserved.
+
+#ifndef __hifi__ScriptsTableWidget__
+#define __hifi__ScriptsTableWidget__
+
+#include
+
+class ScriptsTableWidget : public QTableWidget
+{
+ Q_OBJECT
+public:
+ explicit ScriptsTableWidget(QWidget *parent);
+
+protected:
+ virtual void paintEvent(QPaintEvent *event);
+};
+
+#endif /* defined(__hifi__ScriptsTableWidget__) */
diff --git a/interface/ui/runningScriptsWidget.ui b/interface/ui/runningScriptsWidget.ui
index 9494d4ed09..d35caf0d77 100644
--- a/interface/ui/runningScriptsWidget.ui
+++ b/interface/ui/runningScriptsWidget.ui
@@ -27,7 +27,8 @@ font-family: Helvetica, Arial, "DejaVu Sans";
- color: #0e7077;
+ color: #0e7077;
+font-size: 20pt;
<html><head/><body><p><span style=" font-size:18pt;">Running Scripts</span></p></body></html>
@@ -43,7 +44,8 @@ font-family: Helvetica, Arial, "DejaVu Sans";
- color: #0e7077;
+ color: #0e7077;
+font-size: 14pt;
<html><head/><body><p><span style=" font-weight:600;">Currently running</span></p></body></html>
@@ -61,10 +63,14 @@ font-family: Helvetica, Arial, "DejaVu Sans";
PointingHandCursor
+
+ false
+
background: #0e7077;
color: #fff;
-border-radius: 6px;
+border-radius: 6px;
+font: 14pt 75pt;
Reload All
@@ -89,7 +95,8 @@ border-radius: 6px;
background: #0e7077;
color: #fff;
-border-radius: 6px;
+border-radius: 6px;
+font: 14pt 75pt;
Stop All
@@ -109,28 +116,13 @@ border-radius: 6px;
- color: #0e7077;
+ color: #0e7077;
+font-size: 14pt;
<html><head/><body><p><span style=" font-weight:600;">Recently loaded</span></p></body></html>
-
-
-
- 20
- 300
- 271
- 8
-
-
-
-
-
-
- Qt::Horizontal
-
-
@@ -141,7 +133,8 @@ border-radius: 6px;
- color: #95a5a6;
+ color: #95a5a6;
+font-size: 14pt;
(click a script or use the 1-9 keys to load and run it)
@@ -179,59 +172,17 @@ border-radius: 6px;
true
-
-
-
- 20
- 70
- 271
- 141
-
-
-
- background: transparent;
-
-
-
+
20
60
271
- 8
-
-
-
-
-
-
- Qt::Horizontal
-
-
-
-
-
- 20
- 310
- 271
- 281
-
-
-
- background: transparent;
-
-
-
-
-
- 20
- 40
- 271
51
- font: 14px;
+ font: 14pt;
There are no scripts currently running.
@@ -240,6 +191,34 @@ border-radius: 6px;
Qt::AlignCenter
+
+
+
+ 20
+ 300
+ 270
+ 280
+
+
+
+ background: transparent;
+font-size: 14pt;
+
+
+
+
+
+ 20
+ 60
+ 270
+ 140
+
+
+
+ background: transparent;
+font-size: 14pt;
+
+