File: dockindockmanager.h

package info (click to toggle)
qt-advanced-docking-system 3.8.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 13,600 kB
  • sloc: cpp: 11,678; python: 2,623; makefile: 12
file content (96 lines) | stat: -rw-r--r-- 2,322 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#pragma once

#include "DockManager.h"

#include <QAction>
#include <QMap>

namespace QtAdsUtl
{

class DockInDockWidget;
class DockInDockManager : public ads::CDockManager
{
    Q_OBJECT

    typedef ads::CDockManager baseClass;

public:
    DockInDockManager( DockInDockWidget& parent );
    ~DockInDockManager() override; 

    void fillViewMenu( QMenu* menu, const std::vector<DockInDockManager*>& moveTo );
    void fillMoveMenu( QMenu* menu, const std::vector<DockInDockManager*>& moveTo );

    void addPerspectiveRec( const QString& name );
    void openPerspectiveRec( const QString& name );
    void removePerspectivesRec();
    void loadPerspectivesRec(QSettings& Settings);
    void savePerspectivesRec(QSettings& Settings) const;

    static DockInDockManager* dockInAManager( ads::CDockWidget* widget );

    inline DockInDockWidget& parent() { return m_parent; }

    void childManagers( std::vector<DockInDockManager*>& managers, bool rec ) const;
    std::vector<DockInDockManager*> allManagers( bool includeThis, bool rec ) const;
    std::vector<std::pair<DockInDockManager*,ads::CDockWidget*>> allDockWidgets( bool includeThis, bool rec ) const;

    QString getGroupName();
    QString getPersistGroupName();
    static QString getGroupNameFromPersistGroupName( QString persistGroupName );

    QMap<QString,QStringList> getGroupContents();

    ads::CDockAreaWidget* getInsertDefaultPos();

    std::vector<ads::CDockWidget*> getWidgetsInGUIOrder() const;

private:
    DockInDockWidget& m_parent;
};

class CreateChildDockAction : public QAction
{
    Q_OBJECT
public:
    CreateChildDockAction( DockInDockWidget& dockInDock, QMenu* menu );

public slots:
    void createGroup();

private:
    DockInDockWidget& m_dockInDock;
};

class DestroyGroupAction : public QAction
{
    Q_OBJECT
public:
    DestroyGroupAction( DockInDockWidget* widget, QMenu* menu );

public slots:
    void destroyGroup();

private:
    DockInDockWidget* m_widget;
};

class MoveDockWidgetAction : public QAction
{
    Q_OBJECT
public:
    MoveDockWidgetAction( ads::CDockWidget* widget, DockInDockManager* moveTo, QMenu* menu );

    static void move( ads::CDockWidget* widget, DockInDockManager* moveTo );

public slots:
    void move();

private:
    ads::CDockWidget* m_widget;
    DockInDockManager* m_moveTo;
};

}