diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 572f594..b2cc966 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,114 +1,115 @@ set(KDE_INSTALL_INCLUDEDIR_PIM ${KDE_INSTALL_INCLUDEDIR}/KPim) add_subdirectory(airportdb) if(TARGET Poppler::Qt5) set(HAVE_POPPLER ON) endif() configure_file(config-kitinerary.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kitinerary.h) set(kitinerary_lib_srcs airportdb/airportdb.cpp datatypes/bustrip.cpp datatypes/datatypes.cpp datatypes/flight.cpp datatypes/organization.cpp datatypes/person.cpp datatypes/place.cpp datatypes/reservation.cpp datatypes/ticket.cpp datatypes/traintrip.cpp + datatypes/visit.cpp calendarhandler.cpp extractor.cpp extractorengine.cpp extractorfilter.cpp extractorpreprocessor.cpp extractorpostprocessor.cpp extractorrepository.cpp iatabcbpparser.cpp jsonlddocument.cpp jsonldimportfilter.cpp mergeutil.cpp structureddataextractor.cpp ) qt5_add_resources(kitinerary_lib_srcs extractors/extractors.qrc) ecm_qt_declare_logging_category(kitinerary_lib_srcs HEADER logging.h IDENTIFIER KItinerary::Log CATEGORY_NAME org.kde.kitinerary) add_library(KPimItinerary SHARED ${kitinerary_lib_srcs}) add_library(KPim::Itinerary ALIAS KPimItinerary) generate_export_header(KPimItinerary BASE_NAME KItinerary) set_target_properties(KPimItinerary PROPERTIES VERSION ${KITINERARY_VERSION_STRING} SOVERSION ${KITINERARY_SOVERSION} EXPORT_NAME Itinerary ) target_include_directories(KPimItinerary INTERFACE "$") target_include_directories(KPimItinerary PUBLIC "$") target_link_libraries(KPimItinerary PUBLIC Qt5::Core KF5::Mime KF5::CalendarCore PRIVATE Qt5::Qml KF5::I18n KPim::PkPass ) if (HAVE_POPPLER) target_link_libraries(KPimItinerary PRIVATE Poppler::Qt5) endif() ecm_generate_headers(KItinerary_FORWARDING_HEADERS HEADER_NAMES CalendarHandler Extractor ExtractorEngine ExtractorPreprocessor ExtractorPostprocessor ExtractorRepository IataBcbpParser JsonLdDocument MergeUtil StructuredDataExtractor PREFIX KItinerary REQUIRED_HEADERS KItinerary_HEADERS ) ecm_generate_headers(KItinerary_AirportDb_FORWARDING_HEADERS HEADER_NAMES AirportDb PREFIX KItinerary REQUIRED_HEADERS KItinerary_AirportDb_HEADERS RELATIVE airportdb ) ecm_generate_headers(KItinerary_Datatypes_FORWARDING_HEADERS HEADER_NAMES BusTrip Datatypes Flight Organization Reservation Person Place Ticket TrainTrip PREFIX KItinerary REQUIRED_HEADERS KItinerary_Datatypes_HEADERS RELATIVE datatypes ) install(TARGETS KPimItinerary EXPORT KPimItineraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}) install(FILES ${KItinerary_FORWARDING_HEADERS} ${KItinerary_AirportDb_FORWARDING_HEADERS} ${KItinerary_Datatypes_FORWARDING_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_PIM}/KItinerary ) install(FILES ${KItinerary_HEADERS} ${KItinerary_AirportDb_HEADERS} ${KItinerary_Datatypes_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/kitinerary_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_PIM}/kitinerary ) diff --git a/src/datatypes/visit.cpp b/src/datatypes/visit.cpp new file mode 100644 index 0000000..af9fd70 --- /dev/null +++ b/src/datatypes/visit.cpp @@ -0,0 +1,53 @@ +/* + Copyright (C) 2018 Luca Beltrame + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + This program 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 Library 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 "visit.h" +#include "place.h" +#include "datatypes_p.h" + +using namespace KItinerary; + +namespace KItinerary { + +class TouristAttractionVisitPrivate: public QSharedData { + +public: + TouristAttraction touristAttraction; + QDateTime arrivalTime; + QDateTime departureTime; +}; + +KITINERARY_MAKE_SIMPLE_CLASS(TouristAttractionVisit) +KITINERARY_MAKE_PROPERTY(TouristAttractionVisit, TouristAttraction, touristAttraction, setTouristAttraction) +KITINERARY_MAKE_PROPERTY(TouristAttractionVisit, QDateTime, arrivalTime, setArrivalTime) +KITINERARY_MAKE_PROPERTY(TouristAttractionVisit, QDateTime, departureTime, setDepartureTime) + +QString TouristAttractionVisit::departureTimeLocalized() const +{ + K_D(const TouristAttractionVisit); + return QLocale().toString(d->departureTime, QLocale::ShortFormat); +} + +QString TouristAttractionVisit::arrivalTimeLocalized() const +{ + K_D(const TouristAttractionVisit); + return QLocale().toString(d->arrivalTime, QLocale::ShortFormat); +} + +} + +#include "moc_visit.cpp" diff --git a/src/datatypes/visit.h b/src/datatypes/visit.h new file mode 100644 index 0000000..1ae7987 --- /dev/null +++ b/src/datatypes/visit.h @@ -0,0 +1,49 @@ +/* + Copyright (C) 2018 Luca Beltrame + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + This program 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 Library 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 KITINERARY_VISIT_H +#define KITINERARY_VISIT_H + +#include "kitinerary_export.h" + +#include "datatypes.h" + +namespace KItinerary { + +class TouristAttraction; +class TouristAttractionVisitPrivate; + +class KITINERARY_EXPORT TouristAttractionVisit +{ + KITINERARY_GADGET(TouristAttractionVisit) + KITINERARY_PROPERTY(TouristAttraction, touristAttraction, setTouristAttraction) + KITINERARY_PROPERTY(QDateTime, arrivalTime, setArrivalTime) + KITINERARY_PROPERTY(QDateTime, departureTime, setDepartureTime) + Q_PROPERTY(QString departureTimeLocalized READ departureTimeLocalized STORED false CONSTANT) + Q_PROPERTY(QString arrivalTimeLocalized READ arrivalTimeLocalized STORED false CONSTANT) + +private: + QString departureTimeLocalized() const; + QString arrivalTimeLocalized() const; + QExplicitlySharedDataPointer d; +}; + +} // namespace KItinerary + +Q_DECLARE_METATYPE(KItinerary::TouristAttractionVisit) + +#endif // KITINERARY_VISIT_H