InterfaceGPS 0.1.0
Interface embarquée Qt pour navigation, multimédia, caméra et télémétrie
Chargement...
Recherche...
Aucune correspondance
clavier.h
Aller à la documentation de ce fichier.
1
9#ifndef CLAVIER_H
10#define CLAVIER_H
11
12#include <QDialog>
13#include <QPushButton>
14#include <QGridLayout>
15#include <QLineEdit>
16#include <QListWidget>
17#include <QSettings>
18#include <QTimer>
19#include <QMap>
20
28class Clavier : public QDialog
29{
30 Q_OBJECT
31
32public:
37 explicit Clavier(QWidget *parent = nullptr);
38
43 QString getText() const;
44
49 void setInitialText(const QString &text);
50
55 void displaySuggestions(const QStringList &suggestions);
56
57signals:
64 void textChangedExternally(const QString &text);
65
66private slots:
67 // --- GESTION DES TOUCHES CLASSIQUES ---
68 void handleButton();
69 void deleteChar();
70 void validateText();
71 void toggleShift();
72 void addSpace();
73 void addUnderscore();
74
75 // --- GESTION DES APPUI LONGS (ACCENTS) ---
76 void handleLongPress();
77 void insertAccent();
78 void startLongPress();
79 void stopLongPress();
80
81 // --- GESTION DE LA SUPPRESSION CONTINUE ---
82 void startDeleteDelay();
83 void startDelete();
84 void stopDelete();
85
86 // --- GESTION DES DISPOSITIONS ---
87 void switchKeyboard();
88 void switchLayout();
89
90private:
91 // --- COMPOSANTS GRAPHIQUES ---
92 QLineEdit *lineEdit;
93 QListWidget *suggestionList;
94 QGridLayout *gridLayout;
95
96 QPushButton *shiftButton;
97 QPushButton *switchButton;
98 QPushButton *langueButton;
99 QPushButton *apostropheButton;
100 QPushButton *currentLongPressButton = nullptr;
101
102 // --- LISTES DE TOUCHES (POUR BASCULE DYNAMIQUE) ---
103 QList<QPushButton*> allButtons;
104 QList<QPushButton*> symbolButtons;
105 QList<QPushButton*> row1Buttons;
106 QList<QPushButton*> row2Buttons;
107 QList<QPushButton*> row3Buttons;
108
109 // --- GESTIONNAIRES D'INTERACTION ---
110 QMap<QString, QStringList> accentMap;
111 QTimer *deleteTimer;
112 QTimer *deleteDelayTimer;
113 QTimer *longPressTimer;
114 QWidget *accentPopup = nullptr;
115
116 // --- ÉTAT INTERNE ---
117 enum KeyboardLayout { AZERTY, QWERTY };
118 KeyboardLayout currentLayout;
119
120 bool majusculeActive;
121 bool isSymbolMode;
122 bool shiftLock = false;
123
124 QStringList usageHistory;
125
126 // --- MÉTHODES INTERNES ---
127 void updateKeys();
128 void updateKeyboardLayout();
129 void showAccentPopup(QPushButton* button);
130 void hideAccentPopup();
131 void loadUsageHistory();
132 void saveUsageHistory() const;
133};
134
135#endif // CLAVIER_H
Interface de saisie tactile sur mesure pour l'application embarquée. S'ouvre sous forme de boîte de d...
Definition clavier.h:29
QString getText() const
Récupère le texte final saisi par l'utilisateur une fois le clavier validé.
Definition clavier.cpp:349
void textChangedExternally(const QString &text)
Émis à chaque fois qu'une touche modifie le texte. Permet à l'application en arrière-plan (ex: Naviga...
void displaySuggestions(const QStringList &suggestions)
Met à jour la liste déroulante des suggestions au-dessus du clavier.
Definition clavier.cpp:358
void setInitialText(const QString &text)
Pré-remplit la barre de saisie à l'ouverture du clavier.
Definition clavier.cpp:353