mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
stats: break out common QtQuick part of the code
Move most of the QtQuick code to its own directory, so that it can be reused in the future for the chart. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
533cff96f3
commit
2eebae13dd
34 changed files with 1031 additions and 915 deletions
51
qt-quick/chartitem_ptr.h
Normal file
51
qt-quick/chartitem_ptr.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
// A stupid pointer class that initializes to null and can be copy
|
||||
// assigned. This is for historical reasons: unique_ptrs to ChartItems
|
||||
// were replaced by plain pointers. Instead of nulling the plain pointers
|
||||
// in the constructors, use this. Ultimately, we might think about making
|
||||
// this thing smarter, once removal of individual ChartItems is implemented.
|
||||
#ifndef CHARITEM_PTR_H
|
||||
#define CHARITEM_PTR_H
|
||||
|
||||
template <typename T>
|
||||
class ChartItemPtr {
|
||||
friend class ChartView; // Only the chart view can create these pointers
|
||||
T *ptr;
|
||||
ChartItemPtr(T *ptr) : ptr(ptr)
|
||||
{
|
||||
}
|
||||
public:
|
||||
ChartItemPtr() : ptr(nullptr)
|
||||
{
|
||||
}
|
||||
ChartItemPtr(const ChartItemPtr &p) : ptr(p.ptr)
|
||||
{
|
||||
}
|
||||
void reset()
|
||||
{
|
||||
ptr = nullptr;
|
||||
}
|
||||
ChartItemPtr &operator=(const ChartItemPtr &p)
|
||||
{
|
||||
ptr = p.ptr;
|
||||
return *this;
|
||||
}
|
||||
operator bool() const
|
||||
{
|
||||
return !!ptr;
|
||||
}
|
||||
bool operator!() const
|
||||
{
|
||||
return !ptr;
|
||||
}
|
||||
T &operator*() const
|
||||
{
|
||||
return *ptr;
|
||||
}
|
||||
T *operator->() const
|
||||
{
|
||||
return ptr;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue