mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
media: add small C++ helper describing a picture struct
By using a std::string instead of a C-string, memory management becomes so much simpler! This class will be used for keeping track of deleted/added pictures in the undo system. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
6f8cc5aafe
commit
fe82cb32b9
4 changed files with 56 additions and 0 deletions
|
@ -127,6 +127,8 @@ set(SUBSURFACE_CORE_LIB_SRCS
|
|||
parse.h
|
||||
picture.c
|
||||
picture.h
|
||||
pictureobj.cpp
|
||||
pictureobj.h
|
||||
planner.c
|
||||
planner.h
|
||||
plannernotes.c
|
||||
|
|
27
core/pictureobj.cpp
Normal file
27
core/pictureobj.cpp
Normal file
|
@ -0,0 +1,27 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include "pictureobj.h"
|
||||
#include "qthelper.h"
|
||||
|
||||
PictureObj::PictureObj() : offset({ 0 }), location({ 0 })
|
||||
{
|
||||
}
|
||||
|
||||
PictureObj::PictureObj(const picture &pic) : filename(pic.filename), offset(pic.offset), location(pic.location)
|
||||
{
|
||||
}
|
||||
|
||||
picture PictureObj::toCore() const
|
||||
{
|
||||
return picture {
|
||||
strdup(filename.c_str()),
|
||||
offset,
|
||||
location
|
||||
};
|
||||
}
|
||||
|
||||
bool PictureObj::operator<(const PictureObj &p2) const
|
||||
{
|
||||
if (offset.seconds != p2.offset.seconds)
|
||||
return offset.seconds < p2.offset.seconds;
|
||||
return strcmp(filename.c_str(), p2.filename.c_str()) < 0;
|
||||
}
|
25
core/pictureobj.h
Normal file
25
core/pictureobj.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#ifndef PICTUREOBJ_H
|
||||
#define PICTUREOBJ_H
|
||||
|
||||
// A tiny helper class that represents a struct picture of the core
|
||||
// It does, however, keep the filename as a std::string so that C++ code
|
||||
// doesn't have do its own memory-management.
|
||||
|
||||
#include "core/units.h"
|
||||
#include "core/picture.h"
|
||||
#include <string>
|
||||
|
||||
struct PictureObj {
|
||||
std::string filename;
|
||||
offset_t offset;
|
||||
location_t location;
|
||||
|
||||
PictureObj(); // Initialize to empty picture.
|
||||
PictureObj(const picture &pic); // Create from core struct picture.
|
||||
picture toCore() const; // Turn into core structure. Caller responsible for freeing.
|
||||
bool operator<(const PictureObj &p2) const;
|
||||
};
|
||||
|
||||
#endif // PICTUREOBJ_H
|
|
@ -64,6 +64,7 @@ SOURCES += ../../subsurface-mobile-main.cpp \
|
|||
../../core/parse-xml.c \
|
||||
../../core/parse.c \
|
||||
../../core/picture.c \
|
||||
../../core/pictureobj.cpp \
|
||||
../../core/import-suunto.c \
|
||||
../../core/import-shearwater.c \
|
||||
../../core/import-cobalt.c \
|
||||
|
@ -205,6 +206,7 @@ HEADERS += \
|
|||
../../core/units.h \
|
||||
../../core/version.h \
|
||||
../../core/picture.h \
|
||||
../../core/pictureobj.h \
|
||||
../../core/planner.h \
|
||||
../../core/divesite.h \
|
||||
../../core/checkcloudconnection.h \
|
||||
|
|
Loading…
Reference in a new issue