Kaynağa Gözat

First commit.

xnecas 2 hafta önce
işleme
9f6a6003fa
10 değiştirilmiş dosya ile 2024 ekleme ve 0 silme
  1. 53 0
      CMakeLists.txt
  2. 85 0
      config.h
  3. 27 0
      interval.cpp
  4. 51 0
      interval.h
  5. 11 0
      main.cpp
  6. 414 0
      mainwindow.cpp
  7. 188 0
      mainwindow.h
  8. 1194 0
      mainwindow.ui
  9. 1 0
      resources/NerveSaver3000.rc
  10. BIN
      resources/app_icon.ico

+ 53 - 0
CMakeLists.txt

@@ -0,0 +1,53 @@
+cmake_minimum_required(VERSION 3.19)
+project(NerveSaver3000 LANGUAGES CXX)
+
+find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets)
+
+qt_standard_project_setup()
+
+set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/resources/NerveSaver3000.rc")
+
+qt_add_executable(NerveSaver3000
+    WIN32 MACOSX_BUNDLE
+    main.cpp
+    mainwindow.cpp
+    mainwindow.h
+    mainwindow.ui
+    interval.h interval.cpp
+    config.h
+    ${app_icon_resource_windows}
+)
+
+target_link_libraries(NerveSaver3000
+    PRIVATE
+        Qt::Core
+        Qt::Widgets
+)
+
+
+if(true)
+    # 1. Nájdeme kde v systéme sa nachádza nástroj windeployqt
+    find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${Qt6_DIR}/../../../bin")
+
+    if(WINDEPLOYQT_EXECUTABLE)
+        # 2. Povieme CMake, aby po skompilovaní spustil tento nástroj
+        add_custom_command(TARGET NerveSaver3000 POST_BUILD
+            COMMAND ${WINDEPLOYQT_EXECUTABLE}
+                --verbose 1
+                --compiler-runtime   # Pridá aj DLL kompilátora (msvcp140.dll atď.)
+                --dir "${CMAKE_CURRENT_BINARY_DIR}" # Kam to má sypať (k tvojmu .exe)
+                "$<TARGET_FILE:NerveSaver3000>"
+            COMMENT "Spúšťam automatický windeployqt pre zozbieranie všetkých DLL súborov..."
+        )
+    endif()
+endif()
+
+
+include(GNUInstallDirs)
+
+qt_generate_deploy_app_script(
+    TARGET NerveSaver3000
+    OUTPUT_SCRIPT deploy_script
+    NO_UNSUPPORTED_PLATFORM_ERROR
+)
+install(SCRIPT ${deploy_script})

+ 85 - 0
config.h

@@ -0,0 +1,85 @@
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include <QString>
+#include <array>
+#include "interval.h"
+
+/**
+ * @name Thesis Evaluation Constants
+ * @{
+ */
+
+/**
+ * @brief Total number of evaluation grades (A through Fx).
+ */
+static constexpr size_t EVAL_COUNT = 6;
+
+/**
+ * @brief List of intervals used to map a numerical average to a letter grade.
+ * @details Each @ref Interval object defines a minimum value, a maximum value,
+ * and its corresponding grade string (e.g., "A", "B", ...).
+ */
+static const std::array<Interval, EVAL_COUNT> EVAL_INTERVALS = {
+    Interval(1.00, 1.25, "A"),
+    Interval(1.26, 1.75, "B"),
+    Interval(1.76, 2.25, "C"),
+    Interval(2.26, 2.75, "D"),
+    Interval(2.76, 3.25, "E"),
+    Interval(3.26, 4.00, "Fx")
+};
+
+/**
+ * @brief Numerical equivalents of individual grades used to calculate the weighted average.
+ * @details The order of values exactly mirrors the order in @ref EVAL_INTERVALS
+ * (index 0 = A, index 5 = Fx).
+ */
+static const std::array<double, EVAL_COUNT> EVAL_NUM_VALUES = {
+    1.0, // A
+    1.5, // B
+    2.0, // C
+    2.5, // D
+    3.0, // E
+    4.0  // Fx
+};
+
+/**
+ * @brief Weight of the thesis supervisor's evaluation (35%).
+ */
+static constexpr double WEIGHT_THESIS_SUPERVISOR   = 0.35;
+
+/**
+ * @brief Weight of the thesis examiner's (reviewer's) evaluation (35%).
+ */
+static constexpr double WEIGHT_THESIS_EXAMINER     = 0.35;
+
+/**
+ * @brief Weight of the thesis defense/presentation evaluation (30%).
+ */
+static constexpr double WEIGHT_THESIS_PRESENTATION = 0.30;
+
+/**
+ * @brief Verbal assessment for an unsuccessful defense (grade Fx or failing to meet thresholds).
+ */
+static const QString EVAL_TOTAL_BAD  = "nedostatočne";
+
+/**
+ * @brief Verbal assessment for a successful defense.
+ */
+static const QString EVAL_TOTAL_OK   = "vyhovel";
+
+/**
+ * @brief Verbal assessment for an excellent defense outcome.
+ */
+static const QString EVAL_TOTAL_WELL = "výborne";
+
+/**
+ * @brief Threshold value to qualify for the "excellent" (@ref EVAL_TOTAL_WELL) assessment.
+ * @details If the final weighted average is less than or equal to this threshold,
+ * the student receives the highest total grade.
+ */
+static constexpr double EVAL_TOTAL_WELL_THRESHOLD = 1.5;
+
+/** @} */ // End of Thesis Evaluation Constants group
+
+#endif // CONFIG_H

