Add an dialogwaiting ! and use it to open project.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2101 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
cfdev 2013-04-11 06:55:00 +00:00
parent e4b8822caf
commit 918aa64972
5 changed files with 213 additions and 0 deletions

View File

@ -29,6 +29,8 @@
#include "qetmessagebox.h"
#include "titleblocktemplate.h"
#include "ui/dialogwaiting.h"
QString QETProject::integration_category_name = "import";
/**
@ -956,15 +958,24 @@ void QETProject::readDiagramsXml() {
// map destinee a accueillir les schemas
QMultiMap<int, Diagram *> loaded_diagrams;
//show DialogWaiting
DialogWaiting* dlgWaiting = new DialogWaiting();
dlgWaiting -> setModal(true);
dlgWaiting -> show();
dlgWaiting -> setTitle( tr("<b>Ouverture du projet en cours...</b>") );
// recherche les schemas dans le projet
QDomNodeList diagram_nodes = document_root_.elementsByTagName("diagram");
dlgWaiting->setProgressBarRange(0, diagram_nodes.length());
for (uint i = 0 ; i < diagram_nodes.length() ; ++ i) {
dlgWaiting->setProgressBar(i+1);
if (diagram_nodes.at(i).isElement()) {
QDomElement diagram_xml_element = diagram_nodes.at(i).toElement();
Diagram *diagram = new Diagram();
diagram -> setProject(this);
bool diagram_loading = diagram -> initFromXml(diagram_xml_element);
if (diagram_loading) {
dlgWaiting->setDetail( diagram->title() );
// recupere l'attribut order du schema
int diagram_order = -1;
if (!QET::attributeIsAnInteger(diagram_xml_element, "order", &diagram_order)) diagram_order = 500000;
@ -979,6 +990,8 @@ void QETProject::readDiagramsXml() {
foreach(Diagram *diagram, loaded_diagrams.values()) {
addDiagram(diagram);
}
//delete dialog object
delete dlgWaiting;
}
/**

View File

@ -25,6 +25,7 @@
#include "conductorproperties.h"
#include "titleblockproperties.h"
#include "templatescollection.h"
class Diagram;
class ElementsCollection;
class ElementsCategory;
@ -35,6 +36,7 @@ class TitleBlockTemplate;
class XmlElementsCollection;
class MoveElementsHandler;
class MoveTitleBlockTemplatesHandler;
/**
This class represents a QET project. Typically saved as a .qet file, it
consists in an XML document grouping 0 to n diagrams and embedding an elements

View File

@ -0,0 +1,83 @@
/*
Copyright 2006-2013 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#include "dialogwaiting.h"
#include "ui_dialogwaiting.h"
#include <QPushButton>
/**
* @brief DialogWaiting::DialogWaiting
* @param parent
*/
DialogWaiting::DialogWaiting(QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogWaiting)
{
ui->setupUi(this);
setTitle( "..." );
setDetail( "..." );
}
/**
* @brief DialogWaiting::~DialogWaiting
*/
DialogWaiting::~DialogWaiting() {
delete ui;
}
/**
* @brief DialogWaiting::setProgressBar
* @param val is the progressBar value
*/
void DialogWaiting::setProgressBar(int val){
ui->progressBar->setValue(val);
}
/**
* @brief DialogWaiting::setProgressReset, clear progressBar and reset
*/
void DialogWaiting::setProgressReset(){
ui->progressBar->reset();
}
/**
* @brief DialogWaiting::setProgressBarRange
* @param min is the minimum of progressBar
* @param max is the maximun of progressBar
*/
void DialogWaiting::setProgressBarRange(int min, int max){
ui->progressBar->setRange(min,max);
}
/**
* @brief DialogWaiting::setTitle of action
* @param val is the string of action
*/
void DialogWaiting::setTitle(const QString& val){
QString title="<b> "+val+" </b>";
ui->labelTitle->setText(title);
}
/**
* @brief DialogWaiting::setDetail of action
* @param val is the string of detail action
*/
void DialogWaiting::setDetail(const QString& val){
ui->label_detail->setText(val);
}

View File

@ -0,0 +1,46 @@
/*
Copyright 2006-2013 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DIALOGWAITING_H
#define DIALOGWAITING_H
#include <QDialog>
namespace Ui {
class DialogWaiting;
}
class DialogWaiting : public QDialog
{
Q_OBJECT
public:
explicit DialogWaiting(QWidget *parent = 0);
~DialogWaiting();
void setProgressBar(int val);
void setProgressBarRange(int min, int max);
void setProgressReset();
void setTitle(const QString& val);
void setDetail(const QString& val);
private:
Ui::DialogWaiting *ui;
};
#endif // DIALOGWAITING_H

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DialogWaiting</class>
<widget class="QDialog" name="DialogWaiting">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>136</height>
</rect>
</property>
<property name="windowTitle">
<string>Merci de patienter</string>
</property>
<property name="windowIcon">
<iconset>
<normaloff>:/app/process</normaloff>:/app/process</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="labelTitle">
<property name="text">
<string>TextLabel</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QProgressBar" name="progressBar">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_detail">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>