1 #pragma once 2 #include "abstractnamespaceitem.h" 3 4 namespace ConnectionsTree { 5 6 class ServerItem; 7 8 class DatabaseItem : public AbstractNamespaceItem { 9 public: 10 DatabaseItem(unsigned int index, int keysCount, 11 QSharedPointer<Operations> operations, 12 QWeakPointer<TreeItem> parent, Model& model); 13 14 ~DatabaseItem(); 15 16 QByteArray getName() const override; 17 18 QByteArray getFullPath() const override; 19 20 QString getDisplayName() const override; 21 type()22 QString type() const override { return "database"; } 23 24 bool isEnabled() const override; 25 26 QVariantMap metadata() const override; 27 28 void setMetadata(const QString&, QVariant) override; 29 30 void getMemoryUsage(std::function<void(qlonglong)> callback) override; 31 32 void reload(std::function<void()> callback = std::function<void()>()); 33 34 protected: 35 void loadKeys(std::function<void()> callback = std::function<void()>(), 36 bool partialReload=false); 37 void unload(bool notify = true); 38 void performLiveUpdate(); 39 void filterKeys(const QRegExp& filter); 40 void resetFilter(); 41 42 QHash<QString, std::function<void()>> eventHandlers() override; 43 44 private: 45 QSharedPointer<QTimer> liveUpdateTimer(); 46 bool isLiveUpdateEnabled() const; 47 QVariantList filterHistoryTop10() const; 48 49 private: 50 unsigned int m_keysCount; 51 QSharedPointer<QTimer> m_liveUpdateTimer; 52 }; 53 54 } // namespace ConnectionsTree 55