Browse Source

Add all led connections

mode-button
Alireza 3 years ago
parent
commit
9821afc96c
  1. 190
      logic/include/model/Console.h
  2. 180
      logic/include/viewModel/MainViewModel.h
  3. 65
      logic/include/viewModel/utils/Property.h
  4. 99
      logic/src/viewModel/MainViewModel.cpp
  5. 14
      ui/App.qml
  6. 70
      ui/MainView.qml
  7. 78
      ui/emulator/components/Trackball.qml
  8. 8
      ui/emulator/elements/LightImageBind.qml
  9. 8
      ui/emulator/elements/ModeButtonBind.qml
  10. 15
      ui/emulator/elements/ModeOptionBind.qml
  11. 120
      ui/emulator/elements/TrackballBind.qml
  12. 21
      ui/emulator/items/Encoders.qml
  13. 14
      ui/emulator/items/JoystickCouple.qml
  14. 44
      ui/emulator/items/MiniButtons.qml
  15. 4
      ui/emulator/items/TrackballGroup.qml
  16. 4
      ui/theme/Palette.qml
  17. 94
      ui/ui.qrc

190
logic/include/model/Console.h

@ -8,8 +8,6 @@
#define EchoFunctionCode 0xA4 #define EchoFunctionCode 0xA4
#define ZeroValue 0x00 #define ZeroValue 0x00
#include <QObject> #include <QObject>
#include "ButtonHelper.h" #include "ButtonHelper.h"
@ -22,108 +20,106 @@
class Console : public QObject class Console : public QObject
{ {
Q_OBJECT Q_OBJECT
// PushButton with LED //PushButton with LED
PUSH_BUTTON(Dual, dual, DUAL_FC, static_cast<char>(DUAL_LED_FC)); PUSH_BUTTON(Dual, dual, DUAL_FC, static_cast<char>(DUAL_LED_FC));
PUSH_BUTTON(Quad, quad, QUAD_FC, static_cast<char>(QUAD_LED_FC)); PUSH_BUTTON(Quad, quad, QUAD_FC, static_cast<char>(QUAD_LED_FC));
PUSH_BUTTON(Single, single, SINGLE_FC, static_cast<char>(SINGLE_LED_FC)); PUSH_BUTTON(Single, single, SINGLE_FC, static_cast<char>(SINGLE_LED_FC));
PUSH_BUTTON(P1, p1, P1_FC, static_cast<char>(P1_LED_FC)); PUSH_BUTTON(P1, p1, P1_FC, static_cast<char>(P1_LED_FC));
PUSH_BUTTON(P2, p2, P2_FC, static_cast<char>(P2_LED_FC)); PUSH_BUTTON(P2, p2, P2_FC, static_cast<char>(P2_LED_FC));
PUSH_BUTTON(P3, p3, P3_FC, static_cast<char>(P3_LED_FC)); PUSH_BUTTON(P3, p3, P3_FC, static_cast<char>(P3_LED_FC));
PUSH_BUTTON(P4, p4, P4_FC, static_cast<char>(P4_LED_FC)); PUSH_BUTTON(P4, p4, P4_FC, static_cast<char>(P4_LED_FC));
PUSH_BUTTON(P5, p5, P5_FC, static_cast<char>(P5_LED_FC)); PUSH_BUTTON(P5, p5, P5_FC, static_cast<char>(P5_LED_FC));
PUSH_BUTTON(P6, p6, P6_FC, static_cast<char>(P6_LED_FC)); PUSH_BUTTON(P6, p6, P6_FC, static_cast<char>(P6_LED_FC));
PUSH_BUTTON(Exit, exit, EXIT_FC, static_cast<char>(EXIT_LED_FC)); PUSH_BUTTON(Exit, exit, EXIT_FC, static_cast<char>(EXIT_LED_FC));
PUSH_BUTTON(Freeze, freeze, FREEZE_FC, static_cast<char>(FREEZE_LED_FC)); PUSH_BUTTON(Freeze, freeze, FREEZE_FC, static_cast<char>(FREEZE_LED_FC));
PUSH_BUTTON(Pointer, pointer, POINTER_FC, static_cast<char>(POINTER_LED_FC)); PUSH_BUTTON(Pointer, pointer, POINTER_FC, static_cast<char>(POINTER_LED_FC));
PUSH_BUTTON(AutoSet, autoSet, AUTOSET_FC, static_cast<char>(AUTOSET_LED_FC)); PUSH_BUTTON(AutoSet, autoSet, AUTOSET_FC, static_cast<char>(AUTOSET_LED_FC));
PUSH_BUTTON(Abc, abc, ABC_FC, static_cast<char>(ABC_LED_FC)); PUSH_BUTTON(Abc, abc, ABC_FC, static_cast<char>(ABC_LED_FC));
PUSH_BUTTON(FourD, fourD, FOUR_D_FC, static_cast<char>(FOUR_D_LED_FC)); PUSH_BUTTON(FourD, fourD, FOUR_D_FC, static_cast<char>(FOUR_D_LED_FC));
PUSH_BUTTON(Clear, clear, CLEAR_FC, static_cast<char>(CLEAR_LED_FC)); PUSH_BUTTON(Clear, clear, CLEAR_FC, static_cast<char>(CLEAR_LED_FC));
PUSH_BUTTON(ThreeD, threeD, THREE_D_FC, static_cast<char>(THREE_D_LED_FC)); PUSH_BUTTON(ThreeD, threeD, THREE_D_FC, static_cast<char>(THREE_D_LED_FC));
PUSH_BUTTON(Measure, measure, MEASURE_FC, static_cast<char>(MEASURE_LED_FC)); PUSH_BUTTON(Measure, measure, MEASURE_FC, static_cast<char>(MEASURE_LED_FC));
PUSH_BUTTON(BodyMark, bodyMark, BODY_MARK_FC, static_cast<char>(BODY_MARK_LED_FC)); PUSH_BUTTON(BodyMark, bodyMark, BODY_MARK_FC, static_cast<char>(BODY_MARK_LED_FC));
PUSH_BUTTON(Patient, patient, PATIENT_FC, static_cast<char>(PATIENT_LED_FC)); PUSH_BUTTON(Patient, patient, PATIENT_FC, static_cast<char>(PATIENT_LED_FC));
PUSH_BUTTON(Utils, utils, UTILS_FC, static_cast<char>(UTILS_LED_FC)); PUSH_BUTTON(Utils, utils, UTILS_FC, static_cast<char>(UTILS_LED_FC));
PUSH_BUTTON(Dvd, dvd, DVD_FC, static_cast<char>(DVD_LED_FC)); PUSH_BUTTON(Dvd, dvd, DVD_FC, static_cast<char>(DVD_LED_FC));
PUSH_BUTTON(Report, report, REPORT_FC, static_cast<char>(REPORT_LED_FC)); PUSH_BUTTON(Report, report, REPORT_FC, static_cast<char>(REPORT_LED_FC));
PUSH_BUTTON(Probe, probe, PROBE_FC, static_cast<char>(PROBE_LED_FC)); PUSH_BUTTON(Probe, probe, PROBE_FC, static_cast<char>(PROBE_LED_FC));
PUSH_BUTTON(Archive, archive, ARCHIVE_FC, static_cast<char>(ARCHIVE_LED_FC)); PUSH_BUTTON(Archive, archive, ARCHIVE_FC, static_cast<char>(ARCHIVE_LED_FC));
PUSH_BUTTON(End, end, END_FC, static_cast<char>(END_LED_FC)); PUSH_BUTTON(End, end, END_FC, static_cast<char>(END_LED_FC));
PUSH_BUTTON(Xtd, xtd, XTD_FC, static_cast<char>(XTD_LED_FC)); PUSH_BUTTON(Xtd, xtd, XTD_FC, static_cast<char>(XTD_LED_FC));
PUSH_BUTTON(Bf, bf, BF_FC, static_cast<char>(BF_LED_FC)); PUSH_BUTTON(Bf, bf, BF_FC, static_cast<char>(BF_LED_FC));
PUSH_BUTTON(DepthCenter, depthCenter, DEPTH_CENTER_FC, static_cast<char>(ZOOM_LED_FC)); PUSH_BUTTON(DepthCenter, depthCenter, DEPTH_CENTER_FC, static_cast<char>(ZOOM_LED_FC));
PUSH_BUTTON(FocusCenter, focusCenter, FOCUS_CENTER_FC, static_cast<char>(FOCUS_ZONE_LED_FC)); PUSH_BUTTON(FocusCenter, focusCenter, FOCUS_CENTER_FC, static_cast<char>(FOCUS_ZONE_LED_FC));
PUSH_BUTTON(ModePwCenter, modePwCenter, MODE_PW_CENTER_FC, static_cast<char>(MODE_PW_LED_FC)); PUSH_BUTTON(ModePwCenter, modePwCenter, MODE_PW_CENTER_FC, static_cast<char>(MODE_PW_LED_FC));
PUSH_BUTTON(ModeMCenter, modeMCenter, MODE_M_CENTER_FC, static_cast<char>(MODE_M_LED_FC)); PUSH_BUTTON(ModeMCenter, modeMCenter, MODE_M_CENTER_FC, static_cast<char>(MODE_M_LED_FC));
PUSH_BUTTON(ModePdCenter, modePdCenter, MODE_PD_CENTER_FC, static_cast<char>(MODE_PD_LED_FC)); PUSH_BUTTON(ModePdCenter, modePdCenter, MODE_PD_CENTER_FC, static_cast<char>(MODE_PD_LED_FC));
PUSH_BUTTON(ModeCCenter, modeCCenter, MODE_C_CENTER_FC, static_cast<char>(MODE_C_LED_FC)); PUSH_BUTTON(ModeCCenter, modeCCenter, MODE_C_CENTER_FC, static_cast<char>(MODE_C_LED_FC));
PUSH_BUTTON(ModeBCenter, modeBCenter, MODE_2D_CENTER_FC, static_cast<char>(MODE_2D_LED_FC)); PUSH_BUTTON(ModeBCenter, modeBCenter, MODE_2D_CENTER_FC, static_cast<char>(MODE_2D_LED_FC));
PUSH_BUTTON(DepthBottom, depthBottom, DEPTH_BOTTOM_FC, static_cast<char>(DEPTH_LED_FC)); PUSH_BUTTON(DepthBottom, depthBottom, DEPTH_BOTTOM_FC, static_cast<char>(DEPTH_LED_FC));
PUSH_BUTTON(FocusBottom, focusBottom, FOCUS_BOTTOM_FC, static_cast<char>(FOCUS_DEPTH_LED_FC)); PUSH_BUTTON(FocusBottom, focusBottom, FOCUS_BOTTOM_FC, static_cast<char>(FOCUS_DEPTH_LED_FC));
// PushButton with No LED //PushButton with No LED
PUSH_BUTTON_NO_LED(Js1Top, js1Top, JOYSTICK1_TOP_FC); PUSH_BUTTON_NO_LED(Js1Top, js1Top, JOYSTICK1_TOP_FC);
PUSH_BUTTON_NO_LED(Js2Top, js2Top, JOYSTICK2_TOP_FC); PUSH_BUTTON_NO_LED(Js2Top, js2Top, JOYSTICK2_TOP_FC);
PUSH_BUTTON_NO_LED(Js3Top, js3Top, JOYSTICK3_TOP_FC); PUSH_BUTTON_NO_LED(Js3Top, js3Top, JOYSTICK3_TOP_FC);
PUSH_BUTTON_NO_LED( Js4Top, Js4Top, JOYSTICK4_TOP_FC); PUSH_BUTTON_NO_LED(Js4Top, js4Top, JOYSTICK4_TOP_FC);
PUSH_BUTTON_NO_LED(Js5Top, js5Top, JOYSTICK5_TOP_FC); PUSH_BUTTON_NO_LED(Js5Top, js5Top, JOYSTICK5_TOP_FC);
PUSH_BUTTON_NO_LED(DepthTop, depthTop, DEPTHTOP_FC); PUSH_BUTTON_NO_LED(DepthTop, depthTop, DEPTHTOP_FC);
PUSH_BUTTON_NO_LED(FocusTop, focusTop, FOCUSTOP_FC); PUSH_BUTTON_NO_LED(FocusTop, focusTop, FOCUSTOP_FC);
PUSH_BUTTON_NO_LED(Js1Center, js1Center, JOYSTICK1_CENTER_FC); PUSH_BUTTON_NO_LED(Js1Center, js1Center, JOYSTICK1_CENTER_FC);
PUSH_BUTTON_NO_LED(Js2Center, js2Center, JOYSTICK2_CENTER_FC); PUSH_BUTTON_NO_LED(Js2Center, js2Center, JOYSTICK2_CENTER_FC);
PUSH_BUTTON_NO_LED(Js3Center, js3Center, JOYSTICK3_CENTER_FC); PUSH_BUTTON_NO_LED(Js3Center, js3Center, JOYSTICK3_CENTER_FC);
PUSH_BUTTON_NO_LED(Js4Center, js4Center, JOYSTICK4_CENTER_FC); PUSH_BUTTON_NO_LED(Js4Center, js4Center, JOYSTICK4_CENTER_FC);
PUSH_BUTTON_NO_LED(Js5Center, js5Center, JOYSTICK5_CENTER_FC); PUSH_BUTTON_NO_LED(Js5Center, js5Center, JOYSTICK5_CENTER_FC);
PUSH_BUTTON_NO_LED(Js1Bottom, js1Bottom, JOYSTICK1_BOTTOM_FC); PUSH_BUTTON_NO_LED(Js1Bottom, js1Bottom, JOYSTICK1_BOTTOM_FC);
PUSH_BUTTON_NO_LED(Js2Bottom, js2Bottom, JOYSTICK2_BOTTOM_FC); PUSH_BUTTON_NO_LED(Js2Bottom, js2Bottom, JOYSTICK2_BOTTOM_FC);
PUSH_BUTTON_NO_LED(Js3Bottom, js3Bottom, JOYSTICK3_BOTTOM_FC); PUSH_BUTTON_NO_LED(Js3Bottom, js3Bottom, JOYSTICK3_BOTTOM_FC);
PUSH_BUTTON_NO_LED(Js4Bottom, js4Bottom, JOYSTICK4_BOTTOM_FC); PUSH_BUTTON_NO_LED(Js4Bottom, js4Bottom, JOYSTICK4_BOTTOM_FC);
PUSH_BUTTON_NO_LED(Js5Bottom, js5Bottom, JOYSTICK5_BOTTOM_FC); PUSH_BUTTON_NO_LED(Js5Bottom, js5Bottom, JOYSTICK5_BOTTOM_FC);
PUSH_BUTTON_NO_LED(TrackballTop, trackballTop, TRACKBALL_TOP_FC); PUSH_BUTTON_NO_LED(TrackballTop, trackballTop, TRACKBALL_TOP_FC);
PUSH_BUTTON_NO_LED(TrackballTopRight, trackballTopRight, TRACKBALL_TOP_RIGHT_FC); PUSH_BUTTON_NO_LED(TrackballTopRight, trackballTopRight, TRACKBALL_TOP_RIGHT_FC);
PUSH_BUTTON_NO_LED(TrackballRight, trackballRight, TRACKBALL_RIGHT_FC); PUSH_BUTTON_NO_LED(TrackballRight, trackballRight, TRACKBALL_RIGHT_FC);
PUSH_BUTTON_NO_LED(TrackballBottomRight, trackballBottomRight, TRACKBALL_BOTTOM_RIGHT_FC); PUSH_BUTTON_NO_LED(TrackballBottomRight, trackballBottomRight, TRACKBALL_BOTTOM_RIGHT_FC);
PUSH_BUTTON_NO_LED(TrackballBottom, trackballBottom, TRACKBALL_BOTTOM_FC); PUSH_BUTTON_NO_LED(TrackballBottom, trackballBottom, TRACKBALL_BOTTOM_FC);
PUSH_BUTTON_NO_LED(TrackballBottomLeft, trackballBottomLeft, TRACKBALL_TOP_BOTTOM_FC); PUSH_BUTTON_NO_LED(TrackballBottomLeft, trackballBottomLeft, TRACKBALL_TOP_BOTTOM_FC);
PUSH_BUTTON_NO_LED(TrackballLeft, trackballLeft, TRACKBALL_LEFT_FC); PUSH_BUTTON_NO_LED(TrackballLeft, trackballLeft, TRACKBALL_LEFT_FC);
PUSH_BUTTON_NO_LED(TrackballTopLeft, trackballTopLeft, TRACKBALL_TOP_LEFT_FC); PUSH_BUTTON_NO_LED(TrackballTopLeft, trackballTopLeft, TRACKBALL_TOP_LEFT_FC);
// ROTAY_BUTTON with LED //ROTAY_BUTTON with LED
ROTARY_BUTTON(Focus, focus, FOCUS_FC, static_cast<char>(ANGLE_LED_FC)); ROTARY_BUTTON(Focus, focus, FOCUS_FC, static_cast<char>(ANGLE_LED_FC));
ROTARY_BUTTON(ModeM, modeM, MODE_M_FC, static_cast<char>(QUADRAT_LED_FC)); ROTARY_BUTTON(ModeM, modeM, MODE_M_FC, static_cast<char>(QUADRAT_LED_FC));
ROTARY_BUTTON(ModePd, modePd, MODE_PD_FC, static_cast<char>(Z_LED_FC)); ROTARY_BUTTON(ModePd, modePd, MODE_PD_FC, static_cast<char>(Z_LED_FC));
ROTARY_BUTTON(ModeC, modeC, MODE_C_FC, static_cast<char>(Y_LED_FC)); ROTARY_BUTTON(ModeC, modeC, MODE_C_FC, static_cast<char>(Y_LED_FC));
ROTARY_BUTTON(ModeB, modeB, MODE_2D_FC, static_cast<char>(X_LED_FC)); ROTARY_BUTTON(ModeB, modeB, MODE_2D_FC, static_cast<char>(X_LED_FC));
// ROTAY_BUTTON with No LED //ROTAY_BUTTON with No LED
ROTARY_BUTTON_NO_LED(Js1, js1, JOYSTICK1_FC); ROTARY_BUTTON_NO_LED(Js1, js1, JOYSTICK1_FC);
ROTARY_BUTTON_NO_LED(Js2, js2, JOYSTICK2_FC); ROTARY_BUTTON_NO_LED(Js2, js2, JOYSTICK2_FC);
ROTARY_BUTTON_NO_LED(Js3, js3, JOYSTICK3_FC); ROTARY_BUTTON_NO_LED(Js3, js3, JOYSTICK3_FC);
ROTARY_BUTTON_NO_LED(Js4, js4, JOYSTICK4_FC); ROTARY_BUTTON_NO_LED(Js4, js4, JOYSTICK4_FC);
ROTARY_BUTTON_NO_LED(Js5, js5, JOYSTICK5_FC); ROTARY_BUTTON_NO_LED(Js5, js5, JOYSTICK5_FC);
ROTARY_BUTTON_NO_LED(Depth, depth, DEPTH_FC); ROTARY_BUTTON_NO_LED(Depth, depth, DEPTH_FC);
ROTARY_BUTTON_NO_LED(ModePw, modePw, MODE_PW_FC); ROTARY_BUTTON_NO_LED(ModePw, modePw, MODE_PW_FC);
private: private:
DataSender* _dataSender; DataSender* _dataSender;
Logger* _logger; Logger* _logger;
public: public:
Console(); Console();
void injectDataSender(DataSender* sender); void injectDataSender(DataSender* sender);
void injectLogger(Logger* logger); void injectLogger(Logger* logger);
void newData(QByteArray data); void newData(QByteArray data);
void hasValidDataFormat(const QByteArray& data); void hasValidDataFormat(const QByteArray& data);
bool isEchoPacket(const QByteArray& data); bool isEchoPacket(const QByteArray& data);
void initializeButtons(); void initializeButtons();
signals: signals:
void dataReady(QByteArray data, Logger* log); void dataReady(QByteArray data, Logger* log);
}; };
#endif //CONSOLE_H #endif //CONSOLE_H

