Skip to content

Commit

Permalink
Add mainwindow loading
Browse files Browse the repository at this point in the history
note: error at line 134 hotspot_X => hotspot_x
to demonstrate the excepts
eg debug:
_____________________________________________________________
!! exception !! 83 QElectroTech_Element_Updater/src/element/loadelement.cpp
value:  "hotspot_X"
hotspot_x:
unknown value
!! exception !! 143 QElectroTech_Element_Updater/src/gui/mainwindow.cpp
_____________________________________________________
  • Loading branch information
De-Backer committed Dec 31, 2020
1 parent 49468aa commit 8757624
Show file tree
Hide file tree
Showing 6 changed files with 206 additions and 11 deletions.
17 changes: 9 additions & 8 deletions include/element/loadelement.h
Expand Up @@ -14,12 +14,13 @@ class LoadElement
public:
LoadElement(QString file);
~LoadElement();
QVariant definition(QString value);
QUuid uuid();
QString name(QString language);
QVariant kindInformation(QString value);
QString informations();
QVector<QVector<QVariant>> description();
QVariant definition(QString value);
QVector<QVariant> definition();
QUuid uuid();
QString name(QString language);
QMap<QString, QVector<QVariant>> kindInformation();
QString informations();
QVector<QVector<QVariant>> description();

private:
// definition
Expand All @@ -34,8 +35,8 @@ class LoadElement
// name
QMap<QString, QString> name_element;
// kindInformation
QMap<QString, int> kindInformation_show_element; // name, show
QMap<QString, QString> kindInformation_text_element; // name, text
QMap<QString, QVector<QVariant>>
kindInformation_element; // name, show, text
// informations_element
QString informations_element;
QVector<QVector<QVariant>> description_element;
Expand Down
30 changes: 30 additions & 0 deletions include/mainwindow.h
@@ -1,7 +1,13 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QAction>
#include <QDebug>
#include <QMainWindow>
#include <QMdiArea>
#include <QMenu>
#include <QMenuBar>
#include <QStatusBar>

class MainWindow : public QMainWindow
{
Expand All @@ -10,5 +16,29 @@ class MainWindow : public QMainWindow
public:
MainWindow(QWidget* parent = nullptr);
~MainWindow();

private:
QMdiArea mdiArea;

QMenu
/* Menu */
M_File,
/* menu window */
M_Window,
/* help */
M_Help;
QAction
/* Menu */
A_Exit,
A_Open,
/* menu window */
A_Close, A_CloseAll, A_Tile, A_Cascade,
/* help */
A_AboutQt;
void createActions();
void createMenus();
QString RemoveAmpersand(QString var);
private slots:
void open_file();
};
#endif // MAINWINDOW_H
20 changes: 20 additions & 0 deletions src/element/loadelement.cpp
Expand Up @@ -8,6 +8,7 @@

LoadElement::LoadElement(QString file)
{
qDebug() << this << file;
element = new QFile(file);
if (! element->open(QIODevice::ReadOnly | QIODevice::Text))
{
Expand Down Expand Up @@ -78,11 +79,25 @@ QVariant LoadElement::definition(QString value)
if (value == "type") return type;
if (value == "link_type") return link_type;

qDebug() << "_____________________________________________________________";
qWarning() << "!! exception !!" << __LINE__ << __FILE__;
qDebug() << "value: " << value;
throw std::invalid_argument("unknown value");
return 0;
}

QVector<QVariant> LoadElement::definition()
{
QVector<QVariant> var;
var.append(width);
var.append(height);
var.append(hotspot_x);
var.append(hotspot_y);
var.append(type);
var.append(link_type);
return var;
}

QUuid LoadElement::uuid() { return uuid_element; }

/**
Expand All @@ -96,6 +111,11 @@ QString LoadElement::name(QString language)
return name_element.value(language, defkey);
}

QMap<QString, QVector<QVariant>> LoadElement::kindInformation()
{
return kindInformation_element;
}

QString LoadElement::informations() { return informations_element; }

QVector<QVector<QVariant>> LoadElement::description()
Expand Down
144 changes: 143 additions & 1 deletion src/gui/mainwindow.cpp
@@ -1,5 +1,147 @@
#include "mainwindow.h"

MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) {}
#include "element/loadelement.h"

#include <QApplication>
#include <QDebug>
#include <QFileDialog>
#include <QStringList>

MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent)
{
mdiArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
mdiArea.setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
setCentralWidget(&mdiArea);
statusBar()->showMessage("createActions", 5000);
createActions();
statusBar()->showMessage("createMenus", 5000);
createMenus();
}

MainWindow::~MainWindow() {}

void MainWindow::createActions()
{
/* info: maakt de actions voor de menus */
/* WindowMenu */
A_Close.setText(RemoveAmpersand(tr("Cl&ose")));
A_Close.setStatusTip(tr("Close the active window"));
connect(
&A_Close,
&QAction::triggered,
&mdiArea,
&QMdiArea::closeActiveSubWindow);

A_CloseAll.setText(RemoveAmpersand(tr("Close &All")));
A_CloseAll.setStatusTip(tr("Close all the windows"));
connect(
&A_CloseAll,
&QAction::triggered,
&mdiArea,
&QMdiArea::closeAllSubWindows);

A_Tile.setText(RemoveAmpersand(tr("&Tile")));
A_Tile.setStatusTip(tr("Tile the windows"));
connect(&A_Tile, &QAction::triggered, &mdiArea, &QMdiArea::tileSubWindows);

A_Cascade.setText(RemoveAmpersand(tr("&Cascade")));
A_Cascade.setStatusTip(tr("Cascade the windows"));
connect(
&A_Cascade,
&QAction::triggered,
&mdiArea,
&QMdiArea::cascadeSubWindows);

/* menu */
A_Exit.setText(RemoveAmpersand(tr("&Exit")));
A_Exit.setStatusTip(tr("Exit the program"));
connect(&A_Exit, &QAction::triggered, this, &MainWindow::close);

A_Open.setText(RemoveAmpersand(tr("&Open")));
A_Open.setStatusTip(tr("open file"));
connect(&A_Open, SIGNAL(triggered()), this, SLOT(open_file()));

/* help */
A_AboutQt.setText(RemoveAmpersand(tr("About &Qt")));
connect(&A_AboutQt, &QAction::triggered, qApp, &QApplication::aboutQt);
}

