File indexing completed on 2024-05-12 05:22:23
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Daniel Vrátil <dvratil@redhat.com> 0003 * SPDX-FileCopyrightText: 2019 David Barchiesi <david@barchie.si> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #pragma once 0009 0010 #include "kgapidrive_export.h" 0011 0012 #include <QSharedDataPointer> 0013 #include <QVariant> 0014 0015 namespace KGAPI2 0016 { 0017 namespace Drive 0018 { 0019 0020 /** 0021 * SearchQuery class should be used as a base class for building file/team search queries. 0022 */ 0023 class KGAPIDRIVE_EXPORT SearchQuery 0024 { 0025 public: 0026 enum CompareOperator { Contains, Equals, NotEquals, Less, LessOrEqual, Greater, GreaterOrEqual, In, Has }; 0027 0028 enum LogicOperator { And, Or }; 0029 0030 SearchQuery(LogicOperator op = And); 0031 SearchQuery(const SearchQuery &other); 0032 ~SearchQuery(); 0033 0034 SearchQuery &operator=(const SearchQuery &other); 0035 0036 void addQuery(const QString &field, CompareOperator op, const QString &value); 0037 void addQuery(const SearchQuery &query); 0038 0039 [[nodiscard]] bool isEmpty() const; 0040 0041 [[nodiscard]] QString serialize() const; 0042 0043 private: 0044 class Private; 0045 QSharedDataPointer<Private> d; 0046 }; 0047 } 0048 }