summaryrefslogtreecommitdiffstats
path: root/core/subsurface-qt
diff options
context:
space:
mode:
Diffstat (limited to 'core/subsurface-qt')
-rw-r--r--core/subsurface-qt/divelistnotifier.h56
1 files changed, 0 insertions, 56 deletions
diff --git a/core/subsurface-qt/divelistnotifier.h b/core/subsurface-qt/divelistnotifier.h
index 63355fbcc..b5f8106d5 100644
--- a/core/subsurface-qt/divelistnotifier.h
+++ b/core/subsurface-qt/divelistnotifier.h
@@ -121,68 +121,12 @@ signals:
// This is necessary, so that the user can't click on the "undo" button and undo
// an unrelated command.
void commandExecuted();
-public:
- // Desktop uses the QTreeView class to present the list of dives. The layout
- // of this class gives us a very fundamental problem, as we can not easily
- // distinguish between user-initiated changes of the selection and changes
- // that are due to actions of the Command-classes. To solve this problem,
- // the frontend can use this function to query whether a dive list-modifying
- // command is currently executed. If this function returns true, the
- // frontend is supposed to not modify the selection.
- bool inCommand() const;
-
- // The following class and function are used by divelist-modifying commands
- // to signal that they are in-flight. If the returned object goes out of scope,
- // the command-in-flight status is reset to its previous value. Thus, the
- // function can be called recursively.
- class InCommandMarker {
- DiveListNotifier &notifier;
- bool oldValue;
- InCommandMarker(DiveListNotifier &);
- friend DiveListNotifier;
- public:
- ~InCommandMarker();
- };
-
- // Usage:
- // void doWork()
- // {
- // auto marker = diveListNotifier.enterCommand();
- // ... do work ...
- // }
- InCommandMarker enterCommand();
-private:
- friend InCommandMarker;
- bool commandExecuting;
};
// The DiveListNotifier class has only trivial state.
// We can simply define it as a global object.
extern DiveListNotifier diveListNotifier;
-// InCommandMarker is so trivial that the functions can be inlined.
-// TODO: perhaps move this into own header-file.
-inline DiveListNotifier::InCommandMarker::InCommandMarker(DiveListNotifier &notifierIn) : notifier(notifierIn),
- oldValue(notifier.commandExecuting)
-{
- notifier.commandExecuting = true;
-}
-
-inline DiveListNotifier::InCommandMarker::~InCommandMarker()
-{
- notifier.commandExecuting = oldValue;
-}
-
-inline bool DiveListNotifier::inCommand() const
-{
- return commandExecuting;
-}
-
-inline DiveListNotifier::InCommandMarker DiveListNotifier::enterCommand()
-{
- return InCommandMarker(*this);
-}
-
inline DiveField::DiveField(int flags) :
nr((flags & NR) != 0),
datetime((flags & DATETIME) != 0),