From 9c9bca546cbcec2fb41603fcb05f59ad2b0cdb27 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Thu, 21 Apr 2016 11:52:03 +1200 Subject: [PATCH 1/2] Add button that opens scripts directory window --- .../resources/qml/hifi/dialogs/RunningScripts.qml | 11 ++++++++++- libraries/ui/src/FileDialogHelper.cpp | 7 +++++++ libraries/ui/src/FileDialogHelper.h | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/interface/resources/qml/hifi/dialogs/RunningScripts.qml b/interface/resources/qml/hifi/dialogs/RunningScripts.qml index 215710cc81..189d5968d0 100644 --- a/interface/resources/qml/hifi/dialogs/RunningScripts.qml +++ b/interface/resources/qml/hifi/dialogs/RunningScripts.qml @@ -24,7 +24,7 @@ Window { resizable: true destroyOnInvisible: true x: 40; y: 40 - implicitWidth: 400; implicitHeight: 695 + implicitWidth: 400; implicitHeight: 742 minSize: Qt.vector2d(200, 300) HifiConstants { id: hifi } @@ -237,6 +237,15 @@ Window { } HifiControls.VerticalSpacer { } + + HifiControls.Button { + id: directoryButton + text: "Reveal Scripts Folder" + width: 200 + onClicked: fileDialogHelper.openScriptsDirectory() + } + + HifiControls.VerticalSpacer { } } } } diff --git a/libraries/ui/src/FileDialogHelper.cpp b/libraries/ui/src/FileDialogHelper.cpp index 82ad877573..9e22d7e441 100644 --- a/libraries/ui/src/FileDialogHelper.cpp +++ b/libraries/ui/src/FileDialogHelper.cpp @@ -14,6 +14,9 @@ #include #include #include +#include + +#include "PathUtils.h" QUrl FileDialogHelper::home() { @@ -103,3 +106,7 @@ QStringList FileDialogHelper::drives() { } return result; } + +void FileDialogHelper::openScriptsDirectory() { + QDesktopServices::openUrl(defaultScriptsLocation()); +} diff --git a/libraries/ui/src/FileDialogHelper.h b/libraries/ui/src/FileDialogHelper.h index 2119b77917..55bc922839 100644 --- a/libraries/ui/src/FileDialogHelper.h +++ b/libraries/ui/src/FileDialogHelper.h @@ -58,6 +58,8 @@ public: Q_INVOKABLE bool validFolder(const QString& path); Q_INVOKABLE QUrl pathToUrl(const QString& path); Q_INVOKABLE QUrl saveHelper(const QString& saveText, const QUrl& currentFolder, const QStringList& selectionFilters); + + Q_INVOKABLE void openScriptsDirectory(); }; From 6c5335cfa76f555ba494c05b16183644eefe0b55 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Thu, 21 Apr 2016 15:17:06 +1200 Subject: [PATCH 2/2] Replace button with icon and text --- .../resources/qml/controls-uit/TextAction.qml | 67 +++++++++++++++++++ .../qml/hifi/dialogs/RunningScripts.qml | 25 ++++--- 2 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 interface/resources/qml/controls-uit/TextAction.qml diff --git a/interface/resources/qml/controls-uit/TextAction.qml b/interface/resources/qml/controls-uit/TextAction.qml new file mode 100644 index 0000000000..1c66c3630a --- /dev/null +++ b/interface/resources/qml/controls-uit/TextAction.qml @@ -0,0 +1,67 @@ +// +// TextField.qml +// +// Created by David Rowe on 21 Apr 2016 +// Copyright 2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import QtQuick 2.5 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import "../styles-uit" +import "../controls-uit" as HifiControls + +Item { + property string icon: "" + property int iconSize: 30 + property string text: "" + + property int colorScheme: hifi.colorSchemes.light + readonly property bool isLightColorScheme: colorScheme == hifi.colorSchemes.light + + signal clicked() + + height: Math.max(glyph.visible ? glyph.height - 4 : 0, string.visible ? string.height : 0) + width: glyph.width + string.anchors.leftMargin + string.width + + HiFiGlyphs { + id: glyph + anchors.left: parent.left + anchors.top: parent.top + anchors.topMargin: -2 + text: parent.icon + size: parent.iconSize + color: isLightColorScheme + ? (mouseArea.containsMouse ? hifi.colors.baseGrayHighlight : hifi.colors.lightGray) + : (mouseArea.containsMouse ? hifi.colors.faintGray : hifi.colors.lightGrayText) + visible: text !== "" + width: visible ? implicitWidth : 0 + } + + RalewaySemiBold { + id: string + anchors { + left: glyph.visible ? glyph.right : parent.left + leftMargin: visible && glyph.visible ? hifi.dimensions.contentSpacing.x : 0 + verticalCenter: glyph.visible ? glyph.verticalCenter : undefined + } + text: parent.text + size: hifi.fontSizes.inputLabel + color: isLightColorScheme + ? (mouseArea.containsMouse ? hifi.colors.baseGrayHighlight : hifi.colors.lightGray) + : (mouseArea.containsMouse ? hifi.colors.faintGray : hifi.colors.lightGrayText) + font.underline: true; + visible: text !== "" + } + + MouseArea { + id: mouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: parent.clicked() + } +} diff --git a/interface/resources/qml/hifi/dialogs/RunningScripts.qml b/interface/resources/qml/hifi/dialogs/RunningScripts.qml index 189d5968d0..cd3b2fdf20 100644 --- a/interface/resources/qml/hifi/dialogs/RunningScripts.qml +++ b/interface/resources/qml/hifi/dialogs/RunningScripts.qml @@ -24,7 +24,7 @@ Window { resizable: true destroyOnInvisible: true x: 40; y: 40 - implicitWidth: 400; implicitHeight: 742 + implicitWidth: 400; implicitHeight: 728 minSize: Qt.vector2d(200, 300) HifiConstants { id: hifi } @@ -236,16 +236,23 @@ Window { } } - HifiControls.VerticalSpacer { } - - HifiControls.Button { - id: directoryButton - text: "Reveal Scripts Folder" - width: 200 - onClicked: fileDialogHelper.openScriptsDirectory() + HifiControls.VerticalSpacer { + height: hifi.dimensions.controlInterlineHeight - 3 } - HifiControls.VerticalSpacer { } + HifiControls.TextAction { + id: directoryButton + icon: hifi.glyphs.script + iconSize: 24 + text: "Reveal Scripts Folder" + onClicked: fileDialogHelper.openScriptsDirectory() + colorScheme: hifi.colorSchemes.dark + anchors.left: parent.left + } + + HifiControls.VerticalSpacer { + height: hifi.dimensions.controlInterlineHeight - 3 + } } } }