#include <widgetLigne.h>
Connecteurs publics | |
void | cliqueMenu (QAction *) |
Choix de l'action à realiser. | |
void | miseAJourListe () |
Mise a jour des listes de lignes des signets. | |
Fonctions membres publiques | |
WidgetLigne (Editeur *p) | |
Constructeur. | |
virtual void | resizeEvent (QResizeEvent *e) |
Taille de la WidgetLigne. | |
WidgetListe * | getListe (int i) |
Récupère un signet. | |
int | enleveLigne (int i) |
Enlève une ligne à un signet. | |
int | ajoutLigne (int i=-1) |
Ajoute une ligne ou l'enlève d'un signet si elle existe deja. | |
void | ajoutWidgetListe (WidgetListe *w) |
Ajoute un signet dans la liste des signets. | |
void | ajoutWidgetListe (QAction *a, QString t, QString i) |
Ajoute un signet dans la liste des signets. | |
void | afficheListe (int) |
int | listeContientLigne () |
Retourne le numéro du signet contenant la ligne courante. | |
void | incrementeListe (int i) |
Change la liste contenant la ligne courante. | |
void | chargement () |
Récupération des signets. | |
void | miseAJourMargin () |
Taille du widgetLigne. | |
void | miseAJourWidgetListe () |
Mise à jour de la liste des signets. | |
WidgetListe * | existeListe (QString t, QString c) |
Vérifie l'existence d'un WidgetListe. | |
void | enleveWidgetListe (WidgetListe *w) |
Enlève un WidgetListe de la liste des signets. | |
void | incrementeLigneListe (int debut, int difference) |
Modifie les valeurs des lignes dans les listes. | |
Fonctions membres protégées | |
virtual void | paintEvent (QPaintEvent *) |
fonction appelée pour afficher les numéros de ligne et les signets, reféfinition de QWidget::paintEvent | |
virtual void | mousePressEvent (QMouseEvent *) |
fonction appelée au clic de la souris, reféfinition de QWidget::mousePressEvent | |
Attributs privés | |
Editeur * | editeur_texte |
QPixmap * | mon_image |
int | numero_premiere_ligne |
QRectF | rectangle |
QPointF | position_layout |
int | vertical_scroll_bar_value |
int | ligne_courante |
QList< WidgetListe * > | ma_liste |
int | taille_image |
bool | ligne_a_droite |
C'est la classe gérant l'affichage du numéro des lignes et des signets sur le côté gauche de l'éditeur
Elle récupère le nombre de lignes du fichier et peut ainsi en déduire la taille nécesaire pour la widget
Lorsqu'un clic survient sur la widget, un calcul survient pour découvrir sur quel ligne l'évènement a eu lieu : _ si c'est un clic gauche , on affiche le premier signet _ si c'est un clic droit, un affiche le signet suivant _ si c'est un clic central on affiche un menu avec l'ensemble des signets, un lien vers l'ouverture des préférences ainsi que le choix d'inverser l'affichage des lignes et des signets.
WidgetLigne::WidgetLigne | ( | Editeur * | p | ) |
void WidgetLigne::afficheListe | ( | int | numero | ) |
int WidgetLigne::ajoutLigne | ( | int | i = -1 |
) |
Ajoute une ligne ou l'enlève d'un signet si elle existe deja.
Si la ligne courante est contenu dans la widgetliste dont le numéro est passé en parmètre alors on la supprime sinon on l'y ajoute Même opération si le numéro de la liste n'est pas connu sauf que tout s epasse dans la première widgetliste
i | : numéro de la widgetliste dans laquelle on ajoute ou retire la ligne courante |
void WidgetLigne::ajoutWidgetListe | ( | QAction * | a, | |
QString | t, | |||
QString | i | |||
) |
Ajoute un signet dans la liste des signets.
Crée un signet à partir des paramètres et l'ajoute dans la liste des signets
a | : action lié au signet | |
t | : nom du signet | |
i | : chemin de l'image du signet |
void WidgetLigne::ajoutWidgetListe | ( | WidgetListe * | w | ) |
Ajoute un signet dans la liste des signets.
w | : ajout une widgetListe deja créee |
void WidgetLigne::chargement | ( | ) |
Récupération des signets.
Récupère les signets contenu sur l'ordinateur de l'utilisateur et les ajoute dans la liste des signets
void WidgetLigne::cliqueMenu | ( | QAction * | a | ) | [slot] |
Choix de l'action à realiser.
Fonction permettant de savoir quel ation du menu ouvert par le clic central de la souris a été activé : _ soit c'est l'inversement des positions entre les lignes et les signets _ soit on ajoute une ligne à l'action relié au signet
w | : WidgetListe à supprimer |
int WidgetLigne::enleveLigne | ( | int | i | ) |
Enlève une ligne à un signet.
Enlève la ligne courante(sur laquelle on a cliqué) de la widgetliste au numéro passé en paramètre
i | : numéro de la liste dans laquelle on retire la ligne courante |
void WidgetLigne::enleveWidgetListe | ( | WidgetListe * | w | ) |
Enlève un WidgetListe de la liste des signets.
Supprime le widgetListe passé en paramètre de la liste des signets
w | : WidgetListe à supprimer |
WidgetListe * WidgetLigne::existeListe | ( | QString | t, | |
QString | c | |||
) |
Vérifie l'existence d'un WidgetListe.
Vérifie l'existence de la liste ayant pour nom et chemin de l'image les données passées en paramètre Si on a une correspondance, on renvoit la WidgetListe
t | : nom du signet | |
c | : chemin de l'image du signet |
WidgetListe * WidgetLigne::getListe | ( | int | i | ) |
Récupère un signet.
i | : le numéro du signet à récupérer dans la liste des signets |
void WidgetLigne::incrementeLigneListe | ( | int | debut, | |
int | difference | |||
) |
Modifie les valeurs des lignes dans les listes.
Change la valeur des lignes contenue dans chaque liste de fichier en y ajoutant la différence pour toutes les lignes supérieures à start
debut | : lignes à partir de laquelle on ajoute la différence | |
difference | : valeur à ajouter aux lignes |
void WidgetLigne::incrementeListe | ( | int | i | ) |
Change la liste contenant la ligne courante.
Si il n'y a qu'un signet, alors on ajoute la ligne courante a ce signet Si le signet est le dernier de la liste on l'enlève de cette liste Sinon on insére le signet dans la liste suivant le numéro de la liste passé en paramètre et on l'enlève de cette dernière
i,: | le numéro du signet contenant la ligne courante |
int WidgetLigne::listeContientLigne | ( | ) |
Retourne le numéro du signet contenant la ligne courante.
void WidgetLigne::miseAJourListe | ( | ) | [slot] |
Mise a jour des listes de lignes des signets.
Suppression des lignes dans la liste des lignes des signet étant après la dernière ligne du document
void WidgetLigne::miseAJourMargin | ( | ) |
Taille du widgetLigne.
Calcul la taille nécessaire en largeur pour le widgetLigne et impose la marge en conséquence pour l' Editeur relié à la widgetLigne
void WidgetLigne::miseAJourWidgetListe | ( | ) |
Mise à jour de la liste des signets.
Lorsque l'utilisateur a modifié ces signets, on vérifie qu'il n'a pas supprimé des signets existant, si c'est le cas on les supprime de la liste des signets et on ajoute les signets qu'il a crée.
void WidgetLigne::mousePressEvent | ( | QMouseEvent * | e | ) | [protected, virtual] |
fonction appelée au clic de la souris, reféfinition de QWidget::mousePressEvent
Lorsqu'un clic survient sur la widget, un calcul survient pour découvrir sur quel ligne l'évènement a eu lieu : _ si c'est un clic gauche , on affiche le premier signet _ si c'est un clic droit, un affiche le signet suivant _ si c'est un clic central on affiche un menu avec l'ensemble des signets, un lien vers l'ouverture des préférences ainsi que le choix d'inverser l'affichage des lignes et des signets.
QMouseEvent* | e : contient les paramètres décrivant l'évènement de la souris |
void WidgetLigne::paintEvent | ( | QPaintEvent * | e | ) | [protected, virtual] |
fonction appelée pour afficher les numéros de ligne et les signets, reféfinition de QWidget::paintEvent
On parcourt le document à la recherche de la bonne ligne à afficher On parcourt le document block par block, on compare la position des block et de la scrollBar Une fois trouvé la ligne correspondante on a juste à afficher le numéro de la ligne Pour la ligne dont on affiche le numéro on vérifie si elle est contenu dans un signet, Si c'est le cas on affiche l'image du signet correpondant
QPaintEvent* | e : contient les paramètres décrivant le style à appliquer |
void WidgetLigne::resizeEvent | ( | QResizeEvent * | e | ) | [virtual] |
Taille de la WidgetLigne.
Rend la WidgetLigne à la même taille que l' Editeur auquel elle est lié
e | : contient les données relatifs aux évènements agissant sur la taille |
Editeur* WidgetLigne::editeur_texte [private] |
Editeur relié à la widgetLigne
bool WidgetLigne::ligne_a_droite [private] |
ordre dans lequel on affiche les lignes et les signets, si c'est vrai on affiche les signets à gauche et les ligne a droite, on fait l'inverse sinon
int WidgetLigne::ligne_courante [private] |
Ligne sur laquelle on vient de cliquer
QList<WidgetListe*> WidgetLigne::ma_liste [private] |
liste de signets
QPixmap* WidgetLigne::mon_image [private] |
int WidgetLigne::numero_premiere_ligne [private] |
Récupère le numéro de la première ligne visible
QPointF WidgetLigne::position_layout [private] |
point en haut à gauche du rectangle
QRectF WidgetLigne::rectangle [private] |
rectanle lié à la ligne courante de Editeur
int WidgetLigne::taille_image [private] |
taille de l'image des signets, elle se modifie avec les zoom
int WidgetLigne::vertical_scroll_bar_value [private] |
position de la scrollBar vertical de Editeur