[qet] [2101] Add an dialogwaiting ! and use it to open project. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qet Archives
]
Revision: 2101
Author: cfdev
Date: 2013-04-11 08:55:00 +0200 (Thu, 11 Apr 2013)
Log Message:
-----------
Add an dialogwaiting ! and use it to open project.
Modified Paths:
--------------
trunk/sources/qetproject.cpp
trunk/sources/qetproject.h
Added Paths:
-----------
trunk/sources/ui/dialogwaiting.cpp
trunk/sources/ui/dialogwaiting.h
trunk/sources/ui/dialogwaiting.ui
Modified: trunk/sources/qetproject.cpp
===================================================================
--- trunk/sources/qetproject.cpp 2013-04-10 19:52:00 UTC (rev 2100)
+++ trunk/sources/qetproject.cpp 2013-04-11 06:55:00 UTC (rev 2101)
@@ -29,6 +29,8 @@
#include "qetmessagebox.h"
#include "titleblocktemplate.h"
+#include "ui/dialogwaiting.h"
+
QString QETProject::integration_category_name = "import";
/**
@@ -956,15 +958,24 @@
// 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 @@
foreach(Diagram *diagram, loaded_diagrams.values()) {
addDiagram(diagram);
}
+ //delete dialog object
+ delete dlgWaiting;
}
/**
Modified: trunk/sources/qetproject.h
===================================================================
--- trunk/sources/qetproject.h 2013-04-10 19:52:00 UTC (rev 2100)
+++ trunk/sources/qetproject.h 2013-04-11 06:55:00 UTC (rev 2101)
@@ -25,6 +25,7 @@
#include "conductorproperties.h"
#include "titleblockproperties.h"
#include "templatescollection.h"
+
class Diagram;
class ElementsCollection;
class ElementsCategory;
@@ -35,6 +36,7 @@
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
Added: trunk/sources/ui/dialogwaiting.cpp
===================================================================
--- trunk/sources/ui/dialogwaiting.cpp (rev 0)
+++ trunk/sources/ui/dialogwaiting.cpp 2013-04-11 06:55:00 UTC (rev 2101)
@@ -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);
+}
+
Added: trunk/sources/ui/dialogwaiting.h
===================================================================
--- trunk/sources/ui/dialogwaiting.h (rev 0)
+++ trunk/sources/ui/dialogwaiting.h 2013-04-11 06:55:00 UTC (rev 2101)
@@ -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
Added: trunk/sources/ui/dialogwaiting.ui
===================================================================
--- trunk/sources/ui/dialogwaiting.ui (rev 0)
+++ trunk/sources/ui/dialogwaiting.ui 2013-04-11 06:55:00 UTC (rev 2101)
@@ -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>