File indexing completed on 2024-06-02 05:32:57
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Kevin Ottens <ervin@kde.org> 0003 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 0007 #ifndef DOMAIN_DATASOURCEQUERIES_H 0008 #define DOMAIN_DATASOURCEQUERIES_H 0009 0010 #include <QObject> 0011 0012 #include "datasource.h" 0013 #include "project.h" 0014 #include "queryresult.h" 0015 0016 namespace Domain { 0017 0018 class DataSourceQueries; 0019 0020 class DataSourceQueriesNotifier : public QObject 0021 { 0022 Q_OBJECT 0023 signals: 0024 void defaultSourceChanged(); 0025 0026 private: 0027 friend class DataSourceQueries; 0028 }; 0029 0030 class DataSourceQueries 0031 { 0032 public: 0033 typedef QSharedPointer<DataSourceQueries> Ptr; 0034 0035 DataSourceQueries(); 0036 virtual ~DataSourceQueries(); 0037 0038 DataSourceQueriesNotifier *notifier() const; 0039 0040 virtual bool isDefaultSource(DataSource::Ptr source) const = 0; 0041 void setDefaultSource(DataSource::Ptr source); 0042 0043 // HACK: Ugly right? Find me another way to mock changeDefaultSource then... 0044 #ifdef ZANSHIN_I_SWEAR_I_AM_IN_A_PRESENTATION_TEST 0045 public: 0046 #else 0047 private: 0048 #endif 0049 virtual void changeDefaultSource(DataSource::Ptr source) = 0; 0050 0051 public: 0052 virtual QueryResult<DataSource::Ptr>::Ptr findTopLevel() const = 0; 0053 virtual QueryResult<DataSource::Ptr>::Ptr findChildren(DataSource::Ptr source) const = 0; 0054 virtual QueryResult<DataSource::Ptr>::Ptr findAllSelected() const = 0; 0055 virtual QueryResult<Project::Ptr>::Ptr findProjects(DataSource::Ptr source) const = 0; 0056 }; 0057 0058 } 0059 0060 #endif // DOMAIN_DATASOURCEQUERIES_H