File indexing completed on 2024-12-08 09:41:33
0001 /* 0002 This file is part of the KDE project 0003 SPDX-FileCopyrightText: 1999 David Faure <faure@kde.org> 0004 SPDX-FileCopyrightText: 2001, 2002, 2004-2006 Michael Brade <brade@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #ifndef kdirlister_h 0010 #define kdirlister_h 0011 0012 #include "kiowidgets_export.h" 0013 #include <kcoredirlister.h> 0014 0015 class QWidget; 0016 class KDirListerPrivate; 0017 0018 /** 0019 * @class KDirLister kdirlister.h <KDirLister> 0020 * 0021 * Subclass of KCoreDirLister which uses QWidgets to show error messages 0022 * and to associate jobs with windows. 0023 */ 0024 class KIOWIDGETS_EXPORT KDirLister : public KCoreDirLister 0025 { 0026 Q_OBJECT 0027 #if KIOCORE_ENABLE_DEPRECATED_SINCE(5, 82) 0028 Q_PROPERTY(bool autoErrorHandlingEnabled READ autoErrorHandlingEnabled) 0029 #endif 0030 0031 public: 0032 /** 0033 * Create a directory lister. 0034 */ 0035 KDirLister(QObject *parent = nullptr); 0036 0037 /** 0038 * Destroy the directory lister. 0039 */ 0040 ~KDirLister() override; 0041 0042 /** 0043 * Check whether auto error handling is enabled. 0044 * If enabled, it will show an error dialog to the user when an 0045 * error occurs. It is turned on by default. 0046 * @return true if auto error handling is enabled, false otherwise 0047 * @see setAutoErrorHandlingEnabled() 0048 */ 0049 bool autoErrorHandlingEnabled() const; // KF6 remove, already provided by KCoreDirLister 0050 0051 #if KIOCORE_ENABLE_DEPRECATED_SINCE(5, 82) 0052 /** 0053 * Enable or disable auto error handling. 0054 * If enabled, it will show an error dialog to the user when an 0055 * error occurs. It is turned on by default. 0056 * @param enable true to enable auto error handling, false to disable 0057 * @param parent the parent widget for the error dialogs, can be @c nullptr for 0058 * top-level 0059 * @see autoErrorHandlingEnabled() 0060 * @deprecated since 5.82, connect to the jobError() signal instead 0061 */ 0062 KIOCORE_DEPRECATED_VERSION(5, 82, "Connect to the jobError() signal instead") 0063 void setAutoErrorHandlingEnabled(bool enable, QWidget *parent); 0064 using KCoreDirLister::setAutoErrorHandlingEnabled; 0065 #endif 0066 0067 /** 0068 * Pass the main window this object is associated with 0069 * this is used for caching authentication data 0070 * @param window the window to associate with, @c nullptr to disassociate 0071 */ 0072 void setMainWindow(QWidget *window); 0073 0074 /** 0075 * Returns the main window associated with this object. 0076 * @return the associated main window, or @c nullptr if there is none 0077 */ 0078 QWidget *mainWindow(); 0079 0080 protected: 0081 #if KIOCORE_BUILD_DEPRECATED_SINCE(5, 82) 0082 /** 0083 * Reimplemented to customize error handling 0084 * @reimp 0085 */ 0086 void handleError(KIO::Job *) override; 0087 #endif 0088 0089 #if KIOCORE_BUILD_DEPRECATED_SINCE(5, 81) 0090 /** 0091 * Reimplemented to customize error handling 0092 * @reimp 0093 */ 0094 void handleErrorMessage(const QString &message) override; 0095 #endif 0096 0097 /** 0098 * Reimplemented to associate a window with new jobs 0099 * @reimp 0100 */ 0101 void jobStarted(KIO::ListJob *) override; 0102 0103 private: 0104 friend class KDirListerPrivate; 0105 std::unique_ptr<KDirListerPrivate> d; 0106 }; 0107 0108 #endif