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

doubleadjusterwidget.h 5.05 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
27
// 
// ================================================================================================

#ifndef DOUBLEADJUSTERWIDGET_H__
#define DOUBLEADJUSTERWIDGET_H__

28
#include "abstractadjusterwidget.h"
29
#include "application/applicationapi.h"
30
31
32
33
34
35
36
37

namespace campvis {
    /**
     * Widget providing two ways of adjusting double-precision floating-point values.
     *
     * DoubleAdjusterWidget consists of a slider, which can be used to quickly change numeric values, and a spin box,
     * which is better suited for precise adjustments.
     */
38
    class CAMPVIS_APPLICATION_API DoubleAdjusterWidget : public AbstractAdjusterWidget<double> {
39

40
41
42
43
44
        Q_OBJECT

    public:
        /**
         * Creates a new DoubleAdjusterWidget.
45
         * \param   parent      parent Qt widget
46
         */
47
        explicit DoubleAdjusterWidget(QWidget* parent = 0);
48

Christian Schulte zu Berge's avatar
Christian Schulte zu Berge committed
49
50
51
52
53
        /**
         * Returns how many decimals the adjuster will use for displaying and doubleerpreting doubles.
         */
        int decimals() const;

54
        /**
55
         * Set how many decimals the adjuster will use for displaying and doubleerpreting doubles.
56
         * \param   prec      number of decimals the adjuster will use
57
58
59
         */
        void setDecimals(int prec);

60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
        /**
         * Change the adjuster's minimum value.
         * \param   minimum      new minimum value for the adjuster
         */
        void setMinimum(double minimum);

        /**
         * Change the adjuster's maximum value.
         * \param   maximum      new maximum value for the adjuster
         */
        void setMaximum(double maximum);

        /**
         * Change the adjuster's single step value.
         * \param   value      new single step value for the adjuster
         */
        void setSingleStep(double value);

78
79
80
    public slots:
        /**
         * Change the adjuster's current value.
81
         * \param   value      new value for the adjuster
82
83
84
85
86
87
         */
        void setValue(double value);

    signals:
        /**
         * This signal is emitted whenever the adjuster's value is changed.
88
         * \param   value      new value of the adjuster
89
90
91
         */
        void valueChanged(double value);

92
93
94
95
96
97
98
        /// Signal emitted when the property's minimum value has changed
        void s_minChanged(double minimum);
        /// Signal emitted when the property's maximum value has changed
        void s_maxChanged(double maximum);
        /// Signal emitted when the property's single step value has changed
        void s_singleStepChanged(double value);

99
    protected:
100
101
102
        /**
         * Calculate and set the slider's value.
         *
103
104
         * The slider's value will be based on the provided current value of the adjuster, as well as its step and
         * minimum value.
105
         *
106
         * \param   value       the adjuster's new value
107
         */
108
        void setSliderValue(double value);
109
110
111
112

        /**
         * Calculate and set the slider's properties.
         *
113
         * The slider's properties will be based on the provided step, minimum, and maximum value of the adjuster.
114
         *
115
116
117
         * \param   stepValue   the adjuster's step value
         * \param   minValue    the adjuster's minimum value
         * \param   maxValue    the adjuster's maximum value
118
         */
119
        void setSliderProperties(double stepValue, double minValue, double maxValue);
120

121
122
123
124
125
126
    private slots:
        /// Slot getting called when the spin box's value changes
        void onSpinBoxValueChanged(double value);

        /// Slot getting called when the slider's value changes
        void onSliderValueChanged(int value);
127

128
129
130
131
132
133
        /// Slot getting called when the property's minimum value has changed
        void onMinChanged(double minimum);
        /// Slot getting called when the property's maximum value has changed
        void onMaxChanged(double maximum);
        /// Slot getting called when the property's single step value has changed
        void onSingleStepChanged(double value);
134
135
136
137
138
    };

}

#endif // DOUBLEADJUSTERWIDGET_H__