void MainWindow::createMenus()
{
/* info: maakt de menu structuur */
M_File.setTitle(RemoveAmpersand(tr("&File")));
menuBar()->addMenu(&M_File);

M_File.addAction(&A_Open);

#ifndef Q_OS_ANDROID
M_File.addSeparator();
#endif
M_File.addAction(&A_Exit);

/* menu window */
M_Window.setTitle(RemoveAmpersand(tr("&Window")));
menuBar()->addMenu(&M_Window);
M_Window.addAction(&A_Tile);
M_Window.addAction(&A_Cascade);
#ifndef Q_OS_ANDROID
M_Window.addSeparator();
#endif
M_Window.addAction(&A_Close);
M_Window.addAction(&A_CloseAll);
#ifndef Q_OS_ANDROID
M_Window.addSeparator();
#endif
/* QMenu *helpMenu; */
M_Help.setTitle(RemoveAmpersand(tr("&help")));
menuBar()->addMenu(&M_Help);
M_Help.addAction(&A_AboutQt);
}

QString MainWindow::RemoveAmpersand(QString var)
{
#ifndef Q_OS_ANDROID
return var;
#else
return var.remove("&");
#endif
}

void MainWindow::open_file()
{
QStringList data = QFileDialog::getOpenFileNames(
this,
tr("Open Element"),
"/home/simon/GIT/qet/elements/",
tr("Element Files (*.elmt)"));
qDebug() << "QStringList:" << data;
for (QString var : data)
{
try
{
LoadElement test(var);
qDebug() << var;
qDebug() << "name: " << test.name("en");
qDebug() << "uuid: " << test.uuid();
qDebug() << "informations: " << test.informations();
qDebug() << "description: " << test.description();
qDebug() << "kindInformation: " << test.kindInformation();
qDebug() << "definition: " << test.definition();
qDebug() << "or definition:";
qDebug() << "width: " << test.definition("width");
qDebug() << "height: " << test.definition("height");
//!!!!!!== exception test
qDebug() << "hotspot_x: " << test.definition("hotspot_X");
qDebug() << "hotspot_y: " << test.definition("hotspot_y");
qDebug() << "type: " << test.definition("type");
qDebug() << "link_type: " << test.definition("link_type");
qDebug() << "version: " << test.definition("version");
}
catch (std::exception& e)
{
qWarning() << e.what(); // what is exception?
qWarning() << "!! exception !!" << __LINE__ << __FILE__;
qDebug() << "_____________________________________________________";
}
}
}
1 change: 1 addition & 0 deletions tests/catch/loadelement_test.cpp
Expand Up @@ -70,6 +70,7 @@ TEST_CASE("LoadElement 0.3.0", "0.3.0")
CHECK("EN 60617: 03-03-08" == mytest.informations().toStdString());

// description
// dit moeten we anders testen door is het een getal?, is er text, ..
QVector<QVector<QVariant>> test_description;
{
QVector<QVariant> test_var(1, "line");
Expand Down
5 changes: 3 additions & 2 deletions tests/qttest/CMakeLists.txt
Expand Up @@ -51,7 +51,8 @@ find_package(
COMPONENTS
Widgets
Test
REQUIRED)
REQUIRED
)

enable_testing()

Expand All @@ -61,6 +62,6 @@ add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
target_link_libraries(
${PROJECT_NAME}
PRIVATE
Qt::Test
Qt${QT_VERSION_MAJOR}::Test
Qt${QT_VERSION_MAJOR}::Widgets)

0 comments on commit 8757624

Please sign in to comment.