+ 27 - 0
interval.cpp

@@ -0,0 +1,27 @@
+#include "interval.h"
+
+Interval::Interval(double min, double max, QString label) : _min(min), _max(max), _label(label)
+{
+
+}
+
+bool Interval::in(double value) const
+{
+  return _min <= value && value <= _max;
+}
+
+QString Interval::getLabel() const
+{
+    return _label;
+}
+
+double Interval::getMin() const
+{
+    return _min;
+
+}
+
+double Interval::getMax() const
+{
+    return _max;
+}

+ 51 - 0
interval.h

@@ -0,0 +1,51 @@
+#ifndef INTERVAL_H
+#define INTERVAL_H
+
+#include <QString>
+
+/**
+ * Class representing intervals
+ * of real numbers.
+ */
+class Interval
+{
+public:
+    /**
+     * Constructor.
+     * @param min lowest value of the interval
+     * @param max highest value of the interval
+     * @param label name of the interval
+     */
+    Interval(double min, double max, QString label);
+
+    /**
+     * Check if value is in the interval.
+     * @param value
+     * @return true/false
+     */
+    bool in(double value) const;
+
+    /**
+     * Getter for label.
+     * @return label
+     */
+    QString getLabel() const;
+
+    /**
+     * @brief Getter for min.
+     * @return min
+     */
+    double getMin() const;
+
+    /**
+     * Getter for max
+     * @return max
+     */
+    double getMax() const;
+
+private:
+    double _min;
+    double _max;
+    QString _label;
+};
+#endif // INTERVAL_H

+ 11 - 0
main.cpp

@@ -0,0 +1,11 @@
+#include "mainwindow.h"
+
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+    QApplication a(argc, argv);
+    MainWindow w;
+    w.show();
+    return a.exec();
+}

+ 414 - 0
mainwindow.cpp

