From 7eedf8f8a2ea412014e216f79a63330f9b646926 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Thu, 29 Apr 2021 17:42:17 +0300 Subject: [PATCH] introduce errordata and errorinformationdata --- app/data/CMakeLists.txt | 1 + app/data/errordata.cpp | 79 +++++++++++++++++++++++++++++ app/data/errordata.h | 62 +++++++++++++++++++++++ app/data/errorinformationdata.cpp | 84 +++++++++++++++++++++++++++++++ app/data/errorinformationdata.h | 60 ++++++++++++++++++++++ app/data/generictable.cpp | 2 + 6 files changed, 288 insertions(+) create mode 100644 app/data/errordata.cpp create mode 100644 app/data/errordata.h create mode 100644 app/data/errorinformationdata.cpp create mode 100644 app/data/errorinformationdata.h diff --git a/app/data/CMakeLists.txt b/app/data/CMakeLists.txt index f56a66e30..657426651 100644 --- a/app/data/CMakeLists.txt +++ b/app/data/CMakeLists.txt @@ -2,6 +2,7 @@ set(lattedock-app_SRCS ${lattedock-app_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/activitydata.cpp ${CMAKE_CURRENT_SOURCE_DIR}/appletdata.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/errorinformationdata.cpp ${CMAKE_CURRENT_SOURCE_DIR}/genericbasictable.cpp ${CMAKE_CURRENT_SOURCE_DIR}/genericdata.cpp ${CMAKE_CURRENT_SOURCE_DIR}/generictable.cpp diff --git a/app/data/errordata.cpp b/app/data/errordata.cpp new file mode 100644 index 000000000..c5a8fdc8c --- /dev/null +++ b/app/data/errordata.cpp @@ -0,0 +1,79 @@ +/* + * Copyright 2021 Michail Vourlakos + * + * This file is part of Latte-Dock + * + * Latte-Dock is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * Latte-Dock is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "errordata.h" + +namespace Latte { +namespace Data { + +Error::Error() + : Generic() +{ +} + +Error::Error(Error &&o) + : Generic(o), + information(o.information) +{ +} + +Error::Error(const Error &o) + : Generic(o), + information(o.information) +{ +} + +Error &Error::operator=(const Error &rhs) +{ + id = rhs.id; + name = rhs.name; + information = rhs.information; + + return (*this); +} + +Error &Error::operator=(Error &&rhs) +{ + id = rhs.id; + name = rhs.name; + information = rhs.information; + + return (*this); +} + +bool Error::operator==(const Error &rhs) const +{ + return (id == rhs.id) + && (name == rhs.name) + && (information == rhs.information) +} + +bool Error::operator!=(const Error &rhs) const +{ + return !(*this == rhs); +} + +bool Error::isValid() const +{ + return !id.isEmpty(); +} + +} +} diff --git a/app/data/errordata.h b/app/data/errordata.h new file mode 100644 index 000000000..aa5024dc8 --- /dev/null +++ b/app/data/errordata.h @@ -0,0 +1,62 @@ +/* + * Copyright 2021 Michail Vourlakos + * + * This file is part of Latte-Dock + * + * Latte-Dock is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * Latte-Dock is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef ERRORDATA_H +#define ERRORDATA_H + +//! local +#include "genericdata.h" +#include "appletdata.h" +#include "errorinformationdata.h" + +//! Qt +#include +#include + +namespace Latte { +namespace Data { + +class Error : public Data::Generic +{ +public: + Error(); + Error(Error &&o); + Error(const Error &o); + + bool isValid() const; + + //! Operators + Error &operator=(const Error &rhs); + Error &operator=(Error &&rhs); + bool operator==(const Error &rhs) const; + bool operator!=(const Error &rhs) const; + + GenericTable information; + +private: + +}; + +} +} + +Q_DECLARE_METATYPE(Latte::Data::Error) + +#endif diff --git a/app/data/errorinformationdata.cpp b/app/data/errorinformationdata.cpp new file mode 100644 index 000000000..5e9c214c4 --- /dev/null +++ b/app/data/errorinformationdata.cpp @@ -0,0 +1,84 @@ +/* + * Copyright 2021 Michail Vourlakos + * + * This file is part of Latte-Dock + * + * Latte-Dock is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * Latte-Dock is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "errorinformationdata.h" + +namespace Latte { +namespace Data { + +ErrorInformation::ErrorInformation() + : Generic() +{ +} + +ErrorInformation::ErrorInformation(ErrorInformation &&o) + : Generic(o), + containment(o.containment), + applet(o.applet) +{ +} + +ErrorInformation::ErrorInformation(const ErrorInformation &o) + : Generic(o), + containment(o.containment), + applet(o.applet) +{ +} + +ErrorInformation &ErrorInformation::operator=(const ErrorInformation &rhs) +{ + id = rhs.id; + name = rhs.name; + containment = rhs.containment; + applet = rhs.applet; + + return (*this); +} + +ErrorInformation &ErrorInformation::operator=(ErrorInformation &&rhs) +{ + id = rhs.id; + name = rhs.name; + containment = rhs.containment; + applet = rhs.applet; + + return (*this); +} + +bool ErrorInformation::operator==(const ErrorInformation &rhs) const +{ + return (id == rhs.id) + && (name == rhs.name) + && (containment == rhs.containment) + && (applet == rhs.applet); +} + +bool ErrorInformation::operator!=(const ErrorInformation &rhs) const +{ + return !(*this == rhs); +} + +bool ErrorInformation::isValid() const +{ + return containment.isValid() || applet.isValid(); +} + +} +} diff --git a/app/data/errorinformationdata.h b/app/data/errorinformationdata.h new file mode 100644 index 000000000..737de1a36 --- /dev/null +++ b/app/data/errorinformationdata.h @@ -0,0 +1,60 @@ +/* + * Copyright 2021 Michail Vourlakos + * + * This file is part of Latte-Dock + * + * Latte-Dock is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * Latte-Dock is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef ERRORINFORMATIONDATA_H +#define ERRORINFORMATIONDATA_H + +//! local +#include "genericdata.h" +#include "appletdata.h" + +//! Qt +#include +#include + +namespace Latte { +namespace Data { + +class ErrorInformation : public Generic +{ +public: + ErrorInformation(); + ErrorInformation(ErrorInformation &&o); + ErrorInformation(const ErrorInformation &o); + + //! error data + Data::Applet containment; + Data::Applet applet; + + bool isValid() const; + + //! Operators + ErrorInformation &operator=(const ErrorInformation &rhs); + ErrorInformation &operator=(ErrorInformation &&rhs); + bool operator==(const ErrorInformation &rhs) const; + bool operator!=(const ErrorInformation &rhs) const; +}; + +} +} + +Q_DECLARE_METATYPE(Latte::Data::ErrorInformation) + +#endif diff --git a/app/data/generictable.cpp b/app/data/generictable.cpp index c1c7e7298..c8210c3c3 100644 --- a/app/data/generictable.cpp +++ b/app/data/generictable.cpp @@ -22,6 +22,7 @@ #include "generictable.h" #include "activitydata.h" #include "appletdata.h" +#include "errorinformationdata.h" #include "layoutdata.h" #include "screendata.h" #include "viewdata.h" @@ -327,6 +328,7 @@ void GenericTable::remove(const int &row) //! but that would drop readability template class GenericTable; template class GenericTable; +template class GenericTable; template class GenericTable; template class GenericTable; template class GenericTable;