Projet

Général

Profil

AbulEduApplicationV1

L'utilisation de abuleduapplicationv1 permet d'automatiser les différentes choses suivantes:
  • spécifier le "nom long" des applications à l'aide de setAbeApplicationLongName
  • vérifier si une nouvelle version du logiciel est disponible en téléchargement
  • centraliser un connecteur réseau (QNetworkAccessManager) et les détections de proxy et autres authentifications
  • charger des éventuels plugins
  • stocker la valeur du ratio de mise à l'échelle des objets graphiques
  • ... et plus encore dès que vous nous donnez des idées :D

Installation

L'installation de la classe abuleduapplicationv1 se fait dans le dossier lib de votre logiciel, par exemple

git submodule add http://redmine.abuledu.org/ryxeo/leterrier-developpeurs/abuleduapplicationv1.git src/lib/abuleduapplicationv1

Mainteneur de la lib:

git clone ssh://gitolite3@redmine.abuledu.org/repositories-redmine/ryxeo/leterrier-developpeurs/abuleduapplicationv1.git

Modification du fichier.pro

Pensez à modifier votre fichier .pro pour ajouter cette nouvelle lib

#AbulEduApplicationV1
include(lib/abuleduapplicationv1/abuleduapplicationv1.pri)

Utilisation

L'utilisation est très simple, dans le main.cpp au lieu d'utiliser une QApplication on utilise alors une AbulEduApplicationV1:

#include "abuleduapplicationv1.h" 
#include "mainwindow.h" 

int main(int argc, char *argv[])
{
    AbulEduApplicationV1 a(argc, argv,"leterrier-demo","0.9.15","abuledu.org","leterrier");
    a.setAbeApplicationLongName(QObject::trUtf8("AbulÉdu LeTerrier -- Logiciel de démonstration"));

    MainWindow w;
    w.show();

    return a.exec();
}

Mise à l'échelle des objets graphiques

Pour que tous les objets graphiques restent d'une taille cohérente les uns par rapport aux autres, nous avons besoins de stocker et partager le facteur de mise à l'échelle.

  • setAbeApplicationDecorRatio(float);

Permet de stocker la valeur du ratio, à priori c'est AbulEduPageAccueilV1 qui s'en charge;

  • float getAbeApplicationDecorRatio();

Permet de récupérer le ratio et d'en déduire la bonne taille des objets graphiques à afficher;

Réutilisation du gestionnaire réseau

  • dans le fichier .h de votre classe, ajoutez un pointeur vers un QNetworkAccessManager

    QNetworkAccessManager *m_nam;
  • dans le fichier .cpp faites le pointer sur le QNetworkAccessManager de l'abuleduapplication

    m_nam = abeApp->getAbeNetworkAccessManager();

et c'est tout, vous bénéficiez comme ça de la configuration automatique qui est développée (et factorisée) dans abuleduapplicationv1.

Application unique

Si vous ne voulez pas que l'utilisateur puisse lancer plusieurs instances de votre application, il faut modifier votre main.cpp

    if (a.isRunning()) {
        return 0;
    }

Astuces

Dépendances

Cette classe dépend de

Redmine Appliance - Powered by TurnKey Linux