@@ -0,0 +1,414 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent)
+    : QMainWindow(parent)
+    , ui(new Ui::MainWindow)
+{
+    ui->setupUi(this);
+
+    _initialize_all();  // initialize all user controls
+}
+
+MainWindow::~MainWindow()
+{
+    delete ui;
+}
+
+void MainWindow::_initialize_all()
+{
+    ui->comboBox_thesis_spervisorEvaluation->activated(0);
+    ui->comboBox_thesis_examinerEvaluation->activated(0);
+    ui->comboBox_thesis_presentationEvaluation->activated(0);
+    ui->comboBox_exam_questionsEvaluation->activated(0);
+
+    ui->checkBox_comment1_presentation->checkStateChanged(Qt::Checked);
+    ui->radioButton_comment2_quality1->click();
+    ui->radioButton_comment3_yes->click();
+    ui->checkBox_comment4_explanations->checkStateChanged(Qt::Checked);
+    ui->radioButton_comment4_quality1->click();
+    ui->radioButton_comment5_confidence1->click();
+    ui->radioButton_comment5_quality1->click();
+}
+
+void MainWindow::_calculate_thesisEvaluation()
+{
+    double value = WEIGHT_THESIS_SUPERVISOR   * _eval_thesis_supervisor
+                 + WEIGHT_THESIS_EXAMINER     * _eval_thesis_examiner
+                 + WEIGHT_THESIS_PRESENTATION * _eval_thesis_presentation;
+
+    _eval_thesis_final_text = _convert_evaluation_from_number(std::round(value * 100.0) / 100.0);
+}
+
+void MainWindow::_calculate_finalEvaluation()
+{
+    double eval_thesis_final_num = _convert_evaluation_from_text(_eval_thesis_final_text);
+    double value = (eval_thesis_final_num + _eval_exam_questions) / 2.0;
+
+    if (_eval_exam_questions >= EVAL_NUM_VALUES.back() || eval_thesis_final_num >= EVAL_NUM_VALUES.back())
+        _eval_final_text = EVAL_TOTAL_BAD;
+    else if (value <= EVAL_TOTAL_WELL_THRESHOLD)
+        _eval_final_text = EVAL_TOTAL_WELL;
+    else
+        _eval_final_text = EVAL_TOTAL_OK;
+}
+
+void MainWindow::_show_thesisEvaluation()
+{
+    ui->label_thesis_finalEvaluation_text->setText(_eval_thesis_final_text);
+}
+
+void MainWindow::_show_finalEvaluation()
+{
+    ui->label_finalEvaluation_text->setText(_eval_final_text);
+}
+
+void MainWindow::_show_finalComment()
+{
+    ui->textEdit_finalComment->setText(_comment1 + _comment2 + _comment3 + _comment4 + _comment5);
+}
+
+QString MainWindow::_convert_evaluation_from_number(double x)
+{
+    for (auto interval: EVAL_INTERVALS)
+    {
+        if (interval.in(x))
+            return interval.getLabel();
+    }
+
+    return "-";
+}
+
+double MainWindow::_convert_evaluation_from_text(QString x)
+{
+    for (size_t i = 0; i < EVAL_INTERVALS.size(); i++)
+    {
+        if (EVAL_INTERVALS[i].getLabel() == x)
+            return EVAL_NUM_VALUES[i];
+    }
+
+    return 0;
+}
+
+void MainWindow::_compose_comment1()
+{
+    QString first = "";
+    QString second = "";
+    QString third = "";
+
+    if (_comm1_isPresentation && _comm1_isPrototype && _comm1_isVideo)
+    {
+        first = ui->checkBox_comment1_presentation->text() + ", ",
+        second = ui->checkBox_comment1_prototype->text() + " a ",
+        third = ui->checkBox_comment1_video->text();
+    }
+    else if (_comm1_isPresentation && _comm1_isPrototype)
+    {
+        first = ui->checkBox_comment1_presentation->text() + " a ",
+        second = ui->checkBox_comment1_prototype->text();
+    }
+    else if (_comm1_isPresentation && _comm1_isVideo)
+    {
+        first = ui->checkBox_comment1_presentation->text() + " a ",
+        second = ui->checkBox_comment1_video->text();
+    }
+    else if (_comm1_isPrototype && _comm1_isVideo)
+    {
+        first = ui->checkBox_comment1_prototype->text() + " a ",
+        second = ui->checkBox_comment1_video->text();
+    }
+    else if (_comm1_isPresentation)
+    {
+        first = ui->checkBox_comment1_presentation->text();
+    }
+    else if (_comm1_isPrototype)
+    {
+        first = ui->checkBox_comment1_prototype->text();
+    }
+    else if (_comm1_isVideo)
+    {
+        first = ui->checkBox_comment1_video->text();
+    }
+    else
+    {
+        _comment1 = "";
+        return;
+    }
+
+    _comment1 = QString("%1 %2%3%4, ")
+        .arg(ui->label_comment1->text())
+        .arg(first)
+        .arg(second)
+        .arg(third);
+
+}
+
+void MainWindow::_compose_comment2()
+{
+    _comment2 = QString("%1 %2. ")
+        .arg(ui->label_comment2->text())
+        .arg(_comm2_selectedQuality);
+}
+
+void MainWindow::_compose_comment3()
+{
+    _comment3 = QString("%1 %2. ")
+        .arg(ui->label_comment3->text())
+        .arg(_comm3_selectedAnswer);
+}
+
+void MainWindow::_compose_comment4()
+{
+    _comment4 = QString("%1 %2%3. ")
+        .arg(ui->label_comment4->text())
+        .arg(_comm4_explanations)
+        .arg(_comm4_selectedQuality);
+}
+
+void MainWindow::_compose_comment5()
+{
+    QString selectedQuality = _comm5_isNoAnswer ? "" : " " + _comm5_selectedQuality;
+
+    _comment5 = QString("%1 %2%3.")
+        .arg(ui->label_comment5->text())
+        .arg(_comm5_selectedConfidence)
+        .arg(selectedQuality);
+}
+
+void MainWindow::on_comboBox_thesis_spervisorEvaluation_activated(int index)
+{
+    _eval_thesis_supervisor = EVAL_NUM_VALUES[ui->comboBox_thesis_spervisorEvaluation->currentIndex()];
+
+    _calculate_thesisEvaluation();
+    _calculate_finalEvaluation();
+
+    _show_thesisEvaluation();
+    _show_finalEvaluation();
+}
+
+
+void MainWindow::on_comboBox_thesis_examinerEvaluation_activated(int index)
+{
+    _eval_thesis_examiner = EVAL_NUM_VALUES[ui->comboBox_thesis_examinerEvaluation->currentIndex()];
+
+    _calculate_thesisEvaluation();
+    _calculate_finalEvaluation();
+
+    _show_thesisEvaluation();
+    _show_finalEvaluation();
+}
+
+
+void MainWindow::on_comboBox_thesis_presentationEvaluation_activated(int index)
+{
+    _eval_thesis_presentation = EVAL_NUM_VALUES[ui->comboBox_thesis_presentationEvaluation->currentIndex()];
+
+    _calculate_thesisEvaluation();
+    _calculate_finalEvaluation();
+
+    _show_thesisEvaluation();
+    _show_finalEvaluation();
+}
+
+
+void MainWindow::on_comboBox_exam_questionsEvaluation_activated(int index)
+{
+    _eval_exam_questions = EVAL_NUM_VALUES[ui->comboBox_exam_questionsEvaluation->currentIndex()];
+
+    _calculate_finalEvaluation();
+    _show_finalEvaluation();
+}
+
+
+void MainWindow::on_checkBox_comment1_presentation_checkStateChanged(const Qt::CheckState &arg1)
+{
+    _comm1_isPresentation = arg1 == Qt::CheckState::Checked;
+
+    _compose_comment1();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_checkBox_comment1_prototype_checkStateChanged(const Qt::CheckState &arg1)
+{
+    _comm1_isPrototype = arg1 == Qt::CheckState::Checked;
+
+    _compose_comment1();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_checkBox_comment1_video_checkStateChanged(const Qt::CheckState &arg1)
+{
+    _comm1_isVideo = arg1 == Qt::CheckState::Checked;
+
+    _compose_comment1();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment2_quality1_clicked()
+{
+    _comm2_selectedQuality = ui->radioButton_comment2_quality1->text();
+
+    _compose_comment2();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment2_quality2_clicked()
+{
+   _comm2_selectedQuality = ui->radioButton_comment2_quality2->text();
+
+    _compose_comment2();
+   _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment2_quality3_clicked()
+{
+    _comm2_selectedQuality = ui->radioButton_comment2_quality3->text();
+
+    _compose_comment2();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment2_quality4_clicked()
+{
+    _comm2_selectedQuality = ui->radioButton_comment2_quality4->text();
+    _compose_comment2();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment2_quality5_clicked()
+{
+    _comm2_selectedQuality = ui->radioButton_comment2_quality5->text();
+
+    _compose_comment2();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment3_yes_clicked()
+{
+    _comm3_selectedAnswer = ui->radioButton_comment3_yes->text();
+
+    _compose_comment3();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment3_no_clicked()
+{
+    _comm3_selectedAnswer = ui->radioButton_comment3_no->text();
+
+    _compose_comment3();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_checkBox_comment4_explanations_checkStateChanged(const Qt::CheckState &arg1)
+{
+    if (arg1 == Qt::CheckState::Checked)
+        _comm4_explanations = ui->checkBox_comment4_explanations->text() + " ";
+    else
+        _comm4_explanations = "";
+
+    _compose_comment4();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment4_quality1_clicked()
+{
+    _comm4_selectedQuality = ui->radioButton_comment4_quality1->text();
+
+    _compose_comment4();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment4_quality2_clicked()
+{
+    _comm4_selectedQuality = ui->radioButton_comment4_quality2->text();
+
+    _compose_comment4();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment4_quality3_clicked()
+{
+    _comm4_selectedQuality = ui->radioButton_comment4_quality3->text();
+
+    _compose_comment4();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment4_quality4_clicked()
+{
+    _comm4_selectedQuality = ui->radioButton_comment4_quality4->text();
+
+    _compose_comment4();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment5_confidence1_clicked()
+{
+    _comm5_isNoAnswer = false;
+    _comm5_selectedConfidence = ui->radioButton_comment5_confidence1->text();
+
+    _compose_comment5();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment5_confidence2_clicked()
+{
+    _comm5_isNoAnswer = false;
+    _comm5_selectedConfidence = ui->radioButton_comment5_confidence2->text();
+
+   _compose_comment5();
+   _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment5_confidence3_clicked()
+{
+    _comm5_isNoAnswer = true;
+    _comm5_selectedConfidence = ui->radioButton_comment5_confidence3->text();
+
+    _compose_comment5();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment5_quality1_clicked()
+{
+    _comm5_selectedQuality = ui->radioButton_comment5_quality1->text();
+
+    _compose_comment5();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment5_quality2_clicked()
+{
+    _comm5_selectedQuality = ui->radioButton_comment5_quality2->text();
+
+    _compose_comment5();
+    _show_finalComment();
+}
+
+
+void MainWindow::on_radioButton_comment5_quality3_clicked()
+{
+    _comm5_selectedQuality = ui->radioButton_comment5_quality3->text();
+
+    _compose_comment5();
+    _show_finalComment();
+}

+ 188 - 0
mainwindow.h

@@ -0,0 +1,188 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QString>
+#include <cmath>
+
+#include "config.h"
+
+
+QT_BEGIN_NAMESPACE
+namespace Ui {
+class MainWindow;
+}
+QT_END_NAMESPACE
+
+class MainWindow : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    MainWindow(QWidget *parent = nullptr);
+    ~MainWindow();
+
+private slots:
+    void on_comboBox_thesis_spervisorEvaluation_activated(int index);
+
+    void on_comboBox_thesis_examinerEvaluation_activated(int index);
+
+    void on_comboBox_thesis_presentationEvaluation_activated(int index);
+
+    void on_comboBox_exam_questionsEvaluation_activated(int index);
+
+    void on_checkBox_comment1_presentation_checkStateChanged(const Qt::CheckState &arg1);
+
+    void on_checkBox_comment1_prototype_checkStateChanged(const Qt::CheckState &arg1);
+
+    void on_checkBox_comment1_video_checkStateChanged(const Qt::CheckState &arg1);
+
+    void on_radioButton_comment2_quality1_clicked();
+
+    void on_radioButton_comment2_quality2_clicked();
+
+    void on_radioButton_comment2_quality3_clicked();
+
+    void on_radioButton_comment2_quality4_clicked();
+
+    void on_radioButton_comment2_quality5_clicked();
+
+    void on_radioButton_comment3_yes_clicked();
+
+    void on_radioButton_comment3_no_clicked();
+
+    void on_checkBox_comment4_explanations_checkStateChanged(const Qt::CheckState &arg1);
+
+    void on_radioButton_comment4_quality1_clicked();
+
+    void on_radioButton_comment4_quality2_clicked();
+
+    void on_radioButton_comment4_quality3_clicked();
+
+    void on_radioButton_comment4_quality4_clicked();
+
+    void on_radioButton_comment5_confidence1_clicked();
+
+    void on_radioButton_comment5_confidence2_clicked();
+
+    void on_radioButton_comment5_confidence3_clicked();
+
+    void on_radioButton_comment5_quality1_clicked();
+
+    void on_radioButton_comment5_quality2_clicked();
+
+    void on_radioButton_comment5_quality3_clicked();
+
+private:
+    Ui::MainWindow *ui;
+
+    /**
+     * Initialize all input controls.
+     */
+    void _initialize_all();
+
+    /**
+     * Calculate the final evaluation for thesis and store it
+     * into _eval_thesis_final.
+     */
+    void _calculate_thesisEvaluation();
+
+    /**
+     * Calculate the final evaluation for whole examination
+     * and store it into _eval_final_text.
+     */
+    void _calculate_finalEvaluation();
+
+    /**
+     * Show a thesis evaluation state.
+     */
+    void _show_thesisEvaluation();
+
+    /**
+     * Show the whole examination final state.
+     */
+    void _show_finalEvaluation();
+
+    /**
+     * Show final vaverbal evaluation of student.
+     */
+    void _show_finalComment();
+
+    /**
+     * Create 1st comment as a whole sentence.
+     */
+    void _compose_comment1();
+
+    /**
+     * Create 2nd comment as a whole sentence.
+     */
+    void _compose_comment2();
+
+    /**
+     * Create 3rd comment as a whole sentence.
+     */
+    void _compose_comment3();
+
+    /**
+     * Create 4th comment as a whole sentence.
+     */
+    void _compose_comment4();
+
+    /**
+     * Create 5th comment as a whole sentence.
+     */
+    void _compose_comment5();
+
+    /**
+     * Helper method for converting evaluation from numerical
+     * to text form.
+     * @param x numerical value for evaluation
+     * @return string
+     */
+    QString _convert_evaluation_from_number(double x);
+
+    /**
+     * Helper method for converting evaluation from text form
+     * to numerical form.
+     * @param x text value for evaluation
+     * @return numerical value
+     */
+    double _convert_evaluation_from_text(QString x);
+
+    // numerical or text values for thesis evaluation
+    double _eval_thesis_supervisor{0};
+    double _eval_thesis_examiner{0};
+    double _eval_thesis_presentation{0};
+    QString _eval_thesis_final_text{""};
+
+    // numerical value for exam evaluation
+    double _eval_exam_questions{0};
+
+    // text value for final evaluation
+    QString _eval_final_text{""};
+
+    // flags for comment 1
+    bool    _comm1_isPresentation{false};
+    bool    _comm1_isPrototype{false};
+    bool    _comm1_isVideo{false};
+
+    QString _comm2_selectedQuality{""};
+
+    QString _comm3_selectedAnswer{""};
+
+    QString _comm4_explanations{""};
+    QString _comm4_selectedQuality{""};
+
+    QString _comm5_selectedConfidence{""};
+    QString _comm5_selectedQuality{""};
+
+    bool _comm5_isNoAnswer{false};
+
+    // comments for verbal evaluation
+    QString _comment1{""};
+    QString _comment2{""};
+    QString _comment3{""};
+    QString _comment4{""};
+    QString _comment5{""};
+};
+#endif // MAINWINDOW_H

+ 1194 - 0
mainwindow.ui

@@ -0,0 +1,1194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>1748</width>
+    <height>608</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>0</width>
+    <height>608</height>
+   </size>
+  </property>
+  <property name="font">
+   <font>
+    <pointsize>10</pointsize>
+   </font>
+  </property>
+  <property name="windowTitle">
+   <string>NerveSaver3000</string>
+  </property>
+  <property name="toolButtonStyle">
+   <enum>Qt::ToolButtonStyle::ToolButtonIconOnly</enum>
+  </property>
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <widget class="QGroupBox" name="groupBox_numericalEvaluation">
+      <property name="font">
+       <font>
+        <pointsize>10</pointsize>
+        <bold>true</bold>
+       </font>
+      </property>
+      <property name="title">
+       <string>Hodnotenie štátnej skúšky</string>
+      </property>
+      <property name="flat">
+       <bool>true</bool>
+      </property>
+      <layout class="QGridLayout" name="gridLayout_3">
+       <item row="2" column="4">
+        <widget class="QLabel" name="label_thesis_presentationEvaluation_title">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <property name="text">
+          <string>Hodnotenie obhajoby ZP</string>
+         </property>
+        </widget>
+       </item>
+       <item row="7" column="0">
+        <widget class="QComboBox" name="comboBox_thesis_spervisorEvaluation">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <item>
+          <property name="text">
+           <string>A</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>B</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>C</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>D</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>E</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Fx</string>
+          </property>
+         </item>
+        </widget>
+       </item>
+       <item row="2" column="2">
+        <widget class="QLabel" name="label_thesis_examinerEvaluation_title">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <property name="text">
+          <string>Hodnotenie oponenta ZP</string>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="11">
+        <widget class="QLabel" name="label_finalEvaluation_title">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <property name="text">
+          <string>Celkové hodnotenie štátnej skúšky</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignmentFlag::AlignCenter</set>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="8">
+        <widget class="QLabel" name="label_exam_questionsEvaluation_title">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <property name="text">
+          <string>Hodnotenie predmetov štátnej skúšky</string>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="6">
+        <widget class="QLabel" name="label_thesis_finalEvaluation_title">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <property name="text">
+          <string>Celkové hodnotenie ZP</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignmentFlag::AlignCenter</set>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="0">
+        <widget class="QLabel" name="label_thesis_supervisorEvaluation_title">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <property name="text">
+          <string>Hodnotenie školiteľa ZP</string>
+         </property>
+        </widget>
+       </item>
+       <item row="7" column="8">
+        <widget class="QComboBox" name="comboBox_exam_questionsEvaluation">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <item>
+          <property name="text">
+           <string>A</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>B</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>C</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>D</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>E</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Fx</string>
+          </property>
+         </item>
+        </widget>
+       </item>
+       <item row="7" column="6">
+        <widget class="QLabel" name="label_thesis_finalEvaluation_text">
+         <property name="font">
+          <font>
+           <pointsize>18</pointsize>
+           <bold>true</bold>
+          </font>
+         </property>
+         <property name="styleSheet">
+          <string notr="true">color: palette(accent)</string>
+         </property>
+         <property name="text">
+          <string>C</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignmentFlag::AlignCenter</set>
+         </property>
+        </widget>
+       </item>
+       <item row="7" column="11">
+        <widget class="QLabel" name="label_finalEvaluation_text">
+         <property name="font">
+          <font>
+           <pointsize>18</pointsize>
+           <bold>true</bold>
+          </font>
+         </property>
+         <property name="autoFillBackground">
+          <bool>false</bool>
+         </property>
+         <property name="styleSheet">
+          <string notr="true">color: palette(accent)</string>
+         </property>
+         <property name="frameShape">
+          <enum>QFrame::Shape::NoFrame</enum>
+         </property>
+         <property name="text">
+          <string>výborne</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignmentFlag::AlignCenter</set>
+         </property>
+        </widget>
+       </item>
+       <item row="7" column="3">
+        <spacer name="horizontalSpacer_10">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Minimum</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="7" column="5">
+        <spacer name="horizontalSpacer_11">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Minimum</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="7" column="7">
+        <spacer name="horizontalSpacer_12">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Minimum</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="7" column="1">
+        <spacer name="horizontalSpacer_9">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Minimum</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="7" column="9">
+        <spacer name="horizontalSpacer_13">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Minimum</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>10</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item row="7" column="2">
+        <widget class="QComboBox" name="comboBox_thesis_examinerEvaluation">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <item>
+          <property name="text">
+           <string>A</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>B</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>C</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>D</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>E</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Fx</string>
+          </property>
+         </item>
+        </widget>
+       </item>
+       <item row="7" column="4">
+        <widget class="QComboBox" name="comboBox_thesis_presentationEvaluation">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <item>
+          <property name="text">
+           <string>A</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>B</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>C</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>D</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>E</string>
+          </property>
+         </item>
+         <item>
+          <property name="text">
+           <string>Fx</string>
+          </property>
+         </item>
+        </widget>
+       </item>
+       <item row="1" column="6">
+        <spacer name="verticalSpacer_5">
+         <property name="orientation">
+          <enum>Qt::Orientation::Vertical</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Minimum</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>10</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item>
+     <spacer name="verticalSpacer_6">
+      <property name="orientation">
+       <enum>Qt::Orientation::Vertical</enum>
+      </property>
+      <property name="sizeType">
+       <enum>QSizePolicy::Policy::Minimum</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>10</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item>
+     <widget class="QGroupBox" name="groupBox_verbalEvaluation">
+      <property name="font">
+       <font>
+        <pointsize>10</pointsize>
+        <bold>true</bold>
+       </font>
+      </property>
+      <property name="title">
+       <string>Slovné hodnotenie študenta</string>
+      </property>
+      <property name="flat">
+       <bool>true</bool>
+      </property>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <item>
+        <spacer name="verticalSpacer_7">
+         <property name="orientation">
+          <enum>Qt::Orientation::Vertical</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Minimum</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>10</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QTextEdit" name="textEdit_finalComment">
+         <property name="font">
+          <font>
+           <pointsize>10</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <property name="styleSheet">
+          <string notr="true"/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="verticalSpacer_8">
+         <property name="orientation">
+          <enum>Qt::Orientation::Vertical</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Policy::Minimum</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>10</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QFrame" name="frame_verbalEvaluationControls">
+         <property name="font">
+          <font>
+           <pointsize>12</pointsize>
+           <bold>false</bold>
+          </font>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_2">
+          <item row="4" column="7" colspan="3">
+           <widget class="QRadioButton" name="radioButton_comment3_no">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>nesúhlasil a svoje tvrdenia v práci odôvodnil</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment3</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="0" column="7">
+           <widget class="QCheckBox" name="checkBox_comment1_prototype">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>funkčnej vzorky</string>
+            </property>
+           </widget>
+          </item>
+          <item row="6" column="9">
+           <widget class="QRadioButton" name="radioButton_comment4_quality2">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>zväčša správne</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment4</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="6" column="13">
+           <widget class="QRadioButton" name="radioButton_comment4_quality3">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>čiastočne správne</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment4</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="2" column="7">
+           <widget class="QRadioButton" name="radioButton_comment2_quality2">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>zrozumiteľne, ale zdĺhavo</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment2</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="4" column="0">
+           <widget class="QLabel" name="label_comment3">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>S pripomienkami uvedenými v posudkoch</string>
+            </property>
+            <property name="wordWrap">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="6" column="4">
+           <spacer name="horizontalSpacer_2">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>10</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="2" column="9">
+           <widget class="QRadioButton" name="radioButton_comment2_quality3">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>obšírne</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment2</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="6" column="8">
+           <spacer name="horizontalSpacer_4">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="6" column="6">
+           <spacer name="horizontalSpacer_3">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>10</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="6" column="2" colspan="2">
+           <widget class="QCheckBox" name="checkBox_comment4_explanations">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="acceptDrops">
+             <bool>false</bool>
+            </property>
+            <property name="text">
+             <string>pomocou vopred pripravených odpovedí a</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="10" column="17">
+           <widget class="QRadioButton" name="radioButton_comment5_quality3">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>a zväčša nesprávne</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment5_quality</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="6" column="7">
+           <widget class="QRadioButton" name="radioButton_comment4_quality1">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>správne</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment4</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="10" column="12">
+           <spacer name="horizontalSpacer_6">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>10</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="4" column="2">
+           <widget class="QRadioButton" name="radioButton_comment3_yes">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>súhlasil</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment3</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="10" column="9">
+           <widget class="QRadioButton" name="radioButton_comment5_confidence3">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>neodpovedal</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment5_confidence</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="6" column="5">
+           <widget class="Line" name="line">
+            <property name="frameShadow">
+             <enum>QFrame::Shadow::Plain</enum>
+            </property>
+            <property name="lineWidth">
+             <number>1</number>
+            </property>
+            <property name="orientation">
+             <enum>Qt::Orientation::Vertical</enum>
+            </property>
+           </widget>
+          </item>
+          <item row="10" column="2">
+           <widget class="QRadioButton" name="radioButton_comment5_confidence1">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>reagoval pohotovo</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment5_confidence</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="2" column="13">
+           <widget class="QRadioButton" name="radioButton_comment2_quality4">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>nezrozumiteľne</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment2</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="3" column="0">
+           <spacer name="verticalSpacer_2">
+            <property name="orientation">
+             <enum>Qt::Orientation::Vertical</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>10</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="2" column="15">
+           <widget class="QRadioButton" name="radioButton_comment2_quality5">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>neisto</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment2</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="6" column="0">
+           <widget class="QLabel" name="label_comment4">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>Na otázky oponenta odpovedal</string>
+            </property>
+            <property name="wordWrap">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="9">
+           <widget class="QCheckBox" name="checkBox_comment1_video">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>pripraveného videa</string>
+            </property>
+           </widget>
+          </item>
+          <item row="6" column="15">
+           <widget class="QRadioButton" name="radioButton_comment4_quality4">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>nesprávne</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment4</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="10" column="13">
+           <widget class="QRadioButton" name="radioButton_comment5_quality1">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>a správne</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment5_quality</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="10" column="10">
+           <spacer name="horizontalSpacer_5">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>10</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="10" column="15">
+           <widget class="QRadioButton" name="radioButton_comment5_quality2">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>a zväčša správne</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment5_quality</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_comment1">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>Študent predstavil výsledky záverečnej práce pomocou</string>
+            </property>
+            <property name="scaledContents">
+             <bool>false</bool>
+            </property>
+            <property name="wordWrap">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_comment2">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>pričom prezentoval</string>
+            </property>
+            <property name="wordWrap">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="10" column="0">
+           <widget class="QLabel" name="label_comment5">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>Na otázky členov komisie</string>
+            </property>
+           </widget>
+          </item>
+          <item row="10" column="14">
+           <spacer name="horizontalSpacer_7">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="10" column="16">
+           <spacer name="horizontalSpacer_8">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="10" column="11">
+           <widget class="Line" name="line_2">
+            <property name="frameShadow">
+             <enum>QFrame::Shadow::Plain</enum>
+            </property>
+            <property name="lineWidth">
+             <number>1</number>
+            </property>
+            <property name="orientation">
+             <enum>Qt::Orientation::Vertical</enum>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="2">
+           <widget class="QRadioButton" name="radioButton_comment2_quality1">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>stručne a zrozumiteľne</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment2</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="10" column="7">
+           <widget class="QRadioButton" name="radioButton_comment5_confidence2">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>reagoval váhavo</string>
+            </property>
+            <attribute name="buttonGroup">
+             <string notr="true">buttonGroup_comment5_confidence</string>
+            </attribute>
+           </widget>
+          </item>
+          <item row="5" column="0">
+           <spacer name="verticalSpacer_3">
+            <property name="orientation">
+             <enum>Qt::Orientation::Vertical</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>10</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="0" column="2">
+           <widget class="QCheckBox" name="checkBox_comment1_presentation">
+            <property name="font">
+             <font>
+              <pointsize>10</pointsize>
+              <bold>false</bold>
+             </font>
+            </property>
+            <property name="text">
+             <string>pripravenej prezentácie</string>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <spacer name="verticalSpacer">
+            <property name="orientation">
+             <enum>Qt::Orientation::Vertical</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>10</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="7" column="0">
+           <spacer name="verticalSpacer_4">
+            <property name="orientation">
+             <enum>Qt::Orientation::Vertical</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>10</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+          <item row="0" column="1">
+           <spacer name="horizontalSpacer">
+            <property name="orientation">
+             <enum>Qt::Orientation::Horizontal</enum>
+            </property>
+            <property name="sizeType">
+             <enum>QSizePolicy::Policy::Minimum</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>30</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>1748</width>
+     <height>28</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QStatusBar" name="statusbar"/>
+ </widget>
+ <resources/>
+ <connections/>
+ <buttongroups>
+  <buttongroup name="buttonGroup_comment5_confidence"/>
+  <buttongroup name="buttonGroup_comment4"/>
+  <buttongroup name="buttonGroup_comment3"/>
+  <buttongroup name="buttonGroup_comment5_quality"/>
+  <buttongroup name="buttonGroup_comment2"/>
+ </buttongroups>
+</ui>

+ 1 - 0
resources/NerveSaver3000.rc

@@ -0,0 +1 @@
+IDI_ICON1 ICON "app_icon.ico"

BIN
resources/app_icon.ico