1 /*
2     SPDX-FileCopyrightText: 2008 Alex Merry <alex.merry@kdemail.net>
3 
4     SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6 #pragma once
7 
8 #include <QUrl>
9 
10 #include "modeljob.h"
11 
12 class AddEditPlaceJob : public ModelJob
13 {
14 public:
15     AddEditPlaceJob(KFilePlacesModel *model, QModelIndex index, const QVariantMap &parameters, QObject *parent = nullptr)
16         : ModelJob(parent, model, index, (index.isValid() ? "Edit" : "Add"), parameters)
17         , m_text(parameters[QStringLiteral("Name")].toString())
18         , m_url(parameters[QStringLiteral("Url")].toUrl())
19         , m_icon(parameters[QStringLiteral("Icon")].toString())
20     {
21     }
22 
start()23     void start() override
24     {
25         if (m_index.isValid()) {
26             m_model->editPlace(m_index, m_text, m_url, m_icon);
27         } else {
28             m_model->addPlace(m_text, m_url, m_icon);
29         }
30     }
31 
32 private:
33     QString m_text;
34     QUrl m_url;
35     QString m_icon;
36 };
37 
38 class RemovePlaceJob : public ModelJob
39 {
40 public:
RemovePlaceJob(KFilePlacesModel * model,const QModelIndex & index,QObject * parent)41     RemovePlaceJob(KFilePlacesModel *model, const QModelIndex &index, QObject *parent)
42         : ModelJob(parent, model, index, QStringLiteral("Remove"))
43     {
44     }
45 
start()46     void start() override
47     {
48         m_model->removePlace(m_index);
49     }
50 };
51 
52 class ShowPlaceJob : public ModelJob
53 {
54 public:
55     ShowPlaceJob(KFilePlacesModel *model, const QModelIndex &index, bool show = true, QObject *parent = nullptr)
56         : ModelJob(parent, model, index, (show ? "Show" : "Hide"))
57         , m_show(show)
58     {
59     }
60 
start()61     void start() override
62     {
63         m_model->setPlaceHidden(m_index, m_show);
64     }
65 
66 private:
67     bool m_show;
68 };
69 
70 class TeardownDeviceJob : public ModelJob
71 {
72 public:
73     TeardownDeviceJob(KFilePlacesModel *model, const QModelIndex &index, QObject *parent = nullptr)
74         : ModelJob(parent, model, index, QStringLiteral("Teardown Device"))
75     {
76     }
77 
start()78     void start() override
79     {
80         m_model->requestTeardown(m_index);
81     }
82 };
83 
84 #include "setupdevicejob.h"
85