#include "ui_WorkAreaUi.h"
#include "frontends/WorkArea.h"
+#include "frontends/KeySymbol.h"
#include <QAbstractScrollArea>
#include <QTabBar>
/// is GuiView in fullscreen mode?
bool isFullScreen() const;
///
- void scheduleRedraw();
- ///
BufferView & bufferView();
///
BufferView const & bufferView() const;
///
- void redraw(bool update_metrics);
+ void scheduleRedraw(bool update_metrics);
/// return true if the key is part of a shortcut
bool queryKeySym(KeySymbol const & key, KeyModifier mod) const;
- /// Process Key pressed event.
- /// This needs to be public because it is accessed externally by GuiView.
- void processKeySym(KeySymbol const & key, KeyModifier mod);
bool inDialogMode() const;
void setDialogMode(bool mode);
double pixelRatio() const;
public Q_SLOTS:
+ /// Process Key pressed event.
+ /// This needs to be public because it is accessed externally by GuiView.
+ void processKeySym(KeySymbol const & key, KeyModifier mod);
///
void stopBlinkingCaret();
///
void busy(bool);
///
void bufferViewChanged();
+ /// send key event to CompressorProxy
+ void compressKeySym(KeySymbol sym, KeyModifier mod, bool isAutoRepeat);
private Q_SLOTS:
/// Scroll the BufferView.
void scrollTo(int value);
/// timer to limit triple clicks
void doubleClickTimeout();
- /// toggle the cursor's visibility
+ /// toggle the caret's visibility
void toggleCaret();
/// close this work area.
/// Slot for Buffer::closing signal.
}; // GuiWorkArea
+/// CompressorProxy adapted from Kuba Ober https://stackoverflow.com/a/21006207
+class CompressorProxy : public QObject
+{
+ Q_OBJECT
+ bool emitCheck(bool isAutoRepeat);
+ bool flag_;
+ // input: event to compress
+ Q_SLOT void slot(KeySymbol sym, KeyModifier mod, bool isAutoRepeat);
+ // output: compressed event
+ Q_SIGNAL void signal(KeySymbol sym, KeyModifier mod);
+public:
+ // No default constructor, since the proxy must be a child of the
+ // target object.
+ explicit CompressorProxy(GuiWorkArea * wa);
+};
+
+
class EmbeddedWorkArea : public GuiWorkArea
{
Q_OBJECT