mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-13 20:23:04 +02:00
Debut de gestion des categories sous forme de dossiers
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@19 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
parent
dd3a9f8894
commit
0f3b2926bc
@ -20,26 +20,20 @@ PanelAppareils::PanelAppareils(QWidget *parent) : QTreeWidget(parent) {
|
|||||||
// taille des elements
|
// taille des elements
|
||||||
setIconSize(QSize(50, 50));
|
setIconSize(QSize(50, 50));
|
||||||
|
|
||||||
QTreeWidgetItem *elmts_qet = new QTreeWidgetItem(this, QStringList(tr("Collection QET")));
|
// chargement des elements de la collection QET
|
||||||
elmts_qet -> setExpanded(true);
|
ajouterDossier(invisibleRootItem(), QETApp::commonElementsDir(), tr("Collection QET"));
|
||||||
QTreeWidgetItem *elmts_perso = new QTreeWidgetItem(this, QStringList(tr("Collection utilisateur")));
|
|
||||||
elmts_perso -> setExpanded(true);
|
|
||||||
|
|
||||||
// remplissage de la liste
|
// chargement des elements de la collection utilisateur
|
||||||
QDir dossier_elmts_qet(QETApp::commonElementsDir());
|
ajouterDossier(invisibleRootItem(), QETApp::customElementsDir(), tr("Collection utilisateur"));
|
||||||
QDir dossier_elmts_perso(QETApp::customElementsDir());
|
|
||||||
QStringList filtres("*.elmt");
|
|
||||||
QStringList fichiers1 = dossier_elmts_qet.entryList(filtres, QDir::Files, QDir::Name);
|
|
||||||
foreach(QString fichier, fichiers1) ajouterFichier(elmts_qet, QETApp::commonElementsDir()+fichier);
|
|
||||||
QStringList fichiers2 = dossier_elmts_perso.entryList(filtres, QDir::Files, QDir::Name);
|
|
||||||
foreach(QString fichier, fichiers2) ajouterFichier(elmts_perso, QETApp::customElementsDir()+fichier);
|
|
||||||
|
|
||||||
// force du noir sur une alternance de blanc (comme le schema) et de bleu clair
|
// force du noir sur une alternance de blanc (comme le schema) et de gris
|
||||||
|
// clair, avec du blanc sur bleu pas trop fonce pour la selection
|
||||||
QPalette qp = palette();
|
QPalette qp = palette();
|
||||||
setAlternatingRowColors(true);
|
|
||||||
qp.setColor(QPalette::Text, Qt::black);
|
qp.setColor(QPalette::Text, Qt::black);
|
||||||
qp.setColor(QPalette::Base, Qt::white);
|
qp.setColor(QPalette::Base, Qt::white);
|
||||||
//qp.setColor(QPalette::AlternateBase, QColor(240, 255, 255));
|
qp.setColor(QPalette::AlternateBase, QColor("#e8e8e8"));
|
||||||
|
qp.setColor(QPalette::Highlight, QColor("#678db2"));
|
||||||
|
qp.setColor(QPalette::HighlightedText, Qt::white);
|
||||||
setPalette(qp);
|
setPalette(qp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,6 +87,56 @@ void PanelAppareils::startDrag(Qt::DropActions /*supportedActions*/) {
|
|||||||
delete appar;
|
delete appar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Methode privee permettant d'ajouter un dossier au panel d'appareils
|
||||||
|
@param qtwi_parent QTreeWidgetItem parent sous lequel sera insere l'element
|
||||||
|
@param dossier Chemin absolu du dossier a inserer
|
||||||
|
@param nom Parametre facultatif permettant de forcer le nom du dossier.
|
||||||
|
S'il n'est pas precise, la fonction ouvre le fichier qet_directory situe
|
||||||
|
dans le dossier et y lit le nom du dossier ; si ce fichier n'existe pas ou
|
||||||
|
est invalide, la fonction utilise le nom du dossier.
|
||||||
|
*/
|
||||||
|
void PanelAppareils::ajouterDossier(QTreeWidgetItem *qtwi_parent, QString adr_dossier, QString nom) {
|
||||||
|
QDir dossier(adr_dossier);
|
||||||
|
if (!dossier.exists()) return;
|
||||||
|
adr_dossier = dossier.canonicalPath() + "/";
|
||||||
|
|
||||||
|
// recupere le nom de la categorie
|
||||||
|
QString nom_categorie = nom;
|
||||||
|
if (nom == QString()) {
|
||||||
|
QFile config_dossier(adr_dossier + "qet_directory");
|
||||||
|
// verifie l'existence du fichier
|
||||||
|
if (config_dossier.exists()) {
|
||||||
|
// ouvre le fichier
|
||||||
|
if (config_dossier.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
|
// lit la premiere ligne
|
||||||
|
char data[512];
|
||||||
|
if (config_dossier.readLine(data, sizeof(data)) != -1) {
|
||||||
|
nom_categorie = QString(data).trimmed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (nom_categorie == QString()) nom_categorie = dossier.dirName();
|
||||||
|
}
|
||||||
|
|
||||||
|
// creation du QTreeWidgetItem representant le dossier
|
||||||
|
QTreeWidgetItem *qtwi_dossier = new QTreeWidgetItem(qtwi_parent, QStringList(nom_categorie));
|
||||||
|
QLinearGradient t(0, 0, 200, 0);
|
||||||
|
t.setColorAt(0, QColor("#e8e8e8"));
|
||||||
|
t.setColorAt(1, QColor("#ffffff"));
|
||||||
|
qtwi_dossier -> setBackground(0, QBrush(t));
|
||||||
|
qtwi_dossier -> setExpanded(true);
|
||||||
|
|
||||||
|
// ajout des sous-categories / sous-dossiers
|
||||||
|
QStringList dossiers = dossier.entryList(QStringList(), QDir::AllDirs | QDir::NoSymLinks | QDir::NoDotAndDotDot, QDir::Name);
|
||||||
|
foreach(QString dossier, dossiers) ajouterDossier(qtwi_dossier, adr_dossier + dossier);
|
||||||
|
|
||||||
|
// ajout des elements / fichiers
|
||||||
|
QStringList fichiers = dossier.entryList(QStringList("*.elmt"), QDir::Files, QDir::Name);
|
||||||
|
foreach(QString fichier, fichiers) ajouterFichier(qtwi_dossier, adr_dossier + fichier);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Methode privee permettant d'ajouter un element au panel d'appareils
|
Methode privee permettant d'ajouter un element au panel d'appareils
|
||||||
@param qtwi_parent QTreeWidgetItem parent sous lequel sera insere l'element
|
@param qtwi_parent QTreeWidgetItem parent sous lequel sera insere l'element
|
||||||
|
@ -17,5 +17,6 @@
|
|||||||
void startDrag(Qt::DropActions);
|
void startDrag(Qt::DropActions);
|
||||||
private:
|
private:
|
||||||
void ajouterFichier(QTreeWidgetItem *, QString);
|
void ajouterFichier(QTreeWidgetItem *, QString);
|
||||||
|
void ajouterDossier(QTreeWidgetItem *, QString, QString = QString());
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
17
schema.cpp
17
schema.cpp
@ -63,8 +63,11 @@ void Schema::drawBackground(QPainter *p, const QRectF &r) {
|
|||||||
p -> restore();
|
p -> restore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Exporte le schema vers une image
|
||||||
|
@return Une QImage representant le schema
|
||||||
|
*/
|
||||||
QImage Schema::toImage() {
|
QImage Schema::toImage() {
|
||||||
|
|
||||||
QRectF vue = itemsBoundingRect();
|
QRectF vue = itemsBoundingRect();
|
||||||
// la marge = 5 % de la longueur necessaire
|
// la marge = 5 % de la longueur necessaire
|
||||||
qreal marge = 0.05 * vue.width();
|
qreal marge = 0.05 * vue.width();
|
||||||
@ -90,7 +93,8 @@ QImage Schema::toImage() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Exporte tout ou partie du schema
|
Exporte tout ou partie du schema
|
||||||
@param schema Booleen (a vrai par defaut) indiquant si le XML genere doit representer tout le schema ou seulement les elements selectionnes
|
@param schema Booleen (a vrai par defaut) indiquant si le XML genere doit
|
||||||
|
representer tout le schema ou seulement les elements selectionnes
|
||||||
@return Un Document XML (QDomDocument)
|
@return Un Document XML (QDomDocument)
|
||||||
*/
|
*/
|
||||||
QDomDocument Schema::toXml(bool schema) {
|
QDomDocument Schema::toXml(bool schema) {
|
||||||
@ -189,12 +193,11 @@ QDomDocument Schema::toXml(bool schema) {
|
|||||||
return(document);
|
return(document);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Schema::reset() {
|
|
||||||
/// @todo implementer cette fonction
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Importe le schema decrit dans un document XML. Si une position est precisee, les elements importes sont positionnes de maniere a ce que le coin superieur gauche du plus petit rectangle pouvant les entourant tous (le bounding rect) soit a cette position.
|
Importe le schema decrit dans un document XML. Si une position est
|
||||||
|
precisee, les elements importes sont positionnes de maniere a ce que le
|
||||||
|
coin superieur gauche du plus petit rectangle pouvant les entourant tous
|
||||||
|
(le bounding rect) soit a cette position.
|
||||||
@param document Le document XML a analyser
|
@param document Le document XML a analyser
|
||||||
@param position La position du schema importe
|
@param position La position du schema importe
|
||||||
@return true si l'import a reussi, false sinon
|
@return true si l'import a reussi, false sinon
|
||||||
|
1
schema.h
1
schema.h
@ -24,7 +24,6 @@
|
|||||||
QImage toImage();
|
QImage toImage();
|
||||||
QDomDocument toXml(bool = true);
|
QDomDocument toXml(bool = true);
|
||||||
bool fromXml(QDomDocument &, QPointF = QPointF());
|
bool fromXml(QDomDocument &, QPointF = QPointF());
|
||||||
void reset();
|
|
||||||
QGraphicsItem *getElementById(uint id);
|
QGraphicsItem *getElementById(uint id);
|
||||||
inline void setAffichageGrille(bool ddg) { doit_dessiner_grille = ddg; }
|
inline void setAffichageGrille(bool ddg) { doit_dessiner_grille = ddg; }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user