source: calamares/trunk/fuentes/src/modules/tracking/TrackingViewStep.h @ 7538

Last change on this file since 7538 was 7538, checked in by kbut, 17 months ago

sync with github

File size: 2.6 KB
Line 
1/* === This file is part of Calamares - <https://github.com/calamares> ===
2 *
3 *   Copyright 2017, Adriaan de Groot <groot@kde..org>
4 *
5 *   Calamares is free software: you can redistribute it and/or modify
6 *   it under the terms of the GNU General Public License as published by
7 *   the Free Software Foundation, either version 3 of the License, or
8 *   (at your option) any later version.
9 *
10 *   Calamares is distributed in the hope that it will be useful,
11 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 *   GNU General Public License for more details.
14 *
15 *   You should have received a copy of the GNU General Public License
16 *   along with Calamares. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef TRACKINGVIEWSTEP_H
20#define TRACKINGVIEWSTEP_H
21
22#include "TrackingType.h"
23
24#include <utils/PluginFactory.h>
25#include <viewpages/ViewStep.h>
26#include <PluginDllMacro.h>
27
28#include <QObject>
29#include <QUrl>
30#include <QVariantMap>
31
32class TrackingPage;
33
34class PLUGINDLLEXPORT TrackingViewStep : public Calamares::ViewStep
35{
36    Q_OBJECT
37
38public:
39    explicit TrackingViewStep( QObject* parent = nullptr );
40    virtual ~TrackingViewStep() override;
41
42    QString prettyName() const override;
43
44    QWidget* widget() override;
45
46    void next() override;
47    void back() override;
48
49    bool isNextEnabled() const override;
50    bool isBackEnabled() const override;
51
52    bool isAtBeginning() const override;
53    bool isAtEnd() const override;
54
55    void onLeave() override;
56
57    Calamares::JobList jobs() const override;
58
59    void setConfigurationMap( const QVariantMap& configurationMap ) override;
60
61private:
62    QVariantMap setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t );
63
64    TrackingPage* m_widget;
65    QString m_installTrackingUrl;
66    QString m_machineTrackingStyle;
67
68    struct TrackingEnabled
69    {
70        bool settingEnabled;  // Enabled in config file
71        bool userEnabled;     // User checked "yes"
72
73        TrackingEnabled()
74            : settingEnabled( false )
75            , userEnabled( false )
76        {}
77
78        bool enabled() const { return settingEnabled && userEnabled; }
79    };
80    TrackingEnabled m_installTracking, m_machineTracking, m_userTracking;
81
82    inline TrackingEnabled& tracking( TrackingType t )
83    {
84        if (t == TrackingType::UserTracking)
85            return m_userTracking;
86        else if (t == TrackingType::MachineTracking)
87            return m_machineTracking;
88        else
89            return m_installTracking;
90    }
91};
92
93CALAMARES_PLUGIN_FACTORY_DECLARATION( TrackingViewStepFactory )
94
95#endif // TRACKINGVIEWSTEP_H
Note: See TracBrowser for help on using the repository browser.