diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e6e94cc..82da944 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,24 +24,24 @@ jobs: - os: ubuntu-20.04 qt_host: linux - qt_version: '6.6.0' + qt_version: '6.8.0' qt_arch: gcc_64 - os: ubuntu-20.04 qt_host: linux qt_target: android qt_arch: android_arm64_v8a - qt_version: '6.6.0' + qt_version: '6.8.0' - os: ubuntu-20.04 qt_host: linux - qt_version: '6.6.0' - qt_arch: wasm_singlethread + qt_version: '6.6.3' + qt_arch: wasm_multithread - os: windows-2022 qt_host: windows - qt_version: '6.6.0' - qt_arch: win64_msvc2019_64 + qt_version: '6.8.0' + qt_arch: win64_msvc2022_64 runs-on: ${{ matrix.os }} @@ -63,7 +63,6 @@ jobs: shell: bash run: | echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT" - echo ${{ matrix.qt_arch }} - name: Install MSVC (Windows) if: runner.os == 'Windows' @@ -72,19 +71,29 @@ jobs: - name: Install CMake uses: lukka/get-cmake@v3.28.1 - - name: Install Qt 6.6.0 + - name: Install Qt ${{ matrix.qt_version }} (Windows) + if: runner.os == 'Windows' + uses: jurplel/install-qt-action@v3.3.0 + with: + cache: on + version: ${{ matrix.qt_version }} + aqtversion: ==3.1.* + arch: ${{ matrix.qt_arch }} + + - name: Install Qt ${{ matrix.qt_version }} (Linux) + if: runner.os == 'Linux' uses: jurplel/install-qt-action@v3.3.0 with: cache: on - version: 6.6.0 + version: ${{ matrix.qt_version }} aqtversion: ==3.1.* - name: Install Qt (WASM) - if: matrix.qt_arch == 'wasm_singlethread' + if: matrix.qt_arch == 'wasm_multithread' uses: jurplel/install-qt-action@v3.3.0 with: cache: on - version: 6.6.0 + version: ${{ matrix.qt_version }} aqtversion: ==3.1.* arch: ${{ matrix.qt_arch }} @@ -93,7 +102,7 @@ jobs: uses: jurplel/install-qt-action@v3.3.0 with: cache: on - version: 6.6.0 + version: ${{ matrix.qt_version }} aqtversion: ==3.1.* target: ${{ matrix.qt_target }} arch: ${{ matrix.qt_arch }} @@ -107,7 +116,7 @@ jobs: wget "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" - name: Prepare Emscripten (Linux) - if: runner.os == 'Linux' && matrix.qt_arch == 'wasm_singlethread' + if: runner.os == 'Linux' && matrix.qt_arch == 'wasm_multithread' uses: mymindstorm/setup-emsdk@v13 with: # Version to install @@ -171,7 +180,7 @@ jobs: mkdir -p ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines - cp -r /home/runner/work/QFRCScouter/Qt/${{ matrix.qt_version }}/gcc_64/plugins/iconengines/* ${{ env.INSTALL_APPIMAGE_DIR }}/usr/plugins/iconengines + cp -r ${{ runner.workspace }}/Qt/${{ matrix.qt_version }}/${{ matrix.qt_arch }}/plugins/ ${{ env.INSTALL_APPIMAGE_DIR }}/usr/ cp /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/ cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 ${{ env.INSTALL_APPIMAGE_DIR }}/usr/lib/ @@ -183,7 +192,7 @@ jobs: shell: cmd run: | mkdir ${{ env.INSTALL_DIR }} - set PATH=%PATH%;"${{ runner.workspace }}\Qt\6.6.0\msvc2019_64\bin" + set PATH=%PATH%;"${{ runner.workspace }}\Qt\${{ matrix.qt_version }}\${{ matrix.qt_arch }}\bin" windeployqt ${{ env.BUILD_DIR }}\QFRCScouter.exe --dir ${{ env.INSTALL_DIR }} cp ${{ env.BUILD_DIR }}\QFRCScouter.exe ${{ env.INSTALL_DIR }} @@ -200,21 +209,21 @@ jobs: ## - name: Wasm funniness - if: matrix.qt_arch == 'wasm_singlethread' + if: matrix.qt_arch == 'wasm_multithread' shell: bash run: | cd ${{ env.BUILD_DIR }} cp QFRCScouter.html index.html - name: Upload Pages WASM - if: matrix.qt_arch == 'wasm_singlethread' + if: matrix.qt_arch == 'wasm_multithread' uses: actions/upload-pages-artifact@v3.0.0 with: path: ${{ env.BUILD_DIR }} retention-days: 14 - name: Deploy Pages WASM - if: matrix.qt_arch == 'wasm_singlethread' + if: matrix.qt_arch == 'wasm_multithread' uses: actions/deploy-pages@v4.0.2 - name: Upload Release APK (Linux) diff --git a/CMakeLists.txt b/CMakeLists.txt index f806855..bb8e2ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,22 +34,22 @@ set(PROJECT_SOURCES src/WelcomePage.cpp src/TeamInfo.cpp - src/AutoScouting.cpp + src/MatchPage.cpp # ================== # include/MainWindow.h include/WelcomePage.h include/TeamInfo.h - include/AutoScouting.h + include/MatchPage.h # ================== # ui/MainWindow.ui ui/WelcomePage.ui - ui/AutoScouting.ui + ui/MatchPage.ui + - include/TeleScouting.h src/TeleScouting.cpp ui/TeleScouting.ui include/QRCode.h src/QRCode.cpp ui/QRCode.ui include/BetterSpinBox.h src/BetterSpinBox.cpp ui/BetterSpinBox.ui include/Notes.h src/Notes.cpp ui/Notes.ui @@ -146,6 +146,17 @@ if (ANDROID) set_target_properties(QFRCScouter PROPERTIES QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/android COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS} MOBILE") + + include(FetchContent) + FetchContent_Declare( + android_openssl + DOWNLOAD_EXTRACT_TIMESTAMP true + URL https://github.com/KDAB/android_openssl/archive/refs/heads/master.zip + ) + FetchContent_MakeAvailable(android_openssl) + include(${android_openssl_SOURCE_DIR}/android_openssl.cmake) + + add_android_openssl_libraries(QFRCScouter) endif() if(QT_VERSION_MAJOR EQUAL 6) diff --git a/README.md b/README.md index 41ea282..c489a85 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,89 @@ # QFRCScouter -Colloquially "Nickbotics.io" +A powerful, cross-platform, QR-based, configurable scouting app for FRC, designed to be simple-to-use for scouters and modular for developers and hosters. -A powerful scouting app for use in the 2024 FRC game, Crescendo, featuring: +## Usage -- High-performance -- Low-footprint -- Cross-platform -- TSV QR Code -- insert directly into a spreadsheet -- Simple, easy-to-use UI +### Team Info +Usage of QFRCScouter begins on the "Team Info" page. There, the scouter must enter their initials. If not on the web app, the user needs to have the schedule downloaded; see "Schedule" below. + +The match number is next, which can be incremented and decremented with the plus and minus buttons. + +Finally, if the schedule is set up properly, the scouter can set the alliance station they plan to scout. The scouting app will automatically set the team number for each match. The selected station & team number will always be displayed at the bottom. + +![TeamInfo](/img/TeamInfo.png?raw=true) + +### Auto Data +Scouting for autonomous data begins. Press the plus and minus buttons on each of the relevant fields as needed, and select the checkboxes at the end of the autonomous period as needed. + +![Auto](/img/Auto.png?raw=true) + +### Teleop Data +Scouting for teleop & endgame data begins. Operation here is identical to Auto scouting. + +![Tele](/img/Tele.png?raw=true) + +### Notes +Enter any quick thoughts on the team you're scouting. You will be asked to quantify some things later, so don't go into too much detail. + +![Notes](/img/Notes.png?raw=true) + +### Opinions +Select your opinions on various factors here, ranging from very bad to elite. If the team didn't contribute in that factor, select N/A. + +![Scales](/img/Scales.png?raw=true) + +### QR Code +You're done! Present your QR code to the scanner to be put into the spreadsheet. Once done, select "next match". This will bring you to the beginning, and increment the match number, selecting the correct team for your alliance station. + +If the scan failed and you already selected "next match", OR if you wish to change some data, press "Back to QR Code" on the first page. + +![QRCode](/img/QRCode.png?raw=true) + +## Self-Hosting + +### Schedule +The match schedule can be downloaded at any time and kept offline for native platforms, by entering the relevant event code into the "Event Code" box on the "Team Info" page and pressing Download. Once downloaded once, it doesn't need to be downloaded again on future runs unless it's a different event. + +For the web app, the included match schedule is used. This schedule can be updated with the `getSchedule.sh` script. Syntax: + +``` +./getSchedule.sh +``` + +Then push these changes to your fork and your GitHub pages will have the match schedule built-in. + +Once the schedule is all set, scouters can select an alliance station to use. The scouter will automatically select the proper team number for each match depending on your selected station. + +### Multi-platform +QFRCScouter has several platforms it can run on: +- Windows +- Linux +- Android +- Web + +The web app is available directly through this repo's GitHub pages. If you wish to provide your own config, you can fork this repository, update the config.json (according to the Configuration section below), and GitHub actions will take care of the rest--ensure to enable Pages in the repository settings. + +Furthermore, the web app can be downloaded and run locally; go the the [latest actions run](https://github.com/Q-FRC/Scouter/actions), download the `github-pages` artifact, and open `index.html` in your browser. This is completely offline! + +Linux, Android, and Windows users are encouraged to use the native options, however. + +### Configuration +QFRCScouter is configurable through a simple JSON file. The format is described below. + +- `welcome` (str): The welcome notice that shows up on the first page of the app. +- `button` (color): The accent color of most of the buttons present in the app. +- `buttonText` (color): The text color of most of the buttons present in the app. +- `backgroundColor` (color): The color of the background of the application. +- `textColor` (color): The color of most of the text of the application. +- `pages` (obj): Describes the data present in the auto, teleop, and scale pages. + * `auto` (arr) & `tele` (arr): Contains data present in the auto and teleop data pages. + - `type` (str): either `"bool"` or `"int"` for a checkbox or spinbox respectively. Note that spinboxes are always put before any checkboxes. + - `text` (str): The text shown next to the spinbox or checkbox. + - `int` fields have additional configuration options: + * `color`: The accent color of the button, useful for quick differentiation for scouters. + * `textColor`: The color of the text of the button. + * `min`: The minimum value. + * `max`: The maximum value. + * `scales` (arr): Contains data present in the auto and teleop data pages. + - `title` (str): The large text shown next to the scales. + - `desc` (str): Fine print shown below the scales, for additional details. diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 871ce1d..779ce3b 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -30,10 +30,16 @@ + + + + + + diff --git a/config.json b/config.json index f6cf658..2cf1468 100644 --- a/config.json +++ b/config.json @@ -1,135 +1,134 @@ { + "welcome": "Colloquially \"Nickbotics.io\"\nWelcome to QFRCScouter! Hit the \"next\" button to begin scouting.", + "button": "#ff4444", + "buttonText": "#000000", + "backgroundColor": "#000000", + "textColor": "#dedede", "pages": { - "auto": { - "values": [ - { - "type": "int", - "color": "#FF0000", - "min": 0, - "max": 99, - "text": "Wing Pieces Acquired" - }, - { - "type": "int", - "color": "#00FF00", - "textColor": "#000000", - "min": 0, - "max": 99, - "text": "Neutral Pieces Acquired" - }, - { - "type": "int", - "color": "#FF5500", - "min": 0, - "max": 99, - "text": "Amp Pieces Scored" - }, - { - "type": "int", - "color": "#CCCC00", - "textColor": "#000000", - "min": 0, - "max": 99, - "text": "Speaker Pieces Scored" - }, - { - "type": "bool", - "text": "Mobility?" - }, - { - "type": "bool", - "text": "A-Stopped?" - }, - { - "type": "bool", - "text": "Went for Neutral Zone?" - } - ] - }, - "tele": { - "values": [ - { - "type": "int", - "color": "#FF0000", - "min": 0, - "max": 99, - "text": "Short Acquire" - }, - { - "type": "int", - "color": "#00FF00", - "textColor": "#000000", - "min": 0, - "max": 99, - "text": "Long Acquire" - }, - { - "type": "int", - "color": "#FF5500", - "min": 0, - "max": 99, - "text": "Shuttled Notes" - }, - { - "type": "int", - "color": "#CCCC00", - "textColor": "#000000", - "min": 0, - "max": 99, - "text": "Amp Scored" - }, - { - "type": "int", - "color": "#fd6bfd", - "textColor": "#000000", - "min": 0, - "max": 99, - "text": "Speaker Scored" - }, - { - "type": "int", - "color": "#0055FF", - "min": 0, - "max": 99, - "text": "Missed" - }, - { - "type": "bool", - "text": "Trap?" - }, - { - "type": "bool", - "text": "Climb?" - }, - { - "type": "bool", - "text": "Played Defense?" - }, - { - "type": "bool", - "text": "Was Defended?" - } - ] - }, - "scales": { - "values": [ - { - "title": "Driver", - "desc": "How did the driver do? Did they hit field elements/robots? Did they drive spastically, or smooth? Were they quick to pick up, score, operate?" - }, - { - "title": "Defense Skill", - "desc": "If they played defense, how'd they do? Did they shut down other robots?" - }, - { - "title": "Speed", - "desc": "Generally, how fast were they? Consider scoring, driving, and pickup." - }, - { - "title": "Shuttling", - "desc": "If they shuttled, how good was it? Did notes get stolen? Did the notes get put in the corner (good), source (bad), or off the field (really bad)?" - } - ] - } + "auto": [ + { + "type": "int", + "color": "#FF0000", + "min": 0, + "max": 99, + "text": "Wing Pieces Acquired" + }, + { + "type": "int", + "color": "#00FF00", + "textColor": "#000000", + "min": 0, + "max": 99, + "text": "Neutral Pieces Acquired" + }, + { + "type": "int", + "color": "#FF5500", + "min": 0, + "max": 99, + "text": "Amp Pieces Scored" + }, + { + "type": "int", + "color": "#CCCC00", + "textColor": "#000000", + "min": 0, + "max": 99, + "text": "Speaker Pieces Scored" + }, + { + "type": "bool", + "text": "Mobility?" + }, + { + "type": "bool", + "text": "A-Stopped?" + }, + { + "type": "bool", + "text": "Went for Neutral Zone?" + } + ], + "tele": [ + { + "type": "int", + "color": "#FF0000", + "min": 0, + "max": 99, + "text": "Short Acquire" + }, + { + "type": "int", + "color": "#00FF00", + "textColor": "#000000", + "min": 0, + "max": 99, + "text": "Long Acquire" + }, + { + "type": "int", + "color": "#FF5500", + "min": 0, + "max": 99, + "text": "Shuttled Notes" + }, + { + "type": "int", + "color": "#CCCC00", + "textColor": "#000000", + "min": 0, + "max": 99, + "text": "Amp Scored" + }, + { + "type": "int", + "color": "#fd6bfd", + "textColor": "#000000", + "min": 0, + "max": 99, + "text": "Speaker Scored" + }, + { + "type": "int", + "color": "#0055FF", + "min": 0, + "max": 99, + "text": "Missed" + }, + { + "type": "bool", + "text": "Trap?" + }, + { + "type": "bool", + "text": "Climb?" + }, + { + "type": "bool", + "text": "Played Defense?" + }, + { + "type": "bool", + "text": "Was Defended?" + } + ], + "scales": [ + { + "title": "Driver", + "desc": "How did the driver do? Did they hit field elements/robots? Did they drive spastically, or smooth? Were they quick to pick up, score, operate?" + }, + { + "title": "Defense Skill", + "desc": "If they played defense, how'd they do? Did they shut down other robots?" + }, + { + "title": "Speed", + "desc": "Generally, how fast were they? Consider scoring, driving, and pickup." + }, + { + "title": "Shuttling", + "desc": "If they shuttled, how good was it? Did notes get stolen? Did the notes get put in the corner (good), source (bad), or off the field (really bad)?" + } + ] } } diff --git a/img/Auto.png b/img/Auto.png new file mode 100644 index 0000000..195cd98 Binary files /dev/null and b/img/Auto.png differ diff --git a/img/Notes.png b/img/Notes.png new file mode 100644 index 0000000..b70748d Binary files /dev/null and b/img/Notes.png differ diff --git a/img/QRCode.png b/img/QRCode.png new file mode 100644 index 0000000..c4ffb15 Binary files /dev/null and b/img/QRCode.png differ diff --git a/img/Scales.png b/img/Scales.png new file mode 100644 index 0000000..7abb39c Binary files /dev/null and b/img/Scales.png differ diff --git a/img/TeamInfo.png b/img/TeamInfo.png new file mode 100644 index 0000000..973a81f Binary files /dev/null and b/img/TeamInfo.png differ diff --git a/img/Tele.png b/img/Tele.png new file mode 100644 index 0000000..a563ba7 Binary files /dev/null and b/img/Tele.png differ diff --git a/include/AutoScouting.h b/include/AutoScouting.h deleted file mode 100644 index ab73f6d..0000000 --- a/include/AutoScouting.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef AUTOSCOUTING_H -#define AUTOSCOUTING_H - -#include "BetterSpinBox.h" -#include -#include - -namespace Ui { -class AutoScouting; -} - -class AutoScouting : public QWidget -{ - Q_OBJECT - -public: - explicit AutoScouting(QWidget *parent = nullptr); - ~AutoScouting(); - - void clear(); - QStringList tsv(); - -private: - Ui::AutoScouting *ui; - - QList m_spinBoxes; - QList m_checkBoxes; -}; - -#endif // AUTOSCOUTING_H diff --git a/include/MatchPage.h b/include/MatchPage.h new file mode 100644 index 0000000..18446d6 --- /dev/null +++ b/include/MatchPage.h @@ -0,0 +1,32 @@ +#ifndef MATCHPAGE_H +#define MATCHPAGE_H + +#include "BetterSpinBox.h" +#include +#include + +namespace Ui { +class MatchPage; +} + +class MatchPage : public QWidget +{ + Q_OBJECT + +public: + explicit MatchPage(QWidget *parent = nullptr); + ~MatchPage(); + + void config(bool tele, const QJsonObject &obj); + + void clear(); + QStringList tsv(); + +private: + Ui::MatchPage *ui; + + QList m_spinBoxes; + QList m_checkBoxes; +}; + +#endif // MATCHPAGE_H diff --git a/include/QRCode.h b/include/QRCode.h index 9caf3d7..ec04f08 100644 --- a/include/QRCode.h +++ b/include/QRCode.h @@ -15,6 +15,8 @@ class QRCode : public QWidget explicit QRCode(QWidget *parent = nullptr); ~QRCode(); + void config(const QJsonObject &obj); + void setQRData(QString data); private: diff --git a/include/SubjectiveScales.h b/include/SubjectiveScales.h index 33b60c1..8166e43 100644 --- a/include/SubjectiveScales.h +++ b/include/SubjectiveScales.h @@ -15,6 +15,7 @@ class SubjectiveScales : public QWidget public: explicit SubjectiveScales(QWidget *parent = nullptr); ~SubjectiveScales(); + void config(const QJsonObject &obj); void clear(); QStringList tsv(); diff --git a/include/TeamInfo.h b/include/TeamInfo.h index 7f2eda4..64279a9 100644 --- a/include/TeamInfo.h +++ b/include/TeamInfo.h @@ -23,6 +23,8 @@ class TeamInfo : public QWidget explicit TeamInfo(QWidget *parent = nullptr); ~TeamInfo(); + void config(const QJsonObject &obj); + int teamNumber(); int matchNumber(); @@ -43,6 +45,7 @@ public slots: signals: #endif void teamNumberChanged(int team); + void stationChanged(AllianceStation station); private: Ui::TeamInfo *ui; diff --git a/include/TeleScouting.h b/include/TeleScouting.h deleted file mode 100644 index c46832d..0000000 --- a/include/TeleScouting.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef TELESCOUTING_H -#define TELESCOUTING_H - -#include "BetterSpinBox.h" -#include -#include - -namespace Ui { -class TeleScouting; -} - -class TeleScouting : public QWidget -{ - Q_OBJECT - -public: - explicit TeleScouting(QWidget *parent = nullptr); - ~TeleScouting(); - - void clear(); - QStringList tsv(); - -private: - Ui::TeleScouting *ui; - - QList m_spinBoxes; - QList m_checkBoxes; -}; - -#endif // TELESCOUTING_H diff --git a/include/WelcomePage.h b/include/WelcomePage.h index dda8456..5184600 100644 --- a/include/WelcomePage.h +++ b/include/WelcomePage.h @@ -14,6 +14,7 @@ class WelcomePage : public QWidget public: explicit WelcomePage(QWidget *parent = nullptr); ~WelcomePage(); + void config(const QJsonObject &obj); void showButton(bool show = true); diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index c30fcfe..d787b2f 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -2,6 +2,10 @@ #include +#include +#include +#include + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) @@ -17,10 +21,78 @@ MainWindow::MainWindow(QWidget *parent) ui->qrcode }; + QFile file(":/config"); + + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + qCritical() << "sad"; + } + + QByteArray data = file.readAll(); + + QJsonDocument doc = QJsonDocument::fromJson(data); + + QJsonObject obj = doc.object(); + + ui->welcome->config(obj); + ui->teamInfo->config(obj); + ui->autoScouting->config(false, obj); + ui->teleScouting->config(true, obj); + ui->scales->config(obj); + ui->qrcode->config(obj); + + QPalette main = this->palette(); + main.setColor(QPalette::Window, obj.value("backgroundColor").toString("#000000")); + main.setColor(QPalette::Base, obj.value("backgroundColor").toString("#000000")); + main.setColor(QPalette::Text, obj.value("textColor").toString("#000000")); + main.setColor(QPalette::WindowText, obj.value("textColor").toString("#000000")); + main.setColor(QPalette::Button, obj.value("button").toString("#ff00ff")); + main.setColor(QPalette::ButtonText, obj.value("buttonText").toString("#000000")); + + this->setPalette(main); + connect(ui->qrcode, &QRCode::backButtonPressed, this, &MainWindow::backToStart); connect(ui->teamInfo, &TeamInfo::teamNumberChanged, this, [this](int team) { ui->team->setText("Your Team: " + QString::number(team)); }); + + connect(ui->teamInfo, &TeamInfo::stationChanged, this, [this](AllianceStation station) { + QString text = ""; + QString color = "#ff0000"; + switch (station) { + case AllianceStation::Red1: + text = "Red 1"; + break; + case AllianceStation::Red2: + text = "Red 2"; + break; + case AllianceStation::Red3: + text = "Red 3"; + break; + case AllianceStation::Blue1: + text = "Blue 1"; + color = "#0000ff"; + break; + case AllianceStation::Blue2: + text = "Blue 2"; + color = "#0000ff"; + break; + case AllianceStation::Blue3: + text = "Blue 3"; + color = "#0000ff"; + break; + case AllianceStation::Invalid: + text = ""; + break; + } + + ui->station->setText(text); + + QPalette p = ui->station->palette(); + p.setColor(QPalette::WindowText, color); + + ui->station->setPalette(p); + }); + connect(ui->welcome, &WelcomePage::backToQRCode, this, &MainWindow::backToQRCode); ui->welcome->showButton(false); diff --git a/src/AutoScouting.cpp b/src/MatchPage.cpp similarity index 55% rename from src/AutoScouting.cpp rename to src/MatchPage.cpp index b72da51..a662cbe 100644 --- a/src/AutoScouting.cpp +++ b/src/MatchPage.cpp @@ -1,55 +1,55 @@ -#include "AutoScouting.h" -#include "ui_AutoScouting.h" +#include "MatchPage.h" +#include "ui_MatchPage.h" + #include -#include #include -#include -AutoScouting::AutoScouting(QWidget *parent) +MatchPage::MatchPage(QWidget *parent) : QWidget(parent) - , ui(new Ui::AutoScouting) + , ui(new Ui::MatchPage) { ui->setupUi(this); +} -// #ifdef Q_OS_WASM - QFile file(":/config"); -// #else -// QFile file(QDir::homePath() + "/schedule.json"); -// #endif - - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - qCritical() << "auto scouting sad"; - } - - QByteArray data = file.readAll(); +MatchPage::~MatchPage() +{ + delete ui; +} - QJsonDocument doc = QJsonDocument::fromJson(data); +void MatchPage::config(bool tele, const QJsonObject &obj) +{ + if (tele) ui->title->setText("Teleop Data"); - QJsonObject obj = doc.object(); QJsonObject pages = obj.value("pages").toObject(); - QJsonObject autoPage = pages.value("auto").toObject(); + QJsonArray page = pages.value(tele ? "tele" : "auto").toArray(); - QJsonArray values = autoPage.value("values").toArray(); + for (const QJsonValueRef ref : page) { + QJsonObject val = ref.toObject(); - for (const QJsonValueRef ref : values) { - QJsonObject obj = ref.toObject(); - - QString type = obj.value("type").toString("int"); + QString type = val.value("type").toString("int"); if (type == "int") { BetterSpinBox *box = new BetterSpinBox(this); - box->setColor(obj.value("color").toString("#000000")); - box->setTextColor(obj.value("textColor").toString("#FFFFFF")); + box->setColor(val.value("color").toString("#000000")); + box->setTextColor(val.value("textColor").toString("#FFFFFF")); + + box->setMinimum(val.value("min").toInt(0)); + box->setMaximum(val.value("max").toInt(99999)); - box->setMinimum(obj.value("min").toInt(0)); - box->setMaximum(obj.value("max").toInt(99999)); + box->setText(val.value("text").toString("")); - box->setText(obj.value("text").toString("")); + QPalette p = box->palette(); + p.setColor(QPalette::Window, val.value("color").toString("#000000")); + box->setPalette(p); m_spinBoxes.append(box); } else if (type == "bool") { QCheckBox *box = new QCheckBox(this); - box->setText(obj.value("text").toString("")); + box->setText(val.value("text").toString("")); + + QPalette p = box->palette(); + p.setColor(QPalette::WindowText, obj.value("textColor").toString("#000000")); + box->setPalette(p); m_checkBoxes.append(box); } @@ -71,12 +71,7 @@ AutoScouting::AutoScouting(QWidget *parent) ui->gridLayout->setColumnStretch(1, 1); } -AutoScouting::~AutoScouting() -{ - delete ui; -} - -void AutoScouting::clear() { +void MatchPage::clear() { for (BetterSpinBox *box : m_spinBoxes) { box->setValue(0); } @@ -86,7 +81,7 @@ void AutoScouting::clear() { } } -QStringList AutoScouting::tsv() +QStringList MatchPage::tsv() { QStringList tsv; diff --git a/src/QRCode.cpp b/src/QRCode.cpp index ddfcc7d..a95e2c3 100644 --- a/src/QRCode.cpp +++ b/src/QRCode.cpp @@ -2,6 +2,7 @@ #include "ui_QRCode.h" #include "QrCodeGenerator.h" +#include QRCode::QRCode(QWidget *parent) : QWidget(parent) @@ -16,6 +17,11 @@ QRCode::~QRCode() delete ui; } +void QRCode::config(const QJsonObject &obj) +{ + +} + void QRCode::setQRData(QString data) { QrCodeGenerator gen; QImage image = gen.generateQr(data); diff --git a/src/SubjectiveScales.cpp b/src/SubjectiveScales.cpp index 26d88a4..1361266 100644 --- a/src/SubjectiveScales.cpp +++ b/src/SubjectiveScales.cpp @@ -2,46 +2,35 @@ #include "ui_SubjectiveScales.h" #include -#include #include -#include SubjectiveScales::SubjectiveScales(QWidget *parent) : QWidget(parent) , ui(new Ui::SubjectiveScales) { ui->setupUi(this); +} - // #ifdef Q_OS_WASM - QFile file(":/config"); - // #else - // QFile file(QDir::homePath() + "/schedule.json"); - // #endif - - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - qCritical() << "sad"; - } - - QByteArray data = file.readAll(); - - QJsonDocument doc = QJsonDocument::fromJson(data); +SubjectiveScales::~SubjectiveScales() +{ + delete ui; +} - QJsonObject obj = doc.object(); +void SubjectiveScales::config(const QJsonObject &obj) +{ QJsonObject pages = obj.value("pages").toObject(); - QJsonObject scalesPage = pages.value("scales").toObject(); - - QJsonArray values = scalesPage.value("values").toArray(); + QJsonArray page = pages.value("scales").toArray(); - for (const QJsonValueRef ref : values) { - QJsonObject obj = ref.toObject(); + for (const QJsonValueRef ref : page) { + QJsonObject val = ref.toObject(); - QLabel *title = new QLabel(obj.value("title").toString(""), this); + QLabel *title = new QLabel(val.value("title").toString(""), this); QFont tf = title->font(); tf.setPointSize(17); title->setFont(tf); - QLabel *desc = new QLabel(obj.value("desc").toString(""), this); + QLabel *desc = new QLabel(val.value("desc").toString(""), this); QFont df = desc->font(); df.setPointSize(11); @@ -49,6 +38,10 @@ SubjectiveScales::SubjectiveScales(QWidget *parent) Scale *scale = new Scale(this); + // QPalette p = scale->palette(); + // p.setColor(QPalette::WindowText, obj.value("textColor").toString("#ffffff")); + // scale->setPalette(p); + m_scales.append(scale); ui->formLayout->addRow(title, scale); @@ -56,11 +49,6 @@ SubjectiveScales::SubjectiveScales(QWidget *parent) } } -SubjectiveScales::~SubjectiveScales() -{ - delete ui; -} - void SubjectiveScales::clear() { for (Scale *scale : m_scales) { scale->setValue(0); diff --git a/src/TeamInfo.cpp b/src/TeamInfo.cpp index e124d23..16d9f09 100644 --- a/src/TeamInfo.cpp +++ b/src/TeamInfo.cpp @@ -72,6 +72,22 @@ TeamInfo::~TeamInfo() delete ui; } +void TeamInfo::config(const QJsonObject &obj) +{ + QPalette boxPalette = ui->initials->palette(); + boxPalette.setColor(QPalette::Window, obj.value("button").toString("#ff00ff")); + boxPalette.setColor(QPalette::ButtonText, obj.value("buttonText").toString("#000000")); + boxPalette.setColor(QPalette::Button, obj.value("button").toString("#ff00ff")); + + ui->initials->setPalette(boxPalette); + ui->matchNumber->setPalette(boxPalette); + ui->teamNumber->setPalette(boxPalette); +#ifndef Q_OS_WASM + ui->event->setPalette(boxPalette); + ui->pushButton->setPalette(boxPalette); +#endif +} + int TeamInfo::teamNumber() { return ui->teamNumber->value(); } @@ -99,6 +115,8 @@ void TeamInfo::setTeam() { if (iter.value()->isChecked()) station = iter.key(); } + emit stationChanged(station); + std::optional match; match = m_matchData.schedule().getMatch(matchNumber, level); diff --git a/src/TeleScouting.cpp b/src/TeleScouting.cpp deleted file mode 100644 index 040c023..0000000 --- a/src/TeleScouting.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#include "TeleScouting.h" -#include "ui_TeleScouting.h" - -#include -#include -#include -#include - -TeleScouting::TeleScouting(QWidget *parent) - : QWidget(parent) - , ui(new Ui::TeleScouting) -{ - ui->setupUi(this); - - // #ifdef Q_OS_WASM - QFile file(":/config"); - // #else - // QFile file(QDir::homePath() + "/schedule.json"); - // #endif - - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - qCritical() << "auto scouting sad"; - } - - QByteArray data = file.readAll(); - - QJsonDocument doc = QJsonDocument::fromJson(data); - - QJsonObject obj = doc.object(); - QJsonObject pages = obj.value("pages").toObject(); - QJsonObject telePage = pages.value("tele").toObject(); - - QJsonArray values = telePage.value("values").toArray(); - - for (const QJsonValueRef ref : values) { - QJsonObject obj = ref.toObject(); - - QString type = obj.value("type").toString("int"); - - if (type == "int") { - BetterSpinBox *box = new BetterSpinBox(this); - box->setColor(obj.value("color").toString("#000000")); - box->setTextColor(obj.value("textColor").toString("#FFFFFF")); - - box->setMinimum(obj.value("min").toInt(0)); - box->setMaximum(obj.value("max").toInt(99999)); - - box->setText(obj.value("text").toString("")); - - m_spinBoxes.append(box); - } else if (type == "bool") { - QCheckBox *box = new QCheckBox(this); - box->setText(obj.value("text").toString("")); - - m_checkBoxes.append(box); - } - } - - for (size_t i = 0; i < m_spinBoxes.length(); ++i) { - BetterSpinBox *box = m_spinBoxes.at(i); - QLabel *label = new QLabel(box->text(), this); - ui->gridLayout->addWidget(label, i + 1, 0, Qt::AlignTop); - ui->gridLayout->addWidget(box, i + 1, 1, Qt::AlignTop); - } - - for (size_t i = 0; i < m_checkBoxes.length(); ++i) { - QCheckBox *box = m_checkBoxes.at(i); - box->setStyleSheet("QCheckBox::indicator:unchecked { width: 30px; height: 30px; } QCheckBox::indicator:checked { width: 30px; height: 30px; }"); - ui->gridLayout->addWidget(box, i / 2 + m_spinBoxes.length() + 1, i % 2); - } - - ui->gridLayout->setColumnStretch(1, 1); -} - -TeleScouting::~TeleScouting() -{ - delete ui; -} - -void TeleScouting::clear() { - for (BetterSpinBox *box : m_spinBoxes) { - box->setValue(0); - } - - for (QCheckBox *box : m_checkBoxes) { - box->setChecked(false); - } -} - -QStringList TeleScouting::tsv() -{ - QStringList tsv; - - for (BetterSpinBox *box : m_spinBoxes) { - tsv << QString::number(box->value()); - } - - for (QCheckBox *box : m_checkBoxes) { - tsv << QString::number(box->isChecked()); - } - - return tsv; -} diff --git a/src/WelcomePage.cpp b/src/WelcomePage.cpp index 32069ca..7fb95b2 100644 --- a/src/WelcomePage.cpp +++ b/src/WelcomePage.cpp @@ -1,6 +1,10 @@ #include "WelcomePage.h" #include "ui_WelcomePage.h" +#include +#include +#include + WelcomePage::WelcomePage(QWidget *parent) : QWidget(parent) , ui(new Ui::WelcomePage) @@ -15,6 +19,11 @@ WelcomePage::~WelcomePage() delete ui; } +void WelcomePage::config(const QJsonObject &obj) +{ + ui->label->setText(obj.value("welcome").toString()); +} + void WelcomePage::showButton(bool show) { ui->qrcode->setVisible(show); diff --git a/ui/AutoScouting.ui b/ui/AutoScouting.ui deleted file mode 100644 index 91277e1..0000000 --- a/ui/AutoScouting.ui +++ /dev/null @@ -1,348 +0,0 @@ - - - AutoScouting - - - - 0 - 0 - 833 - 428 - - - - - Noto Sans - 20 - - - - Form - - - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - Noto Sans - 32 - true - - - - Auto Data - - - true - - - Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop - - - true - - - - - - - - diff --git a/ui/BetterSpinBox.ui b/ui/BetterSpinBox.ui index e8e80f4..d8d7ecb 100644 --- a/ui/BetterSpinBox.ui +++ b/ui/BetterSpinBox.ui @@ -41,115 +41,6 @@ 0 - - - - - - - 159 - 159 - 159 - - - - - - - 159 - 159 - 159 - - - - - - - 0 - 0 - 0 - - - - - - - - - 159 - 159 - 159 - - - - - - - 159 - 159 - 159 - - - - - - - 0 - 0 - 0 - - - - - - - - - 159 - 159 - 159 - - - - - - - 159 - 159 - 159 - - - - - - - 159 - 159 - 159 - - - - - - - 159 - 159 - 159 - - - - - - - 0 - 0 - 0 - - - - - - diff --git a/ui/MainWindow.ui b/ui/MainWindow.ui index 42e0814..38ac840 100644 --- a/ui/MainWindow.ui +++ b/ui/MainWindow.ui @@ -10,323 +10,12 @@ 500 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - QFRCScouter - - - - 1 - 2 - - - - Next - - - - @@ -344,7 +33,7 @@ Your Team: - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter false @@ -359,12 +48,41 @@ 2 + + + 18 + + Back - + + + + + 1 + 2 + + + + + 0 + 75 + + + + + 18 + + + + Next + + + + @@ -377,8 +95,27 @@ - - + + + + + + + + + 0 + 0 + + + + + 14 + true + + + + Red 1 + @@ -397,18 +134,6 @@
TeamInfo.h
1 - - AutoScouting - QWidget -
AutoScouting.h
- 1 -
- - TeleScouting - QWidget -
TeleScouting.h
- 1 -
QRCode QWidget @@ -430,6 +155,12 @@
SubjectiveScales.h
1
+ + MatchPage + QWidget +
MatchPage.h
+ 1 +
diff --git a/ui/MatchPage.ui b/ui/MatchPage.ui new file mode 100644 index 0000000..ffe3e39 --- /dev/null +++ b/ui/MatchPage.ui @@ -0,0 +1,50 @@ + + + MatchPage + + + + 0 + 0 + 833 + 428 + + + + + Noto Sans + 20 + + + + Form + + + + + + + Noto Sans + 32 + true + + + + Auto Data + + + true + + + Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop + + + true + + + + + + + + diff --git a/ui/Notes.ui b/ui/Notes.ui index cf5a1ab..b3b17cf 100644 --- a/ui/Notes.ui +++ b/ui/Notes.ui @@ -22,308 +22,10 @@ - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans - 48 + 32 true @@ -334,7 +36,7 @@ true - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter true @@ -343,304 +45,6 @@ - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Enter any notes here, including defense. @@ -648,7 +52,7 @@ true - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter true @@ -663,304 +67,6 @@ 1 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans diff --git a/ui/QRCode.ui b/ui/QRCode.ui index 47b1778..e43ba38 100644 --- a/ui/QRCode.ui +++ b/ui/QRCode.ui @@ -25,7 +25,7 @@ Noto Sans - 48 + 32 true @@ -33,23 +33,35 @@ QR Code - Qt::AlignHCenter|Qt::AlignTop + Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop - + - + 0 5 + + + 400 + 400 + + + + + 640 + 640 + + - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter diff --git a/ui/Scale.ui b/ui/Scale.ui index ac20e16..c212ebe 100644 --- a/ui/Scale.ui +++ b/ui/Scale.ui @@ -10,491 +10,12 @@ 133 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Form - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - Very Bad @@ -502,187 +23,6 @@ - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - Bad @@ -690,187 +30,6 @@ - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - N/A @@ -881,187 +40,6 @@ - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - Fine @@ -1069,187 +47,6 @@ - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - Good @@ -1257,187 +54,6 @@ - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - Great @@ -1445,187 +61,6 @@ - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 252 - 252 - 252 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - Elite diff --git a/ui/SubjectiveScales.ui b/ui/SubjectiveScales.ui index 0061af5..157ee9a 100644 --- a/ui/SubjectiveScales.ui +++ b/ui/SubjectiveScales.ui @@ -25,7 +25,7 @@ Noto Sans - 38 + 32 true diff --git a/ui/TeamInfo.ui b/ui/TeamInfo.ui index 067da58..c76b5ed 100644 --- a/ui/TeamInfo.ui +++ b/ui/TeamInfo.ui @@ -10,304 +10,6 @@ 702 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -327,304 +29,6 @@ 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -648,304 +52,6 @@ 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Event Code: @@ -962,304 +68,6 @@ 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -1289,52 +97,6 @@ 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - Noto Sans @@ -1648,304 +410,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Scouter Initials: @@ -1962,304 +426,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -2283,304 +449,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -2610,304 +478,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -2931,304 +501,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - @@ -3246,304 +518,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - 2024ohmv diff --git a/ui/TeleScouting.ui b/ui/TeleScouting.ui deleted file mode 100644 index 8825165..0000000 --- a/ui/TeleScouting.ui +++ /dev/null @@ -1,330 +0,0 @@ - - - TeleScouting - - - - 0 - 0 - 733 - 619 - - - - - Noto Sans - 20 - - - - Form - - - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - Noto Sans - 32 - true - - - - Teleop Data - - - true - - - Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop - - - true - - - - - - - - diff --git a/ui/WebTeamInfo.ui b/ui/WebTeamInfo.ui index a666ad1..a2c23fc 100644 --- a/ui/WebTeamInfo.ui +++ b/ui/WebTeamInfo.ui @@ -10,304 +10,6 @@ 702 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -327,52 +29,6 @@ 0 - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - - - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - Noto Sans @@ -678,6 +334,35 @@ color: white;
+ + + + + 1 + 0 + + + + + Noto Sans + 18 + false + + + + Team Number: + + + true + + + Qt::AlignmentFlag::AlignCenter + + + true + + + @@ -686,304 +371,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -999,638 +386,42 @@ color: white; - - + + 1 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - + + + Noto Sans + 18 + false + - Scouter Initials: + Match Number: Qt::AlignmentFlag::AlignCenter - - + + - + 1 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - Noto Sans - 18 - false - - - - true + + Scouter Initials: - - 99999 + + Qt::AlignmentFlag::AlignCenter @@ -1642,304 +433,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -1961,312 +454,14 @@ color: white; - - + + - + 1 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - Noto Sans @@ -2274,11 +469,11 @@ color: white; false - - Match Number: + + true - - Qt::AlignmentFlag::AlignCenter + + 99999 @@ -2290,631 +485,6 @@ color: white; 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - - - - - 1 - 0 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 202 - 202 - 202 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 255 - 255 - 255 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 0 - 255 - - - - - - - 255 - 255 - 255 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 0 - 0 - 0 - - - - - - - 20 - 84 - 118 - - - - - - - 20 - 20 - 20 - - - - - - - - - Noto Sans - 18 - false - - - - Team Number: - - - true - - - Qt::AlignmentFlag::AlignCenter - - - true - diff --git a/ui/WelcomePage.ui b/ui/WelcomePage.ui index 8a6b1a4..71e4020 100644 --- a/ui/WelcomePage.ui +++ b/ui/WelcomePage.ui @@ -19,7 +19,7 @@ Noto Sans - 40 + 32 true @@ -30,7 +30,7 @@ true - Qt::AlignHCenter|Qt::AlignTop + Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop true @@ -58,7 +58,7 @@ Welcome to QFRCScouter! Hit the "Next" button to begin scouting.true - Qt::AlignHCenter|Qt::AlignTop + Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop true @@ -68,7 +68,7 @@ Welcome to QFRCScouter! Hit the "Next" button to begin scouting. - Qt::Vertical + Qt::Orientation::Vertical @@ -81,11 +81,17 @@ Welcome to QFRCScouter! Hit the "Next" button to begin scouting. - + 0 0 + + + 0 + 100 + + 18 @@ -99,7 +105,7 @@ Welcome to QFRCScouter! Hit the "Next" button to begin scouting. - Qt::Vertical + Qt::Orientation::Vertical