File indexing completed on 2024-05-12 04:46:01

0001 /*
0002  * <one line to give the program's name and a brief idea of what it does.>
0003  * Copyright (C) 2019  camilo <chiguitar@unal.edu.co>
0004  *
0005  * This program is free software: you can redistribute it and/or modify
0006  * it under the terms of the GNU General Public License as published by
0007  * the Free Software Foundation, either version 3 of the License, or
0008  * (at your option) any later version.
0009  *
0010  * This program is distributed in the hope that it will be useful,
0011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0013  * GNU General Public License for more details.
0014  *
0015  * You should have received a copy of the GNU General Public License
0016  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
0017  */
0018 
0019 #pragma once
0020 
0021 #include <MauiKit3/Core/mauilist.h>
0022 
0023 /**
0024  * @brief The PathList class
0025  */
0026 class PathList : public MauiList
0027 {
0028     Q_OBJECT
0029 
0030     Q_PROPERTY(QString path READ getPath WRITE setPath NOTIFY pathChanged REQUIRED)
0031 
0032 public:
0033     PathList(QObject *parent = nullptr);
0034 
0035     const FMH::MODEL_LIST &items() const override;
0036 
0037     /**
0038      * @brief setPath
0039      * @param path
0040      */
0041     void setPath(const QString &path);
0042 
0043     /**
0044      * @brief getPath
0045      * @return
0046      */
0047     QString getPath() const;
0048 
0049     void componentComplete() override final;
0050 
0051 private:
0052     FMH::MODEL_LIST list;
0053     QString m_path;
0054 
0055     static FMH::MODEL_LIST splitPath(const QString &path);
0056     void setList();
0057 
0058 Q_SIGNALS:
0059     /**
0060      * @brief pathChanged
0061      */
0062     void pathChanged();
0063 };