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 ¶meters, 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