File indexing completed on 2024-06-23 05:48:54

0001 /*
0002     This file is part of the Kasten Framework, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2009 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef KASTEN_IF_REPLACEUSERQUERYABLE_HPP
0010 #define KASTEN_IF_REPLACEUSERQUERYABLE_HPP
0011 
0012 // libfinddialog
0013 #include "finddirection.hpp"
0014 // Qt
0015 #include <QtPlugin>
0016 
0017 namespace Kasten {
0018 
0019 enum ReplaceBehaviour
0020 {
0021     ReplaceAll,
0022     SkipCurrent,
0023     ReplaceCurrent,
0024     CancelReplacing
0025 };
0026 
0027 namespace If {
0028 
0029 class ReplaceUserQueryable
0030 {
0031 public:
0032     virtual ~ReplaceUserQueryable();
0033 
0034 public: // API to be implemented
0035     virtual void queryContinue(FindDirection direction, int noOfReplacements) = 0;
0036     virtual void queryReplaceCurrent() = 0;
0037 
0038 public: // signals
0039     virtual void queryContinueFinished(bool result) = 0;
0040     virtual void queryReplaceCurrentFinished(Kasten::ReplaceBehaviour result) = 0;
0041 };
0042 
0043 inline ReplaceUserQueryable::~ReplaceUserQueryable() = default;
0044 
0045 }
0046 }
0047 
0048 Q_DECLARE_METATYPE(Kasten::ReplaceBehaviour)
0049 Q_DECLARE_INTERFACE(Kasten::If::ReplaceUserQueryable, "org.kde.kasten.if.replaceuserqueryable/1.0")
0050 
0051 #endif