180
logic/include/viewModel/MainViewModel.h

@ -2,28 +2,184 @@
#define MAINVIEWMODEL_H #define MAINVIEWMODEL_H
#include <QtMvvmCore/ViewModel> #include <QtMvvmCore/ViewModel>
#include "utils/Property.h"
#include "model/Console.h"
#define LedOFF 0x00
#define LedColorWhite 0x01
#define LedColorGreen 0x02
#define LedColorYellow 0x03
class MainViewModel : public QtMvvm::ViewModel class MainViewModel : public QtMvvm::ViewModel
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) Console * panel;
public: //Top Left
Q_INVOKABLE explicit MainViewModel(QObject *parent = nullptr); BUTTON_LED_PROPERTY(patient, Patient, false, LedOFF)
BUTTON_LED_PROPERTY(utils, Utils, false, LedColorWhite)
BUTTON_LED_PROPERTY(dvd, Dvd, false, LedColorGreen)
BUTTON_LED_PROPERTY(report, Report, false, LedColorYellow)
BUTTON_LED_PROPERTY(probe, Probe, false, LedColorWhite)
BUTTON_LED_PROPERTY(archive, Archive, false, LedColorGreen)
BUTTON_LED_PROPERTY(end, End, false, LedColorYellow)
//TopRight
BUTTON_LED_PROPERTY(xtd, Xtd, false, LedColorWhite)
BUTTON_LED_PROPERTY(bf, Bf, false, LedColorWhite)
BUTTON_LED_PROPERTY(p5, P5, false, LedColorWhite)
BUTTON_LED_PROPERTY(p6, P6, false, LedColorWhite)
//BottomRight
BUTTON_LED_PROPERTY(dual, Dual, false, LedColorWhite)
BUTTON_LED_PROPERTY(quad, Quad, false, LedColorWhite)
BUTTON_LED_PROPERTY(single, Single, false, LedColorWhite)
BUTTON_LED_PROPERTY(p1, P1, false, LedColorWhite)
BUTTON_LED_PROPERTY(p2, P2, false, LedColorWhite)
BUTTON_LED_PROPERTY(p3, P3, false, LedColorWhite)
BUTTON_LED_PROPERTY(p4, P4, false, LedColorWhite)
//CurveButtons
BUTTON_LED_PROPERTY(exit, Exit, false, LedColorWhite)
BUTTON_LED_PROPERTY(freeze, Freeze, false, LedColorWhite)
BUTTON_LED_PROPERTY(pointer, Pointer, false, LedColorWhite)
BUTTON_LED_PROPERTY(autoSet, AutoSet, false, LedColorWhite)
BUTTON_LED_PROPERTY(abc, Abc, false, LedColorWhite)
BUTTON_LED_PROPERTY(fourD, FourD, false, LedColorWhite)
BUTTON_LED_PROPERTY(clear, Clear, false, LedColorWhite)
BUTTON_LED_PROPERTY(threeD, ThreeD, false, LedColorWhite)
BUTTON_LED_PROPERTY(measure, Measure, false, LedColorWhite)
BUTTON_LED_PROPERTY(bodyMark, BodyMark, false, LedColorWhite)
//TrackballGroup
BUTTON_LED_PROPERTY(trackballLeft, TrackballLeft, false, LedOFF)
BUTTON_LED_PROPERTY(trackballRight, TrackballRight, false, LedOFF)
BUTTON_LED_PROPERTY(trackballTop, TrackballTop, false, LedOFF)
BUTTON_LED_PROPERTY(trackballBottom, TrackballBottom, false, LedOFF)
QString text() const; BUTTON_LED_PROPERTY(trackballTopLeft, TrackballTopLeft, false, LedOFF)
BUTTON_LED_PROPERTY(trackballTopRight, TrackballTopRight, false, LedOFF)
BUTTON_LED_PROPERTY(trackballBottomLeft, TrackballBottomLeft, false, LedOFF)
BUTTON_LED_PROPERTY(trackballBottomRight, TrackballBottomRight, false, LedOFF)
public Q_SLOTS: //Encoders
void showSettings(); LED_PROPERTY(modeM, LedOFF) //quadrat -> modeMLed
LED_PROPERTY(modePd, LedOFF) //z -> modePdLed
LED_PROPERTY(modeC, LedOFF) //y -> modeCLed
LED_PROPERTY(modeB, LedOFF) //x -> modeBLed
void setText(const QString &text); LED_PROPERTY(modePwCenter, LedOFF) //modePw -> modePwCenterLed
LED_PROPERTY(modeMCenter, LedOFF) //modeM -> modeMCenterLed
LED_PROPERTY(modePdCenter, LedOFF) //modePd -> modePdCenterLed
LED_PROPERTY(modeCCenter, LedOFF) //modeC -> modeCCenterLed
LED_PROPERTY(modeBCenter, LedOFF) //modeB -> modeBCenterLed
Q_SIGNALS: //JoystickCouple
void textChanged(const QString &text); LED_PROPERTY(depthCenter, LedOFF) //zoom -> depthCenterLed
LED_PROPERTY(depthBottom, LedOFF) //depth -> depthBottomLed
LED_PROPERTY(focus, LedOFF) //angle -> focusLed
LED_PROPERTY(focusCenter, LedOFF) //focus zone -> focusCenterLed
LED_PROPERTY(focusBottom, LedOFF) //focus-depth -> focusBottomLed
//Joysticks
BUTTON_PROPERTY(js1Top, Js1Top, false)
BUTTON_PROPERTY(js2Top, Js2Top, false)
BUTTON_PROPERTY(js3Top, Js3Top, false)
BUTTON_PROPERTY(js4Top, Js4Top, false)
BUTTON_PROPERTY(js5Top, Js5Top, false)
BUTTON_PROPERTY(js1Center, Js1Center, false)
BUTTON_PROPERTY(js2Center, Js2Center, false)
BUTTON_PROPERTY(js3Center, Js3Center, false)
BUTTON_PROPERTY(js4Center, Js4Center, false)
BUTTON_PROPERTY(js5Center, Js5Center, false)
BUTTON_PROPERTY(js1Bottom, Js1Bottom, false)
BUTTON_PROPERTY(js2Bottom, Js2Bottom, false)
BUTTON_PROPERTY(js3Bottom, Js3Bottom, false)
BUTTON_PROPERTY(js4Bottom, Js4Bottom, false)
BUTTON_PROPERTY(js5Bottom, Js5Bottom, false)
//TODO
public:
Q_INVOKABLE explicit MainViewModel(QObject* parent = nullptr);
private: private:
QString _text;
signals:
void ledChanged(char value);
//uncrustify off
public slots:
//Top Left
LED_SLOT(patient)
LED_SLOT(utils)
LED_SLOT(dvd)
LED_SLOT(report)
LED_SLOT(probe)
LED_SLOT(archive)
LED_SLOT(end)
// TopRight
LED_SLOT(xtd)
LED_SLOT(bf)
LED_SLOT(p5)
LED_SLOT(p6)
// BottomRight
LED_SLOT(dual)
LED_SLOT(quad)
LED_SLOT(single)
LED_SLOT(p1)
LED_SLOT(p2)
LED_SLOT(p3)
LED_SLOT(p4)
// CurveButtons
LED_SLOT(exit)
LED_SLOT(freeze)
LED_SLOT(pointer)
LED_SLOT(autoSet)
LED_SLOT(abc)
LED_SLOT(fourD)
LED_SLOT(clear)
LED_SLOT(threeD)
LED_SLOT(measure)
LED_SLOT(bodyMark)
//TrackballGroup
LED_SLOT(trackballLeft)
LED_SLOT(trackballRight)
LED_SLOT(trackballTop)
LED_SLOT(trackballBottom)
LED_SLOT(trackballTopLeft)
LED_SLOT(trackballTopRight)
LED_SLOT(trackballBottomLeft)
LED_SLOT(trackballBottomRight)
//Encoders
LED_SLOT(modeM)
LED_SLOT(modePd)
LED_SLOT(modeC)
LED_SLOT(modeB)
LED_SLOT(modePwCenter)
LED_SLOT(modeMCenter)
LED_SLOT(modePdCenter)
LED_SLOT(modeCCenter)
LED_SLOT(modeBCenter)
//JoystickCouple
LED_SLOT(focus)
LED_SLOT(depthCenter)
LED_SLOT(focusCenter)
LED_SLOT(depthBottom)
LED_SLOT(focusBottom)
//uncrustify on
}; };
#endif // MAINVIEWMODEL_H #endif //MAINVIEWMODEL_H

65
logic/include/viewModel/utils/Property.h

@ -1,4 +1,67 @@
#ifndef PROPERTY_H #ifndef PROPERTY_H
#define PROPERTY_H #define PROPERTY_H
#endif // PROPERTY_H #include <QObject>
#include <QDebug>
//uncrustify off
#define MVVM_PROPERTY(TYPE, NAME, DEFAULT_VALUE) \
Q_PROPERTY(TYPE NAME READ NAME WRITE NAME NOTIFY NAME ## Changed ) \
public: \
TYPE NAME() const { return _ ## NAME ; } \
void NAME(TYPE value) { \
if (_ ## NAME == value) return; \
_ ## NAME = value; \
emit NAME ## Changed(value); \
qDebug() << #NAME << value; \
} \
Q_SIGNAL void NAME ## Changed(TYPE value);\
private: \
TYPE _ ## NAME = DEFAULT_VALUE; \
/**************************************************************************************************/
#define MVVM_PROPERTY_CUSTOM(TYPE, NAME, DEFAULT_VALUE) \
Q_PROPERTY(TYPE NAME READ NAME WRITE NAME NOTIFY NAME ## Changed ) \
public: \
TYPE NAME() const { return _ ## NAME ; } \
void NAME(TYPE value) { \
if (_ ## NAME == value) return; \
_ ## NAME = value; \
emit NAME ## Changed(value); \
NAME ## Handle(); \
qDebug() << #NAME << value; \
} \
Q_SIGNAL void NAME ## Changed(TYPE value);\
private: \
TYPE _ ## NAME = DEFAULT_VALUE; \
/**************************************************************************************************/
#define BUTTON_LED_PROPERTY(NAME, CAP_NAME, DEFAULT_VALUE, LED_DEF_VAL) \
LED_PROPERTY(NAME, LED_DEF_VAL) \
BUTTON_PROPERTY(NAME, CAP_NAME, DEFAULT_VALUE)
/**************************************************************************************************/
#define BUTTON_PROPERTY(NAME, CAP_NAME, DEFAULT_VALUE) \
MVVM_PROPERTY_CUSTOM(bool, NAME, DEFAULT_VALUE) \
void NAME ## Handle() { \
if(_ ## NAME){ \
panel->press ## CAP_NAME(); \
} \
else { \
panel->release ## CAP_NAME(); \
} \
} \
/**************************************************************************************************/
#define LED_PROPERTY(NAME, LED_DEF_VAL) \
MVVM_PROPERTY(int, NAME ## Led, LED_DEF_VAL) \
/**************************************************************************************************/
#define LED_SLOT(NAME) \
void NAME ## LedHandle(char value) { \
NAME ## Led(static_cast<int>(value)); \
} \
//uncrustify on
#endif //PROPERTY_H

99
logic/src/viewModel/MainViewModel.cpp

@ -5,29 +5,90 @@
#include "model/Console.h" #include "model/Console.h"
#include "UdpDataSender.h" #include "UdpDataSender.h"
#define CONNECT_LED(NAME) \
connect(panel, SIGNAL(NAME ## LedChanged(char)), this, SLOT(NAME ## LedHandle(char)));
MainViewModel::MainViewModel(QObject* parent) : MainViewModel::MainViewModel(QObject* parent) :
ViewModel(parent), ViewModel(parent)
_text(QStringLiteral("hello world"))
{ {
} panel = new Console;
QString MainViewModel::text() const //Top Left
{ CONNECT_LED(patient)
return _text; CONNECT_LED(utils)
} CONNECT_LED(dvd)
CONNECT_LED(report)
CONNECT_LED(probe)
CONNECT_LED(archive)
CONNECT_LED(end)
void MainViewModel::showSettings() //TopRight
{ CONNECT_LED(xtd)
show<QtMvvm::SettingsViewModel>(); CONNECT_LED(bf)
} CONNECT_LED(p5)
CONNECT_LED(p6)
void MainViewModel::setText(const QString& text) //BottomRight
{ CONNECT_LED(dual)
if(_text == text) CONNECT_LED(quad)
{ CONNECT_LED(single)
return; CONNECT_LED(p1)
} CONNECT_LED(p2)
CONNECT_LED(p3)
CONNECT_LED(p4)
//CurveButtons
CONNECT_LED(exit)
CONNECT_LED(freeze)
CONNECT_LED(pointer)
CONNECT_LED(autoSet)
CONNECT_LED(abc)
CONNECT_LED(fourD)
CONNECT_LED(clear)
CONNECT_LED(threeD)
CONNECT_LED(measure)
CONNECT_LED(bodyMark)
//TrackballGroup
CONNECT_LED(trackballLeft)
CONNECT_LED(trackballRight)
CONNECT_LED(trackballTop)
CONNECT_LED(trackballBottom)
CONNECT_LED(trackballTopLeft)
CONNECT_LED(trackballTopRight)
CONNECT_LED(trackballBottomLeft)
CONNECT_LED(trackballBottomRight)
//Encoders
CONNECT_LED(modeM)
CONNECT_LED(modePd)
CONNECT_LED(modeC)
CONNECT_LED(modeB)
CONNECT_LED(modePwCenter)
CONNECT_LED(modeMCenter)
CONNECT_LED(modePdCenter)
CONNECT_LED(modeCCenter)
CONNECT_LED(modeBCenter)
//JoystickCouple
CONNECT_LED(focus)
CONNECT_LED(depthCenter)
CONNECT_LED(focusCenter)
CONNECT_LED(depthBottom)
CONNECT_LED(focusBottom)
//Turn some LEDs on
panel->depthCenterLedChanged(0);
panel->depthBottomLedChanged(1);
panel->focusLedChanged(1);
panel->focusCenterLedChanged(2);
panel->focusBottomLedChanged(3);
_text = text; panel->modePwCenterLedChanged(1);
emit textChanged(_text); panel->modePdCenterLedChanged(1);
panel->modeCCenterLedChanged(1);
panel->modeMCenterLedChanged(1);
panel->modeBCenterLedChanged(2);
} }

14
ui/App.qml

@ -1,6 +1,20 @@
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Window 2.13
import de.skycoder42.QtMvvm.Quick 1.0 import de.skycoder42.QtMvvm.Quick 1.0
import "qrc:/const/"
import "qrc:/theme/"
QtMvvmApp { QtMvvmApp {
title: qsTr("consoleEmulator") title: qsTr("consoleEmulator")
id: mvvmApp
onWidthChanged: Const.widthRatio = mvvmApp.width / Const.windowWidth
onHeightChanged: Const.heightRatio = mvvmApp.height / Const.windowHeight
Component.onCompleted: {
width = Const.windowWidth
height = Const.windowHeight
x = (Screen.width - width) / 2
y = (Screen.height - height)
}
} }

70
ui/MainView.qml

@ -1,70 +1,32 @@
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import QtQuick.Window 2.13
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import de.skycoder42.QtMvvm.Core 1.0 import de.skycoder42.QtMvvm.Core 1.0
import de.skycoder42.QtMvvm.Quick 1.0 import de.skycoder42.QtMvvm.Quick 1.0
import com.example.consoleemulator 1.0 import com.example.consoleemulator 1.0
import "qrc:/emulator/"
import "qrc:/theme/"
import "qrc:/const/"
Page { Page {
id: mainView id: mainView
property MainViewModel viewModel: null property MainViewModel viewModel: null
header: ContrastToolBar { Rectangle{
RowLayout {
anchors.fill: parent
spacing: 0
ToolBarLabel {
text: qsTr("MainViewModel")
Layout.fillWidth: true
}
MenuButton {
MenuItem {
id: settings
text: qsTr("Settings")
onClicked: viewModel.showSettings()
}
}
}
}
PresenterProgress {}
Pane {
anchors.fill: parent anchors.fill: parent
color: Theme.current.background
}
ColumnLayout { Rectangle {
anchors.fill: parent id: correctedPosition
width: Const.windowWidth
TextField { height: Const.windowHeight
id: textEdit scale: Const.ratio
Layout.fillWidth: true color: Theme.current.background
x: (mainView.width - width) / 2
MvvmBinding { y: (mainView.height - height) / 2
viewModel: mainView.viewModel
viewModelProperty: "text"
view: textEdit
viewProperty: "text"
}
}
Label {
id: textLabel
Layout.fillWidth: true
MvvmBinding {
viewModel: mainView.viewModel
viewModelProperty: "text"
view: textLabel
viewProperty: "text"
type: MvvmBinding.OneWayToView
}
}
Item { Emulator {}
Layout.fillHeight: true
}
}
} }
} }

78
ui/emulator/components/Trackball.qml

@ -7,102 +7,110 @@ import "qrc:/const"
Item { Item {
id: control id: control
property var longBut: Const.macroButton property var longBut: 70 //Const.macroButton
property var shortBut: Const.microButton property var shortBut: 32 //Const.microButton
property var margin: 10 //Const.margin
// property alias increase: incButton.down
// property alias decrease: decButton.down property alias leftDown: leftBut.down
property alias rightDown: rightBut.down
// LightRing { property alias topDown: topBut.down
// id: lightRing property alias bottomDown: bottomBut.down
// colorMode: parent.led
// anchors.verticalCenter: mainKnob.verticalCenter property alias topLeftDown: topLeftBut.down
// anchors.horizontalCenter: mainKnob.horizontalCenter property alias topRightDown: topRightBut.down
// width: Const.macroButton + 2 * thickness property alias bottomLeftDown: bottomLeftBut.down
// } property alias bottomRightDown: bottomRightBut.down
// ModeBg { property var leftColor
// additionalLength: 3 * shortBut property var rightColor
// anchors.centerIn: parent property var topColor
// } property var bottomColor
// ModeBg { property var topLeftColor
// additionalLength: - shortBut property var topRightColor
// anchors.centerIn: parent property var bottomLeftColor
// } property var bottomRightColor
width: Const.macroButton + Const.microButton + 2 * Const.margin width: longBut + shortBut + 2 * margin
height: width height: width
LightRing { LightRing {
colorMode: 0 colorMode: 0
anchors.centerIn: parent anchors.centerIn: parent
width: Const.macroButton + Const.microButton + 2 * Const.margin + 3 * shortBut width: longBut + shortBut + 2 * margin + 115
height: width height: width
thickness: 60 thickness: 70
} }
Knob { NeuLight {
id: leftBut id: leftBut
anchors.right: parent.left anchors.right: parent.left
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
implicitWidth: shortBut implicitWidth: shortBut
implicitHeight: longBut implicitHeight: longBut
colorMode: leftColor
} }
Knob { NeuLight {
id: rightBut id: rightBut
anchors.left: parent.right anchors.left: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
implicitWidth: shortBut implicitWidth: shortBut
implicitHeight: longBut implicitHeight: longBut
colorMode: rightColor
} }
Knob { NeuLight {
id: topBut id: topBut
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.top anchors.bottom: parent.top
implicitWidth: longBut implicitWidth: longBut
implicitHeight: shortBut implicitHeight: shortBut
colorMode: topColor
} }
Knob { NeuLight {
id: bottomBut id: bottomBut
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.bottom anchors.top: parent.bottom
implicitWidth: longBut implicitWidth: longBut
implicitHeight: shortBut implicitHeight: shortBut
colorMode: bottomColor
} }
Knob { NeuLight {
id: topLeftBut id: topLeftBut
anchors.verticalCenter: parent.top anchors.verticalCenter: parent.top
anchors.horizontalCenter: parent.left anchors.horizontalCenter: parent.left
implicitWidth: shortBut implicitWidth: shortBut
implicitHeight: shortBut implicitHeight: shortBut
colorMode: topLeftColor
} }
Knob { NeuLight {
id: topRightBut id: topRightBut
anchors.verticalCenter: parent.top anchors.verticalCenter: parent.top
anchors.horizontalCenter: parent.right anchors.horizontalCenter: parent.right
implicitWidth: shortBut implicitWidth: shortBut
implicitHeight: shortBut implicitHeight: shortBut
colorMode: topRightColor
} }
Knob { NeuLight {
id: bottomLeftBut id: bottomLeftBut
anchors.verticalCenter: parent.bottom anchors.verticalCenter: parent.bottom
anchors.horizontalCenter: parent.left anchors.horizontalCenter: parent.left
implicitWidth: shortBut implicitWidth: shortBut
implicitHeight: shortBut implicitHeight: shortBut
colorMode: bottomLeftColor
} }
Knob { NeuLight {
id: bottomRightBut id: bottomRightBut
anchors.verticalCenter: parent.bottom anchors.verticalCenter: parent.bottom
anchors.horizontalCenter: parent.right anchors.horizontalCenter: parent.right
implicitWidth: shortBut implicitWidth: shortBut
implicitHeight: shortBut implicitHeight: shortBut
colorMode: bottomRightColor
} }
} }

8
ui/emulator/elements/LightImageBind.qml

@ -9,5 +9,11 @@ import "qrc:/const"
import "qrc:/emulator/components" import "qrc:/emulator/components"
LightImage { LightImage {
property var name property var nameLed
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "colorMode"
viewModelProperty: nameLed
}
} }

8
ui/emulator/elements/ModeButtonBind.qml

@ -9,5 +9,11 @@ import "qrc:/const"
import "qrc:/emulator/components" import "qrc:/emulator/components"
ModeButton { ModeButton {
property var name property var nameLed
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "led"
viewModelProperty: nameLed
}
} }

15
ui/emulator/elements/ModeOptionBind.qml

@ -9,5 +9,18 @@ import "qrc:/const"
import "qrc:/emulator/components" import "qrc:/emulator/components"
ModeOption { ModeOption {
property var name property var nameLed
property var nameLedOption
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "led"
viewModelProperty: nameLed
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "ledOption"
viewModelProperty: nameLedOption
}
} }

120
ui/emulator/elements/TrackballBind.qml

@ -1,7 +1,127 @@
import QtQuick 2.0 import QtQuick 2.0
import de.skycoder42.QtMvvm.Core 1.0
import de.skycoder42.QtMvvm.Quick 1.0
import com.example.consoleemulator 1.0
import "qrc:/emulator/components" import "qrc:/emulator/components"
Trackball { Trackball {
property bool leftPressed: leftDown
property bool rightPressed: rightDown
property bool topPressed: topDown
property bool bottomPressed: bottomDown
property bool topLeftPressed: topLeftDown
property bool topRightPressed: topRightDown
property bool bottomLeftPressed: bottomLeftDown
property bool bottomRightPressed: bottomRightDown
onLeftDownChanged: leftPressed = leftDown
onRightDownChanged: rightPressed = rightDown
onTopDownChanged: topPressed = topDown
onBottomDownChanged: bottomPressed = bottomDown
onTopLeftDownChanged: topLeftPressed = topLeftDown
onTopRightDownChanged: topRightPressed = topRightDown
onBottomLeftDownChanged: bottomLeftPressed = bottomLeftDown
onBottomRightDownChanged: bottomRightPressed = bottomRightDown
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "leftPressed"
viewModelProperty: "trackballLeft"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "rightPressed"
viewModelProperty: "trackballRight"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "topPressed"
viewModelProperty: "trackballTop"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "bottomPressed"
viewModelProperty: "trackballBottom"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "topLeftPressed"
viewModelProperty: "trackballTopLeft"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "topRightPressed"
viewModelProperty: "trackballTopRight"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "bottomLeftPressed"
viewModelProperty: "trackballBottomLeft"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "bottomRightPressed"
viewModelProperty: "trackballBottomRight"
}
// Leds
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "leftColor"
viewModelProperty: "trackballLeft" + "Led"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "rightColor"
viewModelProperty: "trackballRight" + "Led"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "topColor"
viewModelProperty: "trackballTop" + "Led"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "bottomColor"
viewModelProperty: "trackballBottom" + "Led"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "topLeftColor"
viewModelProperty: "trackballTopLeft" + "Led"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "topRightColor"
viewModelProperty: "trackballTopRight" + "Led"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "bottomLeftColor"
viewModelProperty: "trackballBottomLeft" + "Led"
}
MvvmBinding {
viewModel: mainView.viewModel
viewProperty: "bottomRightColor"
viewModelProperty: "trackballBottomRight" + "Led"
}
} }

21
ui/emulator/items/Encoders.qml

@ -17,37 +17,38 @@ Item {
spacing: 40 spacing: 40
ModeOptionBind { ModeOptionBind {
y: 130 y: 130
name: "modePw" nameLed: "modePwCenterLed"
imageOption: "qrc:/icons/encoder/x.png" nameLedOption: "modeBLed" // x name
image: "qrc:/icons/encoder/modePw.png" image: "qrc:/icons/encoder/modePw.png"
imageOption: "qrc:/icons/encoder/x.png"
} }
ModeOptionBind { ModeOptionBind {
y: 41 y: 41
name: "modeM" nameLed: "modeMCenterLed"
// tinyName: "y" nameLedOption: "modeCLed" // y name
imageOption: "qrc:/icons/encoder/y.png"
image: "qrc:/icons/encoder/modeM.png" image: "qrc:/icons/encoder/modeM.png"
imageOption: "qrc:/icons/encoder/y.png"
} }
ModeOptionBind { ModeOptionBind {
name: "modePd" nameLed: "modePdCenterLed"
// tinyName: "z" nameLedOption: "modePdLed" // z name
imageOption: "qrc:/icons/encoder/z.png" imageOption: "qrc:/icons/encoder/z.png"
image: "qrc:/icons/encoder/modePd.png" image: "qrc:/icons/encoder/modePd.png"
} }
ModeOptionBind { ModeOptionBind {
y: 41 y: 41
name: "modeC" nameLed: "modeCCenterLed"
// tinyName: "quadrat" nameLedOption: "modeMLed" // quadrat name
imageOption: "qrc:/icons/encoder/quadratic.png" imageOption: "qrc:/icons/encoder/quadratic.png"
image: "qrc:/icons/encoder/modeC.png" image: "qrc:/icons/encoder/modeC.png"
} }
ModeButtonBind { ModeButtonBind {
y: 130 y: 130
name: "mode2D" nameLed: "modeBCenterLed"
image: "qrc:/icons/encoder/mode2d.png" image: "qrc:/icons/encoder/mode2d.png"
led: 2 led: 2
} }

14
ui/emulator/items/JoystickCouple.qml

@ -19,14 +19,13 @@ Item {
anchors.horizontalCenter: leftJoy.horizontalCenter anchors.horizontalCenter: leftJoy.horizontalCenter
LightImageBind { LightImageBind {
name: "zoom" nameLed: "depthCenterLed"
image: "qrc:/icons/miniButton/zoom.png" image: "qrc:/icons/miniButton/zoom.png"
} }
LightImageBind { LightImageBind {
name: "depth" nameLed: "depthBottomLed"
image: "qrc:/icons/miniButton/depth.png" image: "qrc:/icons/miniButton/depth.png"
colorMode: 2
} }
} }
@ -43,21 +42,18 @@ Item {
anchors.horizontalCenter: rightJoy.horizontalCenter anchors.horizontalCenter: rightJoy.horizontalCenter
LightImageBind { LightImageBind {
name: "angle" nameLed: "focusLed"
image: "qrc:/icons/miniButton/angle.png" image: "qrc:/icons/miniButton/angle.png"
colorMode: 1
} }
LightImageBind { LightImageBind {
name: "focusZone" nameLed: "focusCenterLed"
image: "qrc:/icons/miniButton/focusZone.png" image: "qrc:/icons/miniButton/focusZone.png"
colorMode: 2
} }
LightImageBind { LightImageBind {
name: "focusDepth" nameLed: "focusBottomLed"
image: "qrc:/icons/miniButton/focusDepth.png" image: "qrc:/icons/miniButton/focusDepth.png"
colorMode: 3
} }
} }
} }

44
ui/emulator/items/MiniButtons.qml

@ -1,44 +0,0 @@
import QtQuick 2.0
import "qrc:/console/elements"
import "qrc:/ui"
Item {
width: 290 * UI.ratio
height: 46 * UI.ratio
x: 1590 * UI.ratio
y: 510 * UI.ratio
Row {
spacing: 10 * UI.ratio
MiniButton {
name: "zoom"
image: "qrc:/ui/Images/miniButton/zoom.png"
}
MiniButton {
name: "depth"
image: "qrc:/ui/Images/miniButton/depth.png"
}
Item {
width: 10 * UI.ratio
height: 46 * UI.ratio
}
MiniButton {
name: "angle"
image: "qrc:/ui/Images/miniButton/angle.png"
}
MiniButton {
name: "focusZone"
image: "qrc:/ui/Images/miniButton/focusZone.png"
}
MiniButton {
name: "focusDepth"
image: "qrc:/ui/Images/miniButton/focusDepth.png"
}
}
}

4
ui/emulator/items/TrackballGroup.qml

@ -4,7 +4,5 @@ import "qrc:/emulator/elements"
TrackballBind { TrackballBind {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
y: 650 y: 620
} }

4
ui/theme/Palette.qml

@ -13,8 +13,8 @@ QtObject {
property color shadow: isDarkTheme ? "#C0000000" : "#95A4B9" property color shadow: isDarkTheme ? "#C0000000" : "#95A4B9"
property color lightShadow: isDarkTheme ? "#80000000" : "#80C9D1DD" property color lightShadow: isDarkTheme ? "#80000000" : "#80C9D1DD"
property color button: isDarkTheme ? "#222222" : "#C6D1E1" property color button: isDarkTheme ? "#303032" : "#C6D1E1"
property color buttonSelected: isDarkTheme ? "#202020" : "#AAB7CA" property color buttonSelected: isDarkTheme ? "#242426" : "#AAB7CA"
property color text: isDarkTheme ? "#656E85" : "#323B52" property color text: isDarkTheme ? "#656E85" : "#323B52"
property color textSelected: isDarkTheme ? "#656E85" : "#323B52" property color textSelected: isDarkTheme ? "#656E85" : "#323B52"

94
ui/ui.qrc

@ -1,8 +1,100 @@
<RCC> <RCC>
<qresource prefix="/"> <qresource prefix="/">
<file>App.qml</file> <file>App.qml</file>
<file>const/Const.qml</file>
<file>const/qmldir</file>
<file>emulator/components/HoverGlow.qml</file>
<file>emulator/components/JoystickButton.qml</file>
<file>emulator/components/Knob.qml</file>
<file>emulator/components/KnobImage.qml</file>
<file>emulator/components/KnobLight.qml</file>
<file>emulator/components/LightImage.qml</file>
<file>emulator/components/LightRing.qml</file>
<file>emulator/components/ModeBg.qml</file>
<file>emulator/components/ModeBgOption.qml</file>
<file>emulator/components/ModeButton.qml</file>
<file>emulator/components/ModeOption.qml</file>
<file>emulator/components/NeuButton.qml</file>
<file>emulator/components/NeuImage.qml</file>
<file>emulator/components/NeuLight.qml</file>
<file>emulator/components/SegmentButton.qml</file>
<file>emulator/components/SegmentCircle.qml</file>
<file>emulator/components/Trackball.qml</file>
<file>emulator/elements/JoystickButtonBind.qml</file>
<file>emulator/elements/KnobLightBind.qml</file>
<file>emulator/elements/LightImageBind.qml</file>
<file>emulator/elements/ModeButtonBind.qml</file>
<file>emulator/elements/ModeOptionBind.qml</file>
<file>emulator/elements/TrackballBind.qml</file>
<file>emulator/items/BottomRight.qml</file>
<file>emulator/items/CurveButtons.qml</file>
<file>emulator/items/Encoders.qml</file>
<file>emulator/items/JoystickCouple.qml</file>
<file>emulator/items/Joysticks.qml</file>
<file>emulator/items/TopLeft.qml</file>
<file>emulator/items/TopRight.qml</file>
<file>emulator/items/Trackball.qml</file>
<file>emulator/items/TrackballGroup.qml</file>
<file>emulator/Emulator.qml</file>
<file>icons/bottomRight/dual.png</file>
<file>icons/bottomRight/p1.png</file>
<file>icons/bottomRight/p2.png</file>
<file>icons/bottomRight/p3.png</file>
<file>icons/bottomRight/p4.png</file>
<file>icons/bottomRight/quad.png</file>
<file>icons/bottomRight/single.png</file>
<file>icons/curveButtons/3d.png</file>
<file>icons/curveButtons/4d.png</file>
<file>icons/curveButtons/abc.png</file>
<file>icons/curveButtons/auto.png</file>
<file>icons/curveButtons/bodyMark.png</file>
<file>icons/curveButtons/clear.png</file>
<file>icons/curveButtons/exit.png</file>
<file>icons/curveButtons/freeze.png</file>
<file>icons/curveButtons/meas.png</file>
<file>icons/curveButtons/pointer.png</file>
<file>icons/encoder/mode2d.png</file>
<file>icons/encoder/modeC.png</file>
<file>icons/encoder/modeM.png</file>
<file>icons/encoder/modePd.png</file>
<file>icons/encoder/modePw.png</file>
<file>icons/encoder/quadratic.png</file>
<file>icons/encoder/x.png</file>
<file>icons/encoder/y.png</file>
<file>icons/encoder/z.png</file>
<file>icons/joystick/TT.svg</file>
<file>icons/miniButton/angle.png</file>
<file>icons/miniButton/depth.png</file>
<file>icons/miniButton/focusDepth.png</file>
<file>icons/miniButton/focusZone.png</file>
<file>icons/miniButton/zoom.png</file>
<file>icons/mode/2d.png</file>
<file>icons/mode/bf.png</file>
<file>icons/mode/c.png</file>
<file>icons/mode/m.png</file>
<file>icons/mode/pd.png</file>
<file>icons/mode/pw.png</file>
<file>icons/topLeft/archive.png</file>
<file>icons/topLeft/dvd.png</file>
<file>icons/topLeft/end.png</file>
<file>icons/topLeft/patient.png</file>
<file>icons/topLeft/power.png</file>
<file>icons/topLeft/probe.png</file>
<file>icons/topLeft/report.png</file>
<file>icons/topLeft/utils.png</file>
<file>icons/topRight/bf.png</file>
<file>icons/topRight/p5.png</file>
<file>icons/topRight/p6.png</file>
<file>icons/topRight/xtd.png</file>
<file>icons/uiMode/dark.svg</file>
<file>icons/uiMode/light.svg</file>
<file>theme/Dark.qml</file>
<file>theme/Light.qml</file>
<file>theme/Palette.qml</file>
<file>theme/qmldir</file>
<file>theme/Theme.qml</file>
</qresource> </qresource>
<qresource prefix="/qtmvvm/views"> <qresource prefix="/qtmvvm/views">
<file>MainView.qml</file> <file>MainView.qml</file>
</qresource> </qresource>
</RCC> </RCC>

Loading…
Cancel
Save