File: dockindock.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 (80 lines) | stat: -rw-r--r-- 2,324 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
#pragma once

#include <QWidget>
#include <QMap>

#include <memory>
#include <ostream>

class QMenu;

namespace ads
{
    class CDockAreaWidget;
}

namespace QtAdsUtl
{

class DockInDockManager;
class PerspectivesManager;
// tab of tab example for https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/issues/306
class DockInDockWidget : public QWidget
{
    typedef QWidget baseClass;

    Q_OBJECT

public:
    DockInDockWidget( QWidget* parent, bool canCreateNewGroups, PerspectivesManager* perspectivesManager );
    ~DockInDockWidget() override; 

    ads::CDockAreaWidget* addTabWidget( QWidget* widget, const QString& name, ads::CDockAreaWidget* after );
    DockInDockWidget* createGroup( const QString& groupName, ads::CDockAreaWidget*& insertPos );

    ads::CDockAreaWidget* addTabWidget( QWidget* widget, const QString& name, QIcon icon, ads::CDockAreaWidget* after );
    DockInDockWidget* createGroup( const QString& groupName, QIcon icon, ads::CDockAreaWidget*& insertPos );
    
    QString getGroupNameError( const QString& groupName );
    void destroyGroup( DockInDockWidget* widget );

    /** Manually fill a given view menu */
    void setupViewMenu( QMenu* menu );

    /** Attach a view menu that will be automatically fill */
    void attachViewMenu( QMenu* menu );

    bool isTopLevel();
    void setupMenu( QMenu* menu, const std::vector<DockInDockManager*>& moveTo );

    inline DockInDockManager* getManager() { return m_mgr; }
    inline DockInDockWidget* getTopLevelDockWidget() { return m_topLevelDockWidget; }

    inline bool canCreateNewGroups() const { return m_canCreateNewGroups; }

    void dumpStatus( std::ostream& str, std::string tab = "" );

    inline PerspectivesManager* getPerspectivesManager() { return m_perspectivesManager; }

    void setNewPerspectiveDefaultName( const QString& defaultName );

private slots:
    void autoFillAttachedViewMenu();
    void createPerspective();

private:
    DockInDockManager* m_mgr;
    DockInDockWidget* m_topLevelDockWidget;

    bool m_canCreateNewGroups;

    DockInDockWidget( QWidget* parent, DockInDockWidget* topLevelDockWidget,  PerspectivesManager* perspectivesManager );

    PerspectivesManager* m_perspectivesManager;
    QString m_newPerspectiveDefaultName;

    void fillPerspectivesMenu( QMenu* menu );
};

}