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
|
||||
setIconSize(QSize(50, 50));
|
||||
|
||||
QTreeWidgetItem *elmts_qet = new QTreeWidgetItem(this, QStringList(tr("Collection QET")));
|
||||
elmts_qet -> setExpanded(true);
|
||||
QTreeWidgetItem *elmts_perso = new QTreeWidgetItem(this, QStringList(tr("Collection utilisateur")));
|
||||
elmts_perso -> setExpanded(true);
|
||||
// chargement des elements de la collection QET
|
||||
ajouterDossier(invisibleRootItem(), QETApp::commonElementsDir(), tr("Collection QET"));
|
||||
|
||||
// remplissage de la liste
|
||||
QDir dossier_elmts_qet(QETApp::commonElementsDir());
|
||||
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);
|
||||
// chargement des elements de la collection utilisateur
|
||||
ajouterDossier(invisibleRootItem(), QETApp::customElementsDir(), tr("Collection utilisateur"));
|
||||
|
||||
// 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();
|
||||
setAlternatingRowColors(true);
|
||||
qp.setColor(QPalette::Text, Qt::black);
|
||||
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);
|
||||
}
|
||||
|
||||
@ -93,6 +87,56 @@ void PanelAppareils::startDrag(Qt::DropActions /*supportedActions*/) {
|
||||
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
|
||||
@param qtwi_parent QTreeWidgetItem parent sous lequel sera insere l'element
|
||||
|
@ -17,5 +17,6 @@
|
||||
void startDrag(Qt::DropActions);
|
||||
private:
|
||||
void ajouterFichier(QTreeWidgetItem *, QString);
|
||||
void ajouterDossier(QTreeWidgetItem *, QString, QString = QString());
|
||||
};
|
||||
#endif
|
||||
|
17
schema.cpp
17
schema.cpp
@ -63,8 +63,11 @@ void Schema::drawBackground(QPainter *p, const QRectF &r) {
|
||||
p -> restore();
|
||||
}
|
||||
|
||||
/**
|
||||
Exporte le schema vers une image
|
||||
@return Une QImage representant le schema
|
||||
*/
|
||||
QImage Schema::toImage() {
|
||||
|
||||
QRectF vue = itemsBoundingRect();
|
||||
// la marge = 5 % de la longueur necessaire
|
||||
qreal marge = 0.05 * vue.width();
|
||||
@ -90,7 +93,8 @@ QImage Schema::toImage() {
|
||||
|
||||
/**
|
||||
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)
|
||||
*/
|
||||
QDomDocument Schema::toXml(bool schema) {
|
||||
@ -189,12 +193,11 @@ QDomDocument Schema::toXml(bool schema) {
|
||||
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 position La position du schema importe
|
||||
@return true si l'import a reussi, false sinon
|
||||
|
Loading…
x
Reference in New Issue
Block a user