vnote/src/iuniversalentry.h
Le Tan af3d380683 UniversalEntry: add m for ListFolderUE
- Ctrl+M: to list current item folder or the folder containing current
item using ListFolderUE.
2018-04-02 20:37:04 +08:00

122 lines
2.3 KiB
C++

#ifndef IUNIVERSALENTRY_H
#define IUNIVERSALENTRY_H
#include <QObject>
#include <QString>
// Interface for one Universal Entry.
// An entry may be used for different keys, in which case we could use an ID to
// identify.
class IUniversalEntry : public QObject
{
Q_OBJECT
public:
enum State
{
Idle,
Busy,
Success,
Fail,
Cancelled
};
IUniversalEntry(QObject *p_parent = nullptr)
: QObject(p_parent),
m_initialized(false),
m_widgetParent(NULL)
{
}
virtual ~IUniversalEntry()
{
}
// Return a description string for the entry.
virtual QString description(int p_id) const = 0;
// Return the widget to show to user.
virtual QWidget *widget(int p_id) = 0;
virtual void processCommand(int p_id, const QString &p_cmd) = 0;
// This UE is not used now. Free resources.
virtual void clear(int p_id) = 0;
// UE is hidden by the user.
virtual void entryHidden(int p_id)
{
Q_UNUSED(p_id);
}
// UE is shown by the user.
virtual void entryShown(int p_id, const QString &p_cmd)
{
Q_UNUSED(p_id);
Q_UNUSED(p_cmd);
}
// Select next item.
virtual void selectNextItem(int p_id, bool p_forward)
{
Q_UNUSED(p_id);
Q_UNUSED(p_forward);
}
// Select parent item.
virtual void selectParentItem(int p_id)
{
Q_UNUSED(p_id);
}
// Activate current item.
virtual void activate(int p_id)
{
Q_UNUSED(p_id);
}
// Ask the UE to stop asynchronously.
virtual void askToStop(int p_id)
{
Q_UNUSED(p_id);
}
virtual void toggleItemExpanded(int p_id)
{
Q_UNUSED(p_id);
}
virtual void sort(int p_id)
{
Q_UNUSED(p_id);
}
// Ask the UE to return current item folder path or the folder containing current
// item note.
virtual QString currentItemFolder(int p_id)
{
Q_UNUSED(p_id);
return QString();
}
void setWidgetParent(QWidget *p_parent)
{
m_widgetParent = p_parent;
}
signals:
void widgetUpdated();
void stateUpdated(IUniversalEntry::State p_state);
void requestHideUniversalEntry();
protected:
virtual void init() = 0;
bool m_initialized;
QWidget *m_widgetParent;
};
#endif // IUNIVERSALENTRY_H