Currently job artifacts in CI/CD pipelines on LRZ GitLab never expire. Starting from Wed 26.1.2022 the default expiration time will be 30 days (GitLab default). Currently existing artifacts in already completed jobs will not be affected by the change. The latest artifacts for all jobs in the latest successful pipelines will be kept. More information: https://gitlab.lrz.de/help/user/admin_area/settings/continuous_integration.html#default-artifacts-expiration

mdidockarea.h 3.88 KB
Newer Older
1
2
3
4
// ================================================================================================
// 
// This file is part of the CAMPVis Software Framework.
// 
5
// If not explicitly stated otherwise: Copyright (C) 2012-2015, all rights reserved,
6
7
//      Christian Schulte zu Berge <christian.szb@in.tum.de>
//      Chair for Computer Aided Medical Procedures
8
9
//      Technische Universitaet Muenchen
//      Boltzmannstr. 3, 85748 Garching b. Muenchen, Germany
10
// 
11
12
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
// 
13
14
15
16
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 
// except in compliance with the License. You may obtain a copy of the License at
// 
// http://www.apache.org/licenses/LICENSE-2.0
17
// 
18
19
20
21
// Unless required by applicable law or agreed to in writing, software distributed under the 
// License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
// either express or implied. See the License for the specific language governing permissions 
// and limitations under the License.
22
23
24
// 
// ================================================================================================

25
26
#ifndef MDIDOCKAREA_H__
#define MDIDOCKAREA_H__
27

28
#include "mdidockablewindow.h"
29
#include "application/gui/qtcolortools.h"
30
31
32
33
34
35

#include <QMdiArea>

namespace campvis {

    /**
36
     * MDI area whose subwindows can be docked and undocked.
37
     *
38
39
40
41
42
43
     * MdiDockArea extends QMdiArea's functionality by adding support for dockable MDI windows. It
     * provides 2 APIs:
     * - addSubWindow and removeSubWindow are much like their QMdiArea's counterparts; they operate
     *   on MDI sub-windows only, which don't support docking/undocking
     * - dockable windows can be created using the addWidget method, which returns an
     *   MdiDockableWindow instance
44
     */
45
    class CAMPVIS_APPLICATION_API MdiDockArea : public QMdiArea {
46

47
        Q_OBJECT
48
49

    public:
50
51
52
53
54
55
56
        /**
         * Constructs an empty MDI area.
         *
         * \param parent the area's parent widget (passed to QMdiArea's constructor)
         */
        explicit MdiDockArea(QWidget* parent = 0);

57
        /**
58
         * Wrap \p widget in a dockable MDI window and add it to the MDI area.
59
         *
60
         * This method creates a MdiDockableWindow wrapping the widget, and adds it to the MDI area.
61
         *
62
63
         * \param widget the widget to add to the MDI area
         * \param windowFlags flags used to customize the frame of the created subwindow
64
         * \return the MdiDockableWindow instance that was added to the MDI area
65
         */
66
        MdiDockableWindow* addWidget(QWidget* widget, Qt::WindowFlags windowFlags = 0);
67

68
        /**
69
         * Add \p mdiSubWindow to the MDI area.
70
         *
71
72
         * \param mdiSubWindow the MDI sub-window to be added to the MDI area
         * \return the MDI sub-window that was passed in
73
         */
74
        QMdiSubWindow* addSubWindow(QMdiSubWindow* mdiSubWindow);
75

76
        /**
77
         * Remove \p mdiSubWindow from the MDI area.
78
         *
79
         * \param mdiSubWindow the MDI sub-window to be removed from the MDI area
80
         */
81
        void removeSubWindow(QMdiSubWindow* mdiSubWindow);
82
83

        /**
84
         * Return a menu that lets the user control how the area's contents are displayed.
85
         *
86
87
         * The menu contains actions that make it possible to change the layout and visibility of
         * the area's subwindows.
88
         */
89
        QMenu* menu() const;
90

91
    private slots:
92
93
94
95
96
97
98
99
100
101
102
103
104
        /**
         * Display docked windows as sub-windows with window frames.
         */
        void switchToTiledDisplay();

        /**
         * Display docked windows with tabs in a tab bar.
         */
        void switchToTabbedDisplay();

    private:
        QMenu* _menu;                   ///< Menu with actions for controlling the MDI area and its subwindows.

105
106
107
    };
}

108
#endif // MDIDOCKAREA_H__