├── qtquickcontrols2.conf ├── Assets ├── Icons │ ├── home.png │ ├── homes.png │ ├── sett.png │ ├── usb.png │ ├── battery.png │ ├── update.png │ ├── backhome.png │ ├── bluetoot.png │ ├── bluetooth.png │ ├── download.png │ ├── greyHome.png │ ├── settings.png │ ├── icons8-ok-30.png │ ├── icons8-info-50.png │ ├── icons8-plus-48.png │ ├── icons8-plus-50.png │ ├── icons8-refresh-30.png │ └── icons8-cloud-cross-24.png └── Images │ ├── dongle.png │ ├── speaker.png │ ├── 18362309891600040225-512.png │ └── Microsoft_Teams-Logo.wine.png ├── Components ├── CStackView.qml ├── ResponsiveLayout.qml ├── CCheckBox.qml ├── CButton.qml ├── IconButton.qml ├── IconWithTitle.qml └── SideBarButtons.qml ├── main.qml ├── main.cpp ├── Connect.pro ├── Models ├── NotConnectedModel.qml ├── ConnectModel.qml └── ConnectDelegate.qml ├── README.md ├── qml.qrc ├── Screens ├── Blutooth.qml ├── Home.qml ├── Settings.qml └── Update.qml └── Connect.pro.user /qtquickcontrols2.conf: -------------------------------------------------------------------------------- 1 | [Controls] 2 | Style=Material 3 | [Material] 4 | Theme=Dark 5 | Accent=Red 6 | Primary=#313a41 7 | -------------------------------------------------------------------------------- /Assets/Icons/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/home.png -------------------------------------------------------------------------------- /Assets/Icons/homes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/homes.png -------------------------------------------------------------------------------- /Assets/Icons/sett.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/sett.png -------------------------------------------------------------------------------- /Assets/Icons/usb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/usb.png -------------------------------------------------------------------------------- /Assets/Icons/battery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/battery.png -------------------------------------------------------------------------------- /Assets/Icons/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/update.png -------------------------------------------------------------------------------- /Assets/Images/dongle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Images/dongle.png -------------------------------------------------------------------------------- /Assets/Icons/backhome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/backhome.png -------------------------------------------------------------------------------- /Assets/Icons/bluetoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/bluetoot.png -------------------------------------------------------------------------------- /Assets/Icons/bluetooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/bluetooth.png -------------------------------------------------------------------------------- /Assets/Icons/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/download.png -------------------------------------------------------------------------------- /Assets/Icons/greyHome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/greyHome.png -------------------------------------------------------------------------------- /Assets/Icons/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/settings.png -------------------------------------------------------------------------------- /Assets/Images/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Images/speaker.png -------------------------------------------------------------------------------- /Assets/Icons/icons8-ok-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/icons8-ok-30.png -------------------------------------------------------------------------------- /Assets/Icons/icons8-info-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/icons8-info-50.png -------------------------------------------------------------------------------- /Assets/Icons/icons8-plus-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/icons8-plus-48.png -------------------------------------------------------------------------------- /Assets/Icons/icons8-plus-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/icons8-plus-50.png -------------------------------------------------------------------------------- /Assets/Icons/icons8-refresh-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/icons8-refresh-30.png -------------------------------------------------------------------------------- /Assets/Icons/icons8-cloud-cross-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Icons/icons8-cloud-cross-24.png -------------------------------------------------------------------------------- /Assets/Images/18362309891600040225-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Images/18362309891600040225-512.png -------------------------------------------------------------------------------- /Assets/Images/Microsoft_Teams-Logo.wine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yasir-shahzad/Qt-QML-Jabra-Speaker-Software-Qt-Qml-Project/HEAD/Assets/Images/Microsoft_Teams-Logo.wine.png -------------------------------------------------------------------------------- /Components/CStackView.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import QtQuick.Controls 2.5 3 | import "../Components" 4 | StackView{ 5 | id:stackView 6 | initialItem: "qrc:/Screens/Home.qml" 7 | } 8 | -------------------------------------------------------------------------------- /main.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.15 2 | import QtQuick.Window 2.15 3 | import QtQuick.Controls 2.5 4 | import QtQuick.Layouts 1.3 5 | import QtQuick.Controls.Material 2.4 6 | import "./Components" 7 | ApplicationWindow { 8 | id: window 9 | width: 1200 10 | height: 700 11 | visible: true 12 | title: qsTr("Jabra Connect") 13 | property color homeColor: "#313a41" 14 | //color: homeColor 15 | Loader{ 16 | anchors.fill: parent 17 | sourceComponent: resLayout 18 | } 19 | Component{ 20 | id:resLayout 21 | ResponsiveLayout{ 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 8 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 9 | #endif 10 | QGuiApplication app(argc, argv); 11 | 12 | QQmlApplicationEngine engine; 13 | const QUrl url(QStringLiteral("qrc:/main.qml")); 14 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, 15 | &app, [url](QObject *obj, const QUrl &objUrl) { 16 | if (!obj && url == objUrl) 17 | QCoreApplication::exit(-1); 18 | }, Qt::QueuedConnection); 19 | engine.load(url); 20 | 21 | return app.exec(); 22 | } 23 | -------------------------------------------------------------------------------- /Connect.pro: -------------------------------------------------------------------------------- 1 | QT += quick 2 | 3 | # You can make your code fail to compile if it uses deprecated APIs. 4 | # In order to do so, uncomment the following line. 5 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 6 | 7 | SOURCES += \ 8 | main.cpp 9 | 10 | RESOURCES += qml.qrc 11 | 12 | # Additional import path used to resolve QML modules in Qt Creator's code model 13 | QML_IMPORT_PATH = 14 | 15 | # Additional import path used to resolve QML modules just for Qt Quick Designer 16 | QML_DESIGNER_IMPORT_PATH = 17 | 18 | # Default rules for deployment. 19 | qnx: target.path = /tmp/$${TARGET}/bin 20 | else: unix:!android: target.path = /opt/$${TARGET}/bin 21 | !isEmpty(target.path): INSTALLS += target 22 | -------------------------------------------------------------------------------- /Components/ResponsiveLayout.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import QtQuick.Controls 2.5 3 | import QtQuick.Layouts 1.3 4 | Item { 5 | anchors.fill: parent 6 | RowLayout{ 7 | spacing: 0 8 | anchors.fill: parent 9 | Rectangle{ 10 | Layout.preferredWidth: parent.width / 9 11 | Layout.fillHeight: true 12 | color: homeColor 13 | SideBarButtons{ 14 | id:sideBar 15 | width: parent.width*0.7 16 | height: parent.height*0.7 17 | radius: 6 18 | anchors.centerIn: parent 19 | } 20 | } 21 | CStackView{ 22 | id:mainStackView 23 | Layout.fillWidth: true 24 | Layout.fillHeight: true 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Models/NotConnectedModel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.11 2 | 3 | // Populate the model with some sample data. 4 | ListModel { 5 | ListElement { 6 | activated: true 7 | speakerName:"Jabra Speaker 210" 8 | label: "Not Paired" 9 | pressColor:"#ef4948" 10 | normalColor:"#4990e2" 11 | icon:"qrc:/Assets/Images/speaker.png" 12 | connectedIcon:"qrc:/Assets/Icons/icons8-cloud-cross-24.png" 13 | buttonStatus:"Pair" 14 | } 15 | // ListElement { 16 | // activated: true 17 | // speakerName:"Jebra Speaker" 18 | // label: "Not Connected" 19 | // pressColor:"#ef4948" 20 | // normalColor:"#4990e2" 21 | // icon:"qrc:/Assets/Images/speaker.png" 22 | // connectedIcon:"qrc:/Assets/Icons/icons8-cloud-cross-24.png" 23 | // } 24 | } 25 | -------------------------------------------------------------------------------- /Models/ConnectModel.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.11 2 | 3 | // Populate the model with some sample data. 4 | ListModel { 5 | ListElement { 6 | activated: true 7 | speakerName:"Jabra CalmTalk" 8 | label: "Paired Device" 9 | pressColor:"#ef4948" 10 | normalColor:"#4990e2" 11 | icon:"qrc:/Assets/Images/speaker.png" 12 | connectedIcon:"qrc:/Assets/Icons/icons8-ok-30.png" 13 | buttonStatus:"Disconnect" 14 | } 15 | ListElement { 16 | activated: true 17 | speakerName:"Jebra Speaker" 18 | label: "Not Connected" 19 | pressColor:"#ef4948" 20 | normalColor:"#4990e2" 21 | icon:"qrc:/Assets/Images/speaker.png" 22 | connectedIcon:"qrc:/Assets/Icons/icons8-cloud-cross-24.png" 23 | buttonStatus:"Connect" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Components/CCheckBox.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import QtQuick.Controls 2.0 3 | 4 | Switch { 5 | id: root 6 | property color checkedColor: "#0ACF97" 7 | 8 | indicator: Rectangle { 9 | width: 54 10 | height: 34 11 | radius: height / 2 12 | color: root.checked ? checkedColor : "white" 13 | border.width: 2 14 | border.color: root.checked ? checkedColor : "#E5E5E5" 15 | 16 | Rectangle { 17 | x: root.checked ? parent.width - width - 2 : 1 18 | width: root.checked ? parent.height - 4 : parent.height - 2 19 | height: width 20 | radius: width / 2 21 | anchors.verticalCenter: parent.verticalCenter 22 | color: "white" 23 | border.color: "#D5D5D5" 24 | 25 | Behavior on x { 26 | NumberAnimation { duration: 200 } 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Jabra-Speaker-Connect-Project 3 | Jabra Speaker Connect Project 4 | 5 | ## Design screen 6 | ![alt text](https://github.com/cppqtdev/Jabra-Speaker-Connect-Project/blob/main/Assets/ScreenShots/jabra1.png?raw=true) 7 | 8 | ## Projects screen 1 9 | ![alt text](https://github.com/cppqtdev/Jabra-Speaker-Connect-Project/blob/main/Assets/ScreenShots/jabra2.png?raw=true) 10 | ## Projects screen 2 11 | ![alt text](https://github.com/cppqtdev/Jabra-Speaker-Connect-Project/blob/main/Assets/ScreenShots/jabra3.png?raw=true) 12 | 13 | ## Projects screen 3 14 | ![alt text](https://github.com/cppqtdev/Jabra-Speaker-Connect-Project/blob/main/Assets/ScreenShots/jabra4.png?raw=true) 15 | ## Projects screen 4 16 | ![alt text](https://github.com/cppqtdev/Jabra-Speaker-Connect-Project/blob/main/Assets/ScreenShots/jabra5.png?raw=true) 17 | 18 | ## Projects screen 5 19 | ![alt text](https://github.com/cppqtdev/Jabra-Speaker-Connect-Project/blob/main/Assets/ScreenShots/jabra6.png?raw=true) 20 | ## Projects screen 6 21 | ![alt text](https://github.com/cppqtdev/Jabra-Speaker-Connect-Project/blob/main/Assets/ScreenShots/jabra7.png?raw=true) 22 | 23 | 24 | . 25 | -------------------------------------------------------------------------------- /qml.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | main.qml 4 | Components/CButton.qml 5 | Components/IconWithTitle.qml 6 | Screens/Home.qml 7 | Screens/Blutooth.qml 8 | Screens/Update.qml 9 | Screens/Settings.qml 10 | Components/CStackView.qml 11 | Components/SideBarButtons.qml 12 | Components/ResponsiveLayout.qml 13 | Assets/Icons/bluetooth.png 14 | Assets/Icons/home.png 15 | Assets/Icons/settings.png 16 | Assets/Icons/update.png 17 | Assets/Images/dongle.png 18 | Assets/Images/speaker.png 19 | Assets/Icons/battery.png 20 | Assets/Icons/bluetoot.png 21 | Assets/Icons/usb.png 22 | Assets/Icons/download.png 23 | Assets/Icons/homes.png 24 | Assets/Icons/sett.png 25 | Models/ConnectModel.qml 26 | Models/ConnectDelegate.qml 27 | qtquickcontrols2.conf 28 | Assets/Icons/icons8-cloud-cross-24.png 29 | Assets/Icons/icons8-ok-30.png 30 | Models/NotConnectedModel.qml 31 | Assets/Icons/icons8-refresh-30.png 32 | Components/IconButton.qml 33 | Assets/Icons/greyHome.png 34 | Assets/Icons/backhome.png 35 | Assets/Icons/icons8-info-50.png 36 | Components/CCheckBox.qml 37 | Assets/Icons/icons8-plus-50.png 38 | Assets/Icons/icons8-plus-48.png 39 | Assets/Images/18362309891600040225-512.png 40 | Assets/Images/Microsoft_Teams-Logo.wine.png 41 | 42 | 43 | -------------------------------------------------------------------------------- /Models/ConnectDelegate.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.11 2 | import QtQuick.Controls 2.4 3 | import QtQuick.Controls.Material 2.4 4 | import QtQuick.Layouts 1.11 5 | import QtQuick.Window 2.11 6 | import "../Components" 7 | ItemDelegate { 8 | id: root 9 | width: parent.width 10 | height: 100 11 | checkable: true 12 | hoverEnabled: false 13 | 14 | onClicked: ListView.view.currentIndex = index 15 | Rectangle{ 16 | radius: 8 17 | color: "#373e44" 18 | anchors.fill: parent 19 | border.width:1 20 | border.color : "#444b51" 21 | ColumnLayout { 22 | anchors.fill: parent 23 | RowLayout { 24 | RowLayout{ 25 | id: dateColumn 26 | Image{ 27 | id:speakerLogo 28 | source:model.icon 29 | sourceSize: Qt.size(100,100) 30 | } 31 | 32 | ColumnLayout { 33 | Label { 34 | id: timeLabel 35 | font.pixelSize: Qt.application.font.pixelSize * 1.5 36 | text:model.speakerName 37 | } 38 | RowLayout { 39 | Image{ 40 | source: model.connectedIcon 41 | sourceSize: Qt.size(20,20) 42 | Layout.alignment: Qt.AlignVCenter 43 | } 44 | 45 | Label { 46 | id: alarmAbout 47 | font.pixelSize: 12 48 | font.bold: true 49 | text: model.label 50 | } 51 | } 52 | } 53 | } 54 | Item { 55 | Layout.fillWidth: true 56 | } 57 | CButton{ 58 | id:connectButton 59 | property string connectColor: model.normalColor 60 | color:connectColor 61 | borderColor:connectColor 62 | pressColor: connectColor 63 | hoverColor: connectColor 64 | borderRadius: 18 65 | width: 150 66 | height: 40 67 | innerText.color: "White" 68 | fontSize: 14 69 | buttonText:model.buttonStatus 70 | Layout.alignment: Qt.AlignVCenter 71 | Layout.rightMargin: 10 72 | onClicked: { 73 | connectColor = model.pressColor 74 | buttonText = "Disconnect" 75 | } 76 | } 77 | } 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Components/CButton.qml: -------------------------------------------------------------------------------- 1 | //Import the declarative plugins 2 | import QtQuick 2.0 3 | 4 | //Implementation of the Button control. 5 | Item { 6 | id: button 7 | width: 30 8 | height: 30 9 | property alias buttonText: innerText.text; 10 | property alias innerText: innerText 11 | property color color: "white" 12 | property color hoverColor: "#aaaaaa" 13 | property color pressColor: "slategray" 14 | property color borderColor: "white" 15 | property string sourceIcon: "" 16 | property int fontSize: 10 17 | property int borderWidth: 1 18 | property int borderRadius: 2 19 | property int iconWidth: 20 20 | property int iconHeight: 20 21 | scale: state === "Pressed" ? 1.2 : 1.0 22 | onEnabledChanged: state = "" 23 | signal clicked 24 | 25 | //define a scale animation 26 | Behavior on scale { 27 | NumberAnimation { 28 | duration: 100 29 | easing.type: Easing.InOutQuad 30 | } 31 | } 32 | 33 | //Rectangle to draw the button 34 | Rectangle { 35 | id: rectangleButton 36 | anchors.fill: parent 37 | radius: borderRadius 38 | color: button.enabled ? button.color : "grey" 39 | border.width: borderWidth 40 | border.color:borderColor 41 | Image{ 42 | source:sourceIcon 43 | sourceSize: Qt.size(iconWidth,iconHeight) 44 | anchors.centerIn: parent 45 | } 46 | 47 | Text { 48 | id: innerText 49 | font.pointSize: fontSize 50 | anchors.centerIn: parent 51 | } 52 | } 53 | 54 | //change the color of the button in differen button states 55 | states: [ 56 | State { 57 | name: "Hovering" 58 | PropertyChanges { 59 | target: rectangleButton 60 | color: hoverColor 61 | border.color:hoverColor 62 | } 63 | }, 64 | State { 65 | name: "Pressed" 66 | PropertyChanges { 67 | target: rectangleButton 68 | color: pressColor 69 | border.color: pressColor 70 | } 71 | } 72 | ] 73 | 74 | //define transmission for the states 75 | transitions: [ 76 | Transition { 77 | from: ""; to: "Hovering" 78 | ColorAnimation { duration: 200 } 79 | }, 80 | Transition { 81 | from: "*"; to: "Pressed" 82 | ColorAnimation { duration: 10 } 83 | } 84 | ] 85 | 86 | //Mouse area to react on click events 87 | MouseArea { 88 | hoverEnabled: true 89 | anchors.fill: button 90 | onEntered: { button.state='Hovering'} 91 | onExited: { button.state=''} 92 | onClicked: { button.clicked();} 93 | onPressed: { button.state="Pressed" } 94 | onReleased: { 95 | if (containsMouse) 96 | button.state="Hovering"; 97 | else 98 | button.state=""; 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /Components/IconButton.qml: -------------------------------------------------------------------------------- 1 | //Import the declarative plugins 2 | import QtQuick 2.0 3 | import QtQuick.Layouts 1.3 4 | //Implementation of the Button control. 5 | Item { 6 | id: button 7 | width: 30 8 | height: 30 9 | property alias buttonText: innerText.text; 10 | property alias innerText: innerText 11 | property color color: "white" 12 | property color hoverColor: "#aaaaaa" 13 | property color pressColor: "slategray" 14 | property color borderColor: "white" 15 | property string sourceIcon: "" 16 | property int fontSize: 10 17 | property int borderWidth: 1 18 | property int borderRadius: 2 19 | property int iconWidth: 20 20 | property int iconHeight: 20 21 | scale: state === "Pressed" ? 1.2 : 1.0 22 | onEnabledChanged: state = "" 23 | signal clicked 24 | 25 | //define a scale animation 26 | Behavior on scale { 27 | NumberAnimation { 28 | duration: 100 29 | easing.type: Easing.InOutQuad 30 | } 31 | } 32 | 33 | //Rectangle to draw the button 34 | Rectangle { 35 | id: rectangleButton 36 | anchors.fill: parent 37 | radius: borderRadius 38 | color: button.enabled ? button.color : "grey" 39 | border.width: borderWidth 40 | border.color:borderColor 41 | RowLayout{ 42 | anchors.centerIn: parent 43 | spacing: 5 44 | Image{ 45 | source:sourceIcon 46 | sourceSize: Qt.size(iconWidth,iconHeight) 47 | Layout.alignment: Qt.AlignVCenter 48 | } 49 | 50 | Text { 51 | id: innerText 52 | font.pointSize: fontSize 53 | Layout.alignment: Qt.AlignVCenter 54 | } 55 | } 56 | } 57 | 58 | //change the color of the button in differen button states 59 | states: [ 60 | State { 61 | name: "Hovering" 62 | PropertyChanges { 63 | target: rectangleButton 64 | color: hoverColor 65 | border.color:hoverColor 66 | } 67 | }, 68 | State { 69 | name: "Pressed" 70 | PropertyChanges { 71 | target: rectangleButton 72 | color: pressColor 73 | border.color: pressColor 74 | } 75 | } 76 | ] 77 | 78 | //define transmission for the states 79 | transitions: [ 80 | Transition { 81 | from: ""; to: "Hovering" 82 | ColorAnimation { duration: 200 } 83 | }, 84 | Transition { 85 | from: "*"; to: "Pressed" 86 | ColorAnimation { duration: 10 } 87 | } 88 | ] 89 | 90 | //Mouse area to react on click events 91 | MouseArea { 92 | hoverEnabled: true 93 | anchors.fill: button 94 | onEntered: { button.state='Hovering'} 95 | onExited: { button.state=''} 96 | onClicked: { button.clicked();} 97 | onPressed: { button.state="Pressed" } 98 | onReleased: { 99 | if (containsMouse) 100 | button.state="Hovering"; 101 | else 102 | button.state=""; 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /Components/IconWithTitle.qml: -------------------------------------------------------------------------------- 1 | //Import the declarative plugins 2 | import QtQuick 2.0 3 | import QtQuick.Layouts 1.3 4 | //Implementation of the Button control. 5 | Item { 6 | id: button 7 | width: 30 8 | height: 30 9 | property alias buttonText: innerText.text; 10 | property alias innerTextLabel: innerText 11 | property color color: "white" 12 | property color hoverColor: "#aaaaaa" 13 | property color pressColor: "slategray" 14 | property color borderColor: "white" 15 | property string sourceIcon: "" 16 | property int fontSize: 10 17 | property int borderWidth: 1 18 | property int borderRadius: 2 19 | property int iconWidth: 10 20 | property int iconHeight: 10 21 | scale: state === "Pressed" ? 1.1 : 1.0 22 | onEnabledChanged: state = "" 23 | signal clicked 24 | 25 | //define a scale animation 26 | Behavior on scale { 27 | NumberAnimation { 28 | duration: 100 29 | easing.type: Easing.InOutQuad 30 | } 31 | } 32 | 33 | //Rectangle to draw the button 34 | Rectangle { 35 | id: rectangleButton 36 | anchors.fill: parent 37 | radius: borderRadius 38 | color: button.enabled ? button.color : "grey" 39 | border.width: borderWidth 40 | border.color:borderColor 41 | ColumnLayout{ 42 | anchors.centerIn: parent 43 | spacing: 5 44 | Image{ 45 | source:sourceIcon 46 | sourceSize: Qt.size(iconWidth,iconHeight) 47 | Layout.alignment: Qt.AlignHCenter 48 | } 49 | 50 | Text { 51 | id: innerText 52 | font.pointSize: fontSize 53 | Layout.alignment: Qt.AlignHCenter 54 | } 55 | } 56 | } 57 | 58 | //change the color of the button in differen button states 59 | states: [ 60 | State { 61 | name: "Hovering" 62 | PropertyChanges { 63 | target: rectangleButton 64 | color: hoverColor 65 | border.color:hoverColor 66 | } 67 | }, 68 | State { 69 | name: "Pressed" 70 | PropertyChanges { 71 | target: rectangleButton 72 | color: pressColor 73 | border.color: pressColor 74 | } 75 | } 76 | ] 77 | 78 | //define transmission for the states 79 | transitions: [ 80 | Transition { 81 | from: ""; to: "Hovering" 82 | ColorAnimation { duration: 200 } 83 | }, 84 | Transition { 85 | from: "*"; to: "Pressed" 86 | ColorAnimation { duration: 10 } 87 | } 88 | ] 89 | 90 | //Mouse area to react on click events 91 | MouseArea { 92 | hoverEnabled: true 93 | anchors.fill: button 94 | onEntered: { button.state='Hovering'} 95 | onExited: { button.state=''} 96 | onClicked: { button.clicked();} 97 | onPressed: { button.state="Pressed" } 98 | onReleased: { 99 | if (containsMouse) 100 | button.state="Hovering"; 101 | else 102 | button.state=""; 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /Components/SideBarButtons.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import QtQuick.Controls 2.5 3 | import QtQuick.Layouts 1.3 4 | Rectangle{ 5 | property color buttonColor: "#373e44" 6 | property color textColor: "#EBEBEB" 7 | property color hightLighted: "#4990e2" 8 | property color home: hightLighted 9 | property color bluetooth:buttonColor 10 | property color updateColor: buttonColor 11 | property color settings: buttonColor 12 | color: buttonColor 13 | radius: 10 14 | ColumnLayout{ 15 | anchors.fill: parent 16 | spacing: 0 17 | IconWithTitle{ 18 | Layout.fillHeight: true 19 | Layout.fillWidth: true 20 | buttonText: qsTr("Home") 21 | color: home 22 | hoverColor: home 23 | borderColor: home 24 | pressColor: home 25 | innerTextLabel.color: textColor 26 | fontSize: 12 27 | sourceIcon: "qrc:/Assets/Icons/backhome.png" 28 | iconWidth: 30 29 | iconHeight: 30 30 | borderRadius: 10 31 | onClicked: { 32 | mainStackView.replace("qrc:/Screens/Home.qml") 33 | home=hightLighted 34 | bluetooth=buttonColor 35 | updateColor=buttonColor 36 | settings=buttonColor 37 | } 38 | } 39 | IconWithTitle{ 40 | Layout.fillHeight: true 41 | Layout.fillWidth: true 42 | buttonText: qsTr("Bluetooth") 43 | color: bluetooth 44 | hoverColor: bluetooth 45 | borderColor: bluetooth 46 | pressColor: bluetooth 47 | innerTextLabel.color: textColor 48 | fontSize: 12 49 | sourceIcon: "qrc:/Assets/Icons/bluetoot.png" 50 | iconWidth: 30 51 | iconHeight: 30 52 | onClicked: { 53 | mainStackView.replace("qrc:/Screens/Blutooth.qml") 54 | home=buttonColor 55 | bluetooth=hightLighted 56 | updateColor=buttonColor 57 | settings=buttonColor 58 | } 59 | } 60 | IconWithTitle{ 61 | Layout.fillHeight: true 62 | Layout.fillWidth: true 63 | buttonText: qsTr("Update") 64 | color: updateColor 65 | hoverColor: updateColor 66 | borderColor: updateColor 67 | pressColor: updateColor 68 | innerTextLabel.color: textColor 69 | fontSize: 12 70 | sourceIcon: "qrc:/Assets/Icons/download.png" 71 | iconWidth: 30 72 | iconHeight: 30 73 | onClicked: { 74 | mainStackView.replace("qrc:/Screens/Update.qml") 75 | home=buttonColor 76 | bluetooth=buttonColor 77 | updateColor=hightLighted 78 | settings=buttonColor 79 | } 80 | 81 | } 82 | IconWithTitle{ 83 | Layout.fillHeight: true 84 | Layout.fillWidth: true 85 | buttonText: qsTr("Settings") 86 | color: settings 87 | hoverColor: settings 88 | borderColor: settings 89 | pressColor: settings 90 | innerTextLabel.color: textColor 91 | fontSize: 12 92 | sourceIcon: "qrc:/Assets/Icons/sett.png" 93 | iconWidth: 30 94 | iconHeight: 30 95 | borderRadius: 10 96 | onClicked: { 97 | mainStackView.replace("qrc:/Screens/Settings.qml") 98 | home=buttonColor 99 | bluetooth=buttonColor 100 | updateColor=buttonColor 101 | settings=hightLighted 102 | } 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /Screens/Blutooth.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.15 2 | import QtQuick.Controls 2.1 3 | import QtQuick.Layouts 1.3 4 | import "../Models" 5 | import "../Components" 6 | Page { 7 | Rectangle{ 8 | anchors.fill: parent 9 | color: homeColor 10 | } 11 | ColumnLayout{ 12 | anchors.fill: parent 13 | anchors.rightMargin: 10 14 | spacing: 0 15 | Rectangle{ 16 | Layout.fillWidth: true 17 | Layout.preferredHeight: 150 18 | color: homeColor 19 | Label { 20 | id: label 21 | font.pixelSize: Qt.application.font.pixelSize * 3 22 | text:qsTr("Bluetooth") 23 | y:20 24 | anchors{ 25 | topMargin: 50 26 | left: parent.left 27 | } 28 | } 29 | Rectangle{ 30 | id:line 31 | width: parent.width*0.99 32 | height: 2 33 | color: "#444b51" 34 | anchors{ 35 | top:label.bottom 36 | topMargin: 10 37 | } 38 | 39 | } 40 | 41 | Label { 42 | font.pixelSize: Qt.application.font.pixelSize*1.2 43 | text:qsTr("Connected") 44 | anchors{ 45 | top: line.bottom 46 | topMargin: 20 47 | } 48 | } 49 | } 50 | 51 | ListView { 52 | spacing:20 53 | clip: true 54 | Layout.fillHeight: true 55 | Layout.fillWidth: true 56 | model: ConnectModel {} 57 | delegate: ConnectDelegate {} 58 | flickableDirection: Flickable.VerticalFlick 59 | boundsBehavior: Flickable.StopAtBounds 60 | ScrollBar.vertical: ScrollBar { 61 | visible: false 62 | } 63 | } 64 | Rectangle{ 65 | Layout.fillWidth: true 66 | Layout.preferredHeight: 80 67 | color: homeColor 68 | Rectangle{ 69 | id:line2 70 | width: parent.width*0.99 71 | height: 2 72 | color: "#444b51" 73 | anchors{ 74 | topMargin: 20 75 | } 76 | } 77 | Label { 78 | id:otherLabel 79 | font.pixelSize: Qt.application.font.pixelSize*1.2 80 | text:qsTr("Other Devices Available") 81 | anchors{ 82 | top: line2.bottom 83 | topMargin: 20 84 | } 85 | } 86 | IconButton{ 87 | color:"#444b51" 88 | borderColor:"#444b51" 89 | pressColor: "#444b51" 90 | hoverColor: "#444b51" 91 | borderRadius: 18 92 | width: 120 93 | height: 30 94 | innerText.color: "White" 95 | fontSize: 10 96 | iconWidth: 20 97 | iconHeight: 20 98 | sourceIcon: "qrc:/Assets/Icons/icons8-refresh-30.png" 99 | buttonText: qsTr("Refresh") 100 | anchors{ 101 | verticalCenter: otherLabel.verticalCenter 102 | right: parent.right 103 | rightMargin: 20 104 | } 105 | } 106 | } 107 | 108 | ListView { 109 | spacing:20 110 | clip: true 111 | Layout.fillHeight: true 112 | Layout.fillWidth: true 113 | model: NotConnectedModel {} 114 | delegate: ConnectDelegate {} 115 | flickableDirection: Flickable.VerticalFlick 116 | boundsBehavior: Flickable.StopAtBounds 117 | ScrollBar.vertical: ScrollBar { 118 | visible: false 119 | } 120 | } 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /Screens/Home.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.15 2 | import QtQuick.Controls 2.5 3 | import "../" 4 | import QtQuick.Layouts 1.3 5 | 6 | Rectangle{ 7 | color: homeColor 8 | property color layerColor: "#373e44" 9 | property color titleColor: "#ffffff" 10 | 11 | RowLayout{ 12 | anchors.centerIn: parent 13 | width: parent.width*0.98 14 | height: parent.height*0.8 15 | spacing: 30 16 | Rectangle{ 17 | id:speakerRec 18 | color: layerColor 19 | Layout.fillHeight: true 20 | Layout.fillWidth: true 21 | visible: true 22 | radius: 12 23 | border.width:2 24 | border.color : "#444b51" 25 | Label{ 26 | text: qsTr("Jabra Speaker") 27 | color:titleColor 28 | font.pixelSize: 32 29 | font.family: "Times New Roman" 30 | anchors{ 31 | left: parent.left 32 | top: parent.top 33 | topMargin: 20 34 | leftMargin: 20 35 | } 36 | 37 | } 38 | 39 | Image { 40 | id: speaker 41 | source: "qrc:/Assets/Images/speaker.png" 42 | anchors.centerIn: parent 43 | sourceSize: Qt.size(speakerRec.width*0.9,speakerRec.height*0.9) 44 | } 45 | Row{ 46 | spacing: 10 47 | anchors{ 48 | right: parent.right 49 | bottom: parent.bottom 50 | bottomMargin: 15 51 | rightMargin: 20 52 | } 53 | 54 | RowLayout{ 55 | spacing: 5 56 | Image{ 57 | source: "qrc:/Assets/Icons/bluetoot.png" 58 | sourceSize: Qt.size(20,20) 59 | } 60 | Label{ 61 | text: qsTr("Bluetooth") 62 | color:titleColor 63 | font.pixelSize: 12 64 | font.bold: true 65 | Layout.alignment: Qt.AlignVCenter 66 | } 67 | } 68 | RowLayout{ 69 | spacing: 5 70 | Image{ 71 | source: "qrc:/Assets/Icons/battery.png" 72 | sourceSize: Qt.size(20,20) 73 | } 74 | Label{ 75 | text: qsTr("75%") 76 | color:titleColor 77 | font.pixelSize: 12 78 | font.bold: true 79 | Layout.alignment: Qt.AlignVCenter 80 | } 81 | } 82 | } 83 | 84 | } 85 | Rectangle{ 86 | color: layerColor 87 | Layout.fillHeight: true 88 | Layout.fillWidth: true 89 | visible: true 90 | radius: 12 91 | border.width:2 92 | border.color : "#444b51" 93 | Label{ 94 | text: qsTr("Jabra Connect Link") 95 | font.family: "Times New Roman" 96 | color:titleColor 97 | font.pixelSize: 32 98 | anchors{ 99 | left: parent.left 100 | top: parent.top 101 | topMargin: 20 102 | leftMargin: 20 103 | } 104 | 105 | } 106 | Image { 107 | id: dongle 108 | source: "qrc:/Assets/Images/dongle.png" 109 | anchors.centerIn: parent 110 | } 111 | RowLayout{ 112 | spacing: 10 113 | anchors{ 114 | right: parent.right 115 | bottom: parent.bottom 116 | bottomMargin: 15 117 | rightMargin: 20 118 | } 119 | RowLayout{ 120 | spacing: 5 121 | Image{ 122 | source: "qrc:/Assets/Icons/usb.png" 123 | sourceSize: Qt.size(20,20) 124 | } 125 | Label{ 126 | text: qsTr("USB") 127 | color:titleColor 128 | font.pixelSize: 12 129 | font.bold: true 130 | Layout.alignment: Qt.AlignVCenter 131 | } 132 | } 133 | } 134 | 135 | } 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /Screens/Settings.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.15 2 | import QtQuick.Controls 2.1 3 | import QtQuick.Layouts 1.3 4 | import "../Models" 5 | import "../Components" 6 | Item { 7 | Rectangle{ 8 | anchors.fill: parent 9 | color: homeColor 10 | } 11 | ColumnLayout{ 12 | anchors.fill: parent 13 | anchors.rightMargin: 10 14 | spacing: 0 15 | Rectangle{ 16 | Layout.fillWidth: true 17 | Layout.preferredHeight: 150 18 | color: homeColor 19 | Label { 20 | id: label 21 | font.pixelSize: Qt.application.font.pixelSize * 3 22 | text:qsTr("Settings") 23 | y:20 24 | anchors{ 25 | topMargin: 50 26 | left: parent.left 27 | } 28 | } 29 | Rectangle{ 30 | id:line 31 | width: parent.width*0.99 32 | height: 2 33 | color: "#444b51" 34 | anchors{ 35 | top:label.bottom 36 | topMargin: 10 37 | } 38 | 39 | } 40 | 41 | Label { 42 | id:deviceLabel 43 | font.pixelSize: Qt.application.font.pixelSize*1.2 44 | text:qsTr("General Settings") 45 | anchors{ 46 | top: line.bottom 47 | topMargin: 20 48 | } 49 | } 50 | Label { 51 | font.pixelSize: Qt.application.font.pixelSize*0.9 52 | text:qsTr("All devices related settings configuration") 53 | color: "light grey" 54 | font.family: "Times New Roman" 55 | anchors{ 56 | top: deviceLabel.bottom 57 | topMargin: 5 58 | } 59 | } 60 | } 61 | 62 | Rectangle{ 63 | Layout.fillHeight: true 64 | Layout.fillWidth: true 65 | color: homeColor 66 | ColumnLayout{ 67 | anchors{ 68 | top: parent.top 69 | topMargin: 5 70 | horizontalCenter: parent.horizontalCenter 71 | } 72 | spacing: 5 73 | 74 | Label { 75 | font.pixelSize: Qt.application.font.pixelSize*1.2 76 | text:qsTr("Allow Notification") 77 | } 78 | Label { 79 | font.pixelSize: Qt.application.font.pixelSize*0.9 80 | text: qsTr("Allows jabra to send notification about available\nUpdates and other relavant information") 81 | color: "light grey" 82 | } 83 | } 84 | CCheckBox{ 85 | checkedColor: "#228BE6" 86 | checked: true 87 | anchors{ 88 | right: parent.right 89 | rightMargin: 20 90 | } 91 | } 92 | 93 | } 94 | Rectangle{ 95 | Layout.fillHeight: true 96 | Layout.fillWidth: true 97 | color: homeColor 98 | ColumnLayout{ 99 | anchors{ 100 | top: parent.top 101 | topMargin: 5 102 | horizontalCenter: parent.horizontalCenter 103 | } 104 | spacing: 5 105 | 106 | Label { 107 | font.pixelSize: Qt.application.font.pixelSize*1.2 108 | text:qsTr("Enbale Jabra in Tray") 109 | } 110 | Label { 111 | font.pixelSize: Qt.application.font.pixelSize*0.9 112 | text: qsTr("Enable overview and notification from KENT which\nIs accessibile in the notification area") 113 | color: "light grey" 114 | } 115 | } 116 | 117 | CCheckBox{ 118 | checkedColor: "#228BE6" 119 | checked: true 120 | anchors{ 121 | right: parent.right 122 | rightMargin: 20 123 | } 124 | } 125 | 126 | } 127 | Rectangle{ 128 | Layout.fillWidth: true 129 | Layout.preferredHeight: 20 130 | color: homeColor 131 | Rectangle{ 132 | id:line2 133 | width: parent.width*0.99 134 | height: 2 135 | color: "#444b51" 136 | anchors{ 137 | topMargin: 20 138 | } 139 | } 140 | 141 | } 142 | 143 | Rectangle{ 144 | Layout.fillHeight: true 145 | Layout.fillWidth: true 146 | color: homeColor 147 | 148 | Label { 149 | id:otherLabel 150 | font.pixelSize: Qt.application.font.pixelSize*1.2 151 | text:qsTr("Softphone Integration") 152 | anchors{ 153 | left: parent.left 154 | leftMargin: 10 155 | topMargin: 10 156 | } 157 | } 158 | 159 | ColumnLayout{ 160 | id:topLayout 161 | anchors{ 162 | top: parent.top 163 | topMargin: 5 164 | horizontalCenter: parent.horizontalCenter 165 | } 166 | spacing: 20 167 | Column{ 168 | spacing: 5 169 | Label { 170 | font.pixelSize: Qt.application.font.pixelSize*1.2 171 | text:qsTr("Presence Synchronization") 172 | } 173 | Label { 174 | font.pixelSize: Qt.application.font.pixelSize*0.9 175 | text:qsTr("Syncs connected device status soft phone status") 176 | color:"light grey" 177 | } 178 | } 179 | Column{ 180 | spacing: 5 181 | Label { 182 | font.pixelSize: Qt.application.font.pixelSize*1.2 183 | text:qsTr("Preferred Softphone") 184 | } 185 | Label { 186 | font.pixelSize: Qt.application.font.pixelSize*0.9 187 | text:qsTr("Choose a preferred softphone to be used with connected device") 188 | color:"light grey" 189 | } 190 | } 191 | } 192 | ColumnLayout{ 193 | spacing: 20 194 | anchors{ 195 | right: parent.right 196 | rightMargin: 20 197 | top: parent.top 198 | } 199 | CCheckBox{ 200 | id:checkedBox 201 | checkedColor: "#228BE6" 202 | checked: true 203 | Layout.alignment: Qt.AlignRight 204 | } 205 | RowLayout{ 206 | Layout.alignment: Qt.AlignHCenter 207 | spacing: 5 208 | CButton{ 209 | id:addButton 210 | color:"#444b51" 211 | borderColor:"#444b51" 212 | pressColor:"#444b51" 213 | hoverColor:"#444b51" 214 | borderRadius: 18 215 | width: 45 216 | height: 45 217 | iconWidth: 35 218 | iconHeight: 35 219 | sourceIcon:"qrc:/Assets/Images/18362309891600040225-512.png" 220 | 221 | } 222 | CButton{ 223 | color:"#444b51" 224 | borderColor:"#444b51" 225 | pressColor:"#444b51" 226 | hoverColor:"#444b51" 227 | borderRadius: 18 228 | width: 45 229 | height: 45 230 | iconWidth: 50 231 | iconHeight: 50 232 | sourceIcon:"qrc:/Assets/Images/Microsoft_Teams-Logo.wine.png" 233 | 234 | } 235 | CButton{ 236 | color:"#444b51" 237 | borderColor:"#444b51" 238 | pressColor:"#444b51" 239 | hoverColor:"#444b51" 240 | borderRadius: 18 241 | width: 45 242 | height: 45 243 | sourceIcon:"qrc:/Assets/Icons/icons8-plus-48.png" 244 | 245 | } 246 | } 247 | } 248 | 249 | } 250 | } 251 | } 252 | -------------------------------------------------------------------------------- /Screens/Update.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.15 2 | import QtQuick.Controls 2.1 3 | import QtQuick.Layouts 1.3 4 | import "../Models" 5 | import "../Components" 6 | Page { 7 | Rectangle{ 8 | anchors.fill: parent 9 | color: homeColor 10 | } 11 | ColumnLayout{ 12 | anchors.fill: parent 13 | anchors.rightMargin: 10 14 | spacing: 0 15 | Rectangle{ 16 | Layout.fillWidth: true 17 | Layout.preferredHeight: 150 18 | color: homeColor 19 | Label { 20 | id: label 21 | font.pixelSize: Qt.application.font.pixelSize * 3 22 | text:qsTr("Update") 23 | y:20 24 | anchors{ 25 | topMargin: 50 26 | left: parent.left 27 | } 28 | } 29 | CButton{ 30 | id:checkUpdate 31 | y:25 32 | color:"transparent" 33 | borderColor:"#228BE6" 34 | pressColor:"transparent" 35 | hoverColor:"transparent" 36 | borderRadius: 18 37 | width: 200 38 | height: 30 39 | innerText.color:"#228BE6" 40 | buttonText:qsTr("Check For Update") 41 | anchors{ 42 | right: parent.right 43 | rightMargin: 20 44 | } 45 | onClicked: { 46 | 47 | } 48 | } 49 | Rectangle{ 50 | id:line 51 | width: parent.width*0.99 52 | height: 2 53 | color: "#444b51" 54 | anchors{ 55 | top:label.bottom 56 | topMargin: 10 57 | } 58 | 59 | } 60 | 61 | Label { 62 | id:deviceLabel 63 | font.pixelSize: Qt.application.font.pixelSize*1.2 64 | text:qsTr("Devices") 65 | anchors{ 66 | top: line.bottom 67 | topMargin: 20 68 | } 69 | } 70 | Label { 71 | font.pixelSize: Qt.application.font.pixelSize*0.9 72 | text:qsTr("All devices are up to date ") 73 | color: "light grey" 74 | font.family: "Times New Roman" 75 | anchors{ 76 | top: deviceLabel.bottom 77 | topMargin: 5 78 | } 79 | } 80 | } 81 | 82 | Rectangle{ 83 | Layout.fillHeight: true 84 | Layout.fillWidth: true 85 | color: homeColor 86 | ColumnLayout{ 87 | anchors{ 88 | top: parent.top 89 | topMargin: 5 90 | horizontalCenter: parent.horizontalCenter 91 | } 92 | spacing: 5 93 | 94 | Label { 95 | font.pixelSize: Qt.application.font.pixelSize*1.3 96 | text:qsTr("Jabra Speaker") 97 | } 98 | Label { 99 | font.pixelSize: Qt.application.font.pixelSize*0.9 100 | text:infoButton2.updateAvailable ? qsTr("Current : 2.10.0") : qsTr("Update available : 2.11.0") 101 | color:infoButton2.updateAvailable ? "light grey" :"#FAB005" 102 | font.family: "Times New Roman" 103 | } 104 | IconButton{ 105 | id:infoButton2 106 | property bool updateAvailable: updateButton2.updateAvailable 107 | color: "transparent" 108 | borderColor:"transparent" 109 | pressColor:"transparent" 110 | hoverColor:"transparent" 111 | borderRadius: 18 112 | width: 100 113 | height: 20 114 | innerText.color: "#FAB005" 115 | fontSize: 10 116 | iconWidth: 15 117 | iconHeight: 15 118 | sourceIcon:"qrc:/Assets/Icons/icons8-info-50.png" 119 | buttonText: qsTr("Release notes") 120 | Layout.alignment: Qt.AlignLeft 121 | } 122 | } 123 | 124 | IconButton{ 125 | id:updateButton2 126 | property bool updateAvailable: true 127 | color:updateAvailable ? "transparent" : "#444b51" 128 | borderColor:updateAvailable ? "transparent" :"#444b51" 129 | pressColor:updateAvailable ? "transparent" : "#444b51" 130 | hoverColor:updateAvailable ? "transparent" : "#444b51" 131 | borderRadius: 18 132 | width: 100 133 | height: 30 134 | innerText.color:updateAvailable ? "White" :"#FAB005" 135 | fontSize: 10 136 | iconWidth: 20 137 | iconHeight: 20 138 | sourceIcon:updateAvailable ? "qrc:/Assets/Icons/icons8-ok-30.png" : "qrc:/Assets/Icons/icons8-info-50.png" 139 | buttonText:updateAvailable ? qsTr("Up to date") : qsTr("Update") 140 | anchors{ 141 | right: parent.right 142 | rightMargin: 20 143 | } 144 | } 145 | 146 | } 147 | Rectangle{ 148 | Layout.fillHeight: true 149 | Layout.fillWidth: true 150 | color: homeColor 151 | ColumnLayout{ 152 | anchors{ 153 | top: parent.top 154 | topMargin: 5 155 | horizontalCenter: parent.horizontalCenter 156 | } 157 | spacing: 5 158 | 159 | Label { 160 | font.pixelSize: Qt.application.font.pixelSize*1.3 161 | text:qsTr("Jabra Connect Link") 162 | } 163 | Label { 164 | font.pixelSize: Qt.application.font.pixelSize*0.9 165 | text:infoButton3.updateAvailable ? qsTr("Current : 5.10.2") : qsTr("Update available : 5.11.5") 166 | color:infoButton3.updateAvailable ? "light grey" :"#FAB005" 167 | font.family: "Times New Roman" 168 | } 169 | IconButton{ 170 | id:infoButton3 171 | property bool updateAvailable: updateButton3.updateAvailable 172 | color: "transparent" 173 | borderColor:"transparent" 174 | pressColor:"transparent" 175 | hoverColor:"transparent" 176 | borderRadius: 18 177 | width: 100 178 | height: 20 179 | innerText.color: "#FAB005" 180 | fontSize: 10 181 | iconWidth: 15 182 | iconHeight: 15 183 | sourceIcon:"qrc:/Assets/Icons/icons8-info-50.png" 184 | buttonText: qsTr("Release notes") 185 | Layout.alignment: Qt.AlignLeft 186 | } 187 | } 188 | 189 | IconButton{ 190 | id:updateButton3 191 | property bool updateAvailable: true 192 | color:updateAvailable ? "transparent" : "#444b51" 193 | borderColor:updateAvailable ? "transparent" :"#444b51" 194 | pressColor:updateAvailable ? "transparent" : "#444b51" 195 | hoverColor:updateAvailable ? "transparent" : "#444b51" 196 | borderRadius: 18 197 | width: 100 198 | height: 30 199 | innerText.color:updateAvailable ? "White" :"#FAB005" 200 | fontSize: 10 201 | iconWidth: 20 202 | iconHeight: 20 203 | sourceIcon:updateAvailable ? "qrc:/Assets/Icons/icons8-ok-30.png" : "qrc:/Assets/Icons/icons8-info-50.png" 204 | buttonText:updateAvailable ? qsTr("Up to date") : qsTr("Update") 205 | anchors{ 206 | right: parent.right 207 | rightMargin: 20 208 | } 209 | } 210 | 211 | } 212 | Rectangle{ 213 | Layout.fillWidth: true 214 | Layout.preferredHeight: 20 215 | color: homeColor 216 | Rectangle{ 217 | id:line2 218 | width: parent.width*0.99 219 | height: 2 220 | color: "#444b51" 221 | anchors{ 222 | topMargin: 20 223 | } 224 | } 225 | 226 | } 227 | 228 | Rectangle{ 229 | Layout.fillHeight: true 230 | Layout.fillWidth: true 231 | color: homeColor 232 | 233 | Label { 234 | id:otherLabel 235 | font.pixelSize: Qt.application.font.pixelSize*1.2 236 | text:qsTr("Software") 237 | anchors{ 238 | left: parent.left 239 | leftMargin: 10 240 | topMargin: 10 241 | } 242 | } 243 | 244 | ColumnLayout{ 245 | anchors{ 246 | top: parent.top 247 | topMargin: 5 248 | horizontalCenter: parent.horizontalCenter 249 | } 250 | spacing: 5 251 | 252 | Label { 253 | font.pixelSize: Qt.application.font.pixelSize*1.3 254 | text:qsTr("Jabra Speaker 210") 255 | } 256 | Label { 257 | font.pixelSize: Qt.application.font.pixelSize*0.9 258 | text:infoButton.updateAvailable ? qsTr("Current : 5.10.2") : qsTr("Update available : 5.11.5") 259 | color:infoButton.updateAvailable ? "light grey" :"#FAB005" 260 | font.family: "Times New Roman" 261 | } 262 | IconButton{ 263 | id:infoButton 264 | property bool updateAvailable: updateButton.updateAvailable 265 | color: "transparent" 266 | borderColor:"transparent" 267 | pressColor:"transparent" 268 | hoverColor:"transparent" 269 | borderRadius: 18 270 | width: 100 271 | height: 20 272 | innerText.color: "#FAB005" 273 | fontSize: 10 274 | iconWidth: 15 275 | iconHeight: 15 276 | sourceIcon:"qrc:/Assets/Icons/icons8-info-50.png" 277 | buttonText: qsTr("Release notes") 278 | Layout.alignment: Qt.AlignLeft 279 | } 280 | } 281 | 282 | IconButton{ 283 | id:updateButton 284 | property bool updateAvailable: false 285 | color:updateAvailable ? "transparent" : "#444b51" 286 | borderColor:updateAvailable ? "transparent" :"#444b51" 287 | pressColor:updateAvailable ? "transparent" : "#444b51" 288 | hoverColor:updateAvailable ? "transparent" : "#444b51" 289 | borderRadius: 18 290 | width: 100 291 | height: 30 292 | innerText.color:updateAvailable ? "White" :"#FAB005" 293 | fontSize: 10 294 | iconWidth: 20 295 | iconHeight: 20 296 | sourceIcon:updateAvailable ? "qrc:/Assets/Icons/icons8-ok-30.png" : "qrc:/Assets/Icons/icons8-info-50.png" 297 | buttonText:updateAvailable ? qsTr("Up to date") : qsTr("Update") 298 | anchors{ 299 | verticalCenter: otherLabel.verticalCenter 300 | right: parent.right 301 | rightMargin: 20 302 | } 303 | onClicked: { 304 | 305 | } 306 | } 307 | 308 | } 309 | } 310 | } 311 | -------------------------------------------------------------------------------- /Connect.pro.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EnvironmentId 7 | {32fa5611-543e-4e9b-b489-650fc7f5e550} 8 | 9 | 10 | ProjectExplorer.Project.ActiveTarget 11 | 0 12 | 13 | 14 | ProjectExplorer.Project.EditorSettings 15 | 16 | true 17 | false 18 | true 19 | 20 | Cpp 21 | 22 | CppGlobal 23 | 24 | 25 | 26 | QmlJS 27 | 28 | QmlJSGlobal 29 | 30 | 31 | 2 32 | UTF-8 33 | false 34 | 4 35 | false 36 | 80 37 | true 38 | true 39 | 1 40 | false 41 | true 42 | false 43 | 0 44 | true 45 | true 46 | 0 47 | 8 48 | true 49 | false 50 | 1 51 | true 52 | true 53 | true 54 | *.md, *.MD, Makefile 55 | false 56 | true 57 | 58 | 59 | 60 | ProjectExplorer.Project.PluginSettings 61 | 62 | 63 | true 64 | false 65 | true 66 | true 67 | true 68 | true 69 | 70 | 71 | 0 72 | true 73 | 74 | true 75 | true 76 | Builtin.DefaultTidyAndClazy 77 | 2 78 | 79 | 80 | 81 | true 82 | 83 | 84 | 85 | 86 | ProjectExplorer.Project.Target.0 87 | 88 | Desktop 89 | Desktop Qt 5.15.2 GCC 64bit 90 | Desktop Qt 5.15.2 GCC 64bit 91 | qt.qt5.5152.gcc_64_kit 92 | 0 93 | 0 94 | 0 95 | 96 | 0 97 | /home/adeshsingh/build-Connect-Desktop_Qt_5_15_2_GCC_64bit-Debug 98 | /home/adeshsingh/build-Connect-Desktop_Qt_5_15_2_GCC_64bit-Debug 99 | 100 | 101 | true 102 | QtProjectManager.QMakeBuildStep 103 | false 104 | 105 | 106 | 107 | true 108 | Qt4ProjectManager.MakeStep 109 | 110 | 2 111 | Build 112 | Build 113 | ProjectExplorer.BuildSteps.Build 114 | 115 | 116 | 117 | true 118 | Qt4ProjectManager.MakeStep 119 | clean 120 | 121 | 1 122 | Clean 123 | Clean 124 | ProjectExplorer.BuildSteps.Clean 125 | 126 | 2 127 | false 128 | 129 | false 130 | 131 | Debug 132 | Qt4ProjectManager.Qt4BuildConfiguration 133 | 2 134 | 135 | 136 | /home/adeshsingh/build-Connect-Desktop_Qt_5_15_2_GCC_64bit-Release 137 | /home/adeshsingh/build-Connect-Desktop_Qt_5_15_2_GCC_64bit-Release 138 | 139 | 140 | true 141 | QtProjectManager.QMakeBuildStep 142 | false 143 | 144 | 145 | 146 | true 147 | Qt4ProjectManager.MakeStep 148 | 149 | 2 150 | Build 151 | Build 152 | ProjectExplorer.BuildSteps.Build 153 | 154 | 155 | 156 | true 157 | Qt4ProjectManager.MakeStep 158 | clean 159 | 160 | 1 161 | Clean 162 | Clean 163 | ProjectExplorer.BuildSteps.Clean 164 | 165 | 2 166 | false 167 | 168 | false 169 | 170 | Release 171 | Qt4ProjectManager.Qt4BuildConfiguration 172 | 0 173 | 0 174 | 175 | 176 | 0 177 | /home/adeshsingh/build-Connect-Desktop_Qt_5_15_2_GCC_64bit-Profile 178 | /home/adeshsingh/build-Connect-Desktop_Qt_5_15_2_GCC_64bit-Profile 179 | 180 | 181 | true 182 | QtProjectManager.QMakeBuildStep 183 | false 184 | 185 | 186 | 187 | true 188 | Qt4ProjectManager.MakeStep 189 | 190 | 2 191 | Build 192 | Build 193 | ProjectExplorer.BuildSteps.Build 194 | 195 | 196 | 197 | true 198 | Qt4ProjectManager.MakeStep 199 | clean 200 | 201 | 1 202 | Clean 203 | Clean 204 | ProjectExplorer.BuildSteps.Clean 205 | 206 | 2 207 | false 208 | 209 | false 210 | 211 | Profile 212 | Qt4ProjectManager.Qt4BuildConfiguration 213 | 0 214 | 0 215 | 0 216 | 217 | 3 218 | 219 | 220 | 0 221 | Deploy 222 | Deploy 223 | ProjectExplorer.BuildSteps.Deploy 224 | 225 | 1 226 | 227 | false 228 | ProjectExplorer.DefaultDeployConfiguration 229 | 230 | 1 231 | 232 | true 233 | true 234 | true 235 | 236 | 2 237 | 238 | Qt4ProjectManager.Qt4RunConfiguration:/home/adeshsingh/Connect/Connect.pro 239 | /home/adeshsingh/Connect/Connect.pro 240 | false 241 | true 242 | true 243 | false 244 | true 245 | /home/adeshsingh/build-Connect-Desktop_Qt_5_15_2_GCC_64bit-Debug 246 | 247 | 1 248 | 249 | 250 | 251 | ProjectExplorer.Project.TargetCount 252 | 1 253 | 254 | 255 | ProjectExplorer.Project.Updater.FileVersion 256 | 22 257 | 258 | 259 | Version 260 | 22 261 | 262 | 263 | --------------------------------------------------------------------------------