File indexing completed on 2024-05-19 05:37:51

0001 /*
0002     SPDX-FileCopyrightText: 2008 Alex Merry <alex.merry@kdemail.net>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-or-later
0005 */
0006 #pragma once
0007 
0008 #include <QUrl>
0009 
0010 #include "modeljob.h"
0011 
0012 class AddEditPlaceJob : public ModelJob
0013 {
0014 public:
0015     AddEditPlaceJob(KFilePlacesModel *model, QModelIndex index, const QVariantMap &parameters, QObject *parent = nullptr)
0016         : ModelJob(parent, model, index, (index.isValid() ? "Edit" : "Add"), parameters)
0017         , m_text(parameters[QStringLiteral("Name")].toString())
0018         , m_url(parameters[QStringLiteral("Url")].toUrl())
0019         , m_icon(parameters[QStringLiteral("Icon")].toString())
0020     {
0021     }
0022 
0023     void start() override
0024     {
0025         if (m_index.isValid()) {
0026             m_model->editPlace(m_index, m_text, m_url, m_icon);
0027         } else {
0028             m_model->addPlace(m_text, m_url, m_icon);
0029         }
0030     }
0031 
0032 private:
0033     QString m_text;
0034     QUrl m_url;
0035     QString m_icon;
0036 };
0037 
0038 class RemovePlaceJob : public ModelJob
0039 {
0040 public:
0041     RemovePlaceJob(KFilePlacesModel *model, const QModelIndex &index, QObject *parent)
0042         : ModelJob(parent, model, index, QStringLiteral("Remove"))
0043     {
0044     }
0045 
0046     void start() override
0047     {
0048         m_model->removePlace(m_index);
0049     }
0050 };
0051 
0052 class ShowPlaceJob : public ModelJob
0053 {
0054 public:
0055     ShowPlaceJob(KFilePlacesModel *model, const QModelIndex &index, bool show = true, QObject *parent = nullptr)
0056         : ModelJob(parent, model, index, (show ? "Show" : "Hide"))
0057         , m_show(show)
0058     {
0059     }
0060 
0061     void start() override
0062     {
0063         m_model->setPlaceHidden(m_index, m_show);
0064     }
0065 
0066 private:
0067     bool m_show;
0068 };
0069 
0070 class TeardownDeviceJob : public ModelJob
0071 {
0072 public:
0073     TeardownDeviceJob(KFilePlacesModel *model, const QModelIndex &index, QObject *parent = nullptr)
0074         : ModelJob(parent, model, index, QStringLiteral("Teardown Device"))
0075     {
0076     }
0077 
0078     void start() override
0079     {
0080         m_model->requestTeardown(m_index);
0081     }
0082 };
0083 
0084 #include "setupdevicejob.h"