From: Matthias Maier Date: Wed, 6 Jul 2016 20:19:24 +0000 (-0500) Subject: remove parameter_gui project X-Git-Tag: v8.5.0-rc1~879^2~4 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bea369c92ddeca56303d5e881181ad1cab7b3f62;p=dealii.git remove parameter_gui project The parameter GUI project has moved to https://github.com/dealii/parameter_gui --- diff --git a/contrib/parameter_gui/CMakeLists.txt b/contrib/parameter_gui/CMakeLists.txt deleted file mode 100644 index 4b20cebe32..0000000000 --- a/contrib/parameter_gui/CMakeLists.txt +++ /dev/null @@ -1,69 +0,0 @@ -## --------------------------------------------------------------------- -## -## Copyright (C) 2012 - 2014 by Martin Steigemann and Wolfgang Bangerth -## -## This file is part of the deal.II library. -## -## The deal.II library is free software; you can use it, redistribute -## it, and/or modify it under the terms of the GNU Lesser General -## Public License as published by the Free Software Foundation; either -## version 2.1 of the License, or (at your option) any later version. -## The full text of the license can be found in the file LICENSE at -## the top level of the deal.II distribution. -## -## --------------------------------------------------------------------- - -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) -#PROJECT(parameter_gui) - -IF("${DEAL_II_EXECUTABLE_RELDIR}" STREQUAL "") - SET(DEAL_II_EXECUTABLE_RELDIR "bin") -ENDIF() - -FIND_PACKAGE(Qt4 REQUIRED QtCore QtGui QtXml) -MARK_AS_ADVANCED(QT_QMAKE_EXECUTABLE) - -INCLUDE(${QT_USE_FILE}) - -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) - -QT4_WRAP_CPP(SOURCE_MOC - browse_lineedit.h - info_message.h - mainwindow.h - parameter_delegate.h - ) - -QT4_ADD_RESOURCES(SOURCE_RCC - application.qrc - ) - -ADD_EXECUTABLE(parameter_gui_exe - browse_lineedit.cpp - info_message.cpp - main.cpp - mainwindow.cpp - parameter_delegate.cpp - xml_parameter_reader.cpp - xml_parameter_writer.cpp - ${SOURCE_MOC} - ${SOURCE_RCC} - ) -SET_TARGET_PROPERTIES(parameter_gui_exe - PROPERTIES - OUTPUT_NAME parameter_gui - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${DEAL_II_EXECUTABLE_RELDIR}" - ) -TARGET_LINK_LIBRARIES(parameter_gui_exe ${QT_LIBRARIES}) - -ADD_DEPENDENCIES(parameter_gui parameter_gui_exe) - -INSTALL(TARGETS parameter_gui_exe - RUNTIME DESTINATION ${DEAL_II_EXECUTABLE_RELDIR} - COMPONENT parameter_gui - ) -EXPORT(TARGETS parameter_gui_exe - FILE - ${CMAKE_BINARY_DIR}/${DEAL_II_PROJECT_CONFIG_RELDIR}/${DEAL_II_PROJECT_CONFIG_NAME}Targets.cmake - APPEND - ) diff --git a/contrib/parameter_gui/README b/contrib/parameter_gui/README deleted file mode 100644 index 963da457f9..0000000000 --- a/contrib/parameter_gui/README +++ /dev/null @@ -1,5 +0,0 @@ -This subdirectory contains the parameter_gui project. - -It is copyrighted by Martin Steigemann and Wolfgang Bangerth and -distributed under the same license as the deal.II library, i.e. -The GNU Lesser General Public License (LGPL) version 2.1 or later. diff --git a/contrib/parameter_gui/application.qrc b/contrib/parameter_gui/application.qrc deleted file mode 100644 index ef2d9e8320..0000000000 --- a/contrib/parameter_gui/application.qrc +++ /dev/null @@ -1,7 +0,0 @@ - - - images/logo_dealii_64.png - images/logo_dealii_gui.png - images/logo_dealii_gui_128.png - - diff --git a/contrib/parameter_gui/browse_lineedit.cpp b/contrib/parameter_gui/browse_lineedit.cpp deleted file mode 100644 index d2890b5f6a..0000000000 --- a/contrib/parameter_gui/browse_lineedit.cpp +++ /dev/null @@ -1,126 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#include - -#include "browse_lineedit.h" - - -namespace dealii -{ - namespace ParameterGui - { - BrowseLineEdit::BrowseLineEdit(const BrowseType type, QWidget *parent) - : QFrame(parent, 0), - browse_type(type) - { - line_editor = new QLineEdit; - connect(line_editor, SIGNAL(editingFinished()), this, SLOT(editing_finished())); - - browse_button = new QPushButton("&Browse..."); - connect(browse_button, SIGNAL(clicked()), this, SLOT(browse())); - - setFocusPolicy (Qt::StrongFocus); - - QHBoxLayout *layout = new QHBoxLayout; - - layout->addWidget(line_editor); - layout->addWidget(browse_button); - setLayout(layout); - - setAutoFillBackground(true); - setBackgroundRole(QPalette::Highlight); - } - - - - - QSize BrowseLineEdit::sizeHint() const - { - QSize size_line_editor = line_editor->sizeHint(), - size_browse_button = browse_button->sizeHint(); - - int w = size_line_editor.rwidth() + size_browse_button.rwidth(), - h = qMax(size_line_editor.rheight(), size_browse_button.rheight()); - - return QSize (w, h); - } - - - - QSize BrowseLineEdit::minimumSizeHint() const - { - QSize size_line_editor = line_editor->minimumSizeHint(), - size_browse_button = browse_button->minimumSizeHint(); - - int w = size_line_editor.rwidth() + size_browse_button.rwidth(), - h = qMax(size_line_editor.rheight(), size_browse_button.rheight()); - - return QSize (w, h); - } - - - - QString BrowseLineEdit::text() const - { - return line_editor->text(); - } - - - - void BrowseLineEdit::setText(const QString &str) - { - line_editor->setText(str); - } - - - - void BrowseLineEdit::editing_finished() - { - emit editingFinished(); - } - - - - void BrowseLineEdit::browse() - { - QString name = ""; - - switch (browse_type) - { - case file: - { - name = QFileDialog::getOpenFileName(this, tr("Open File"), - QDir::currentPath(), - tr("All Files (*.*)")); - break; - }; - - case directory: - { - name = QFileDialog::getExistingDirectory(this, tr("Open Directory"), - QDir::homePath(), - QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - break; - }; - }; - - if (!name.isEmpty() && !name.isNull()) - line_editor->setText(name); - } - } -} - diff --git a/contrib/parameter_gui/browse_lineedit.h b/contrib/parameter_gui/browse_lineedit.h deleted file mode 100644 index 1c14ec626c..0000000000 --- a/contrib/parameter_gui/browse_lineedit.h +++ /dev/null @@ -1,121 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#ifndef BROWSELINEEDIT_H -#define BROWSELINEEDIT_H - -#include -#include -#include -#include - - -namespace dealii -{ -/*! @addtogroup ParameterGui - *@{ - */ - namespace ParameterGui - { -/** - * The BrowseLineEdit class provides a special line editor for the parameterGUI. - * While editing file- or directory names it is much more easier to have a file-dialog - * and just click on existing files or directories. This editor provides a simple QLineEditor - * and a browse-button which opens a file- or a directory dialog. Clicking on existing files or directories - * copies the path to the line editor. Depending on the BrowseType given in the constructor - * the browse button opens a file or a directory dialog. - * - * @note This class is used in the graphical user interface for the @ref ParameterHandler class. - * It is not compiled into the deal.II libraries and can not be used by applications using deal.II. - * - * @ingroup ParameterGui - * @author Martin Steigemann, Wolfgang Bangerth, 2010 - */ - class BrowseLineEdit : public QFrame - { - Q_OBJECT - - public: - /** - * The browse button opens a file or - * a directory dialog. This can be specified - * in the constructor by setting this flag BrowseType. - */ - enum BrowseType {file = 0, directory = 1}; - /** - * Constructor. The type of the browse dialog can be specified - * by the flag BrowseType, the default is file. - */ - BrowseLineEdit (const BrowseType type = file, - QWidget *parent = 0); - - /** - * Reimplemented from the QWidget class. - * Returns the size of the editor. - */ - QSize sizeHint() const; - /** - * Reimplemented from the QWidget class. - */ - QSize minimumSizeHint() const; - /** - * Returns the text of the line editor. - */ - QString text() const; - /** - * This pattern stores the type of the browse dialog. - */ - BrowseType browse_type; - - public slots: - /** - * A slot to set @p str as text of the line editor. - */ - void setText(const QString &str); - - signals: - /** - * This signal will be emitted, if editing is finished. - */ - void editingFinished(); - - private slots: - /** - * This slot should be always called, if editing is finished. - */ - void editing_finished(); - /** - * This function opens a file- or a directory dialog as specified in the - * constructor. - */ - void browse(); - - private: - /** - * The line editor. - */ - QLineEdit * line_editor; - /** - * The browse button. - */ - QPushButton * browse_button; - }; - } -/**@}*/ -} - - -#endif diff --git a/contrib/parameter_gui/dealii_parameter_gui.pro b/contrib/parameter_gui/dealii_parameter_gui.pro deleted file mode 100644 index 834545d479..0000000000 --- a/contrib/parameter_gui/dealii_parameter_gui.pro +++ /dev/null @@ -1,25 +0,0 @@ -###################################################################### -# Automatically generated by qmake (2.01a) So. Dez 12 15:30:12 2010 -###################################################################### - -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . -DESTDIR = ../../lib/bin - -# Input -HEADERS += browse_lineedit.h \ - info_message.h \ - mainwindow.h \ - parameter_delegate.h \ - xml_parameter_reader.h \ - xml_parameter_writer.h -SOURCES += browse_lineedit.cpp \ - info_message.cpp \ - main.cpp \ - mainwindow.cpp \ - parameter_delegate.cpp \ - xml_parameter_reader.cpp \ - xml_parameter_writer.cpp -RESOURCES += application.qrc diff --git a/contrib/parameter_gui/images/logo_dealii.png b/contrib/parameter_gui/images/logo_dealii.png deleted file mode 100644 index 3b7c7d66b9..0000000000 Binary files a/contrib/parameter_gui/images/logo_dealii.png and /dev/null differ diff --git a/contrib/parameter_gui/images/logo_dealii_64.png b/contrib/parameter_gui/images/logo_dealii_64.png deleted file mode 100644 index 0ecf03f436..0000000000 Binary files a/contrib/parameter_gui/images/logo_dealii_64.png and /dev/null differ diff --git a/contrib/parameter_gui/images/logo_dealii_gui.png b/contrib/parameter_gui/images/logo_dealii_gui.png deleted file mode 100644 index 546b453eb8..0000000000 Binary files a/contrib/parameter_gui/images/logo_dealii_gui.png and /dev/null differ diff --git a/contrib/parameter_gui/images/logo_dealii_gui_128.png b/contrib/parameter_gui/images/logo_dealii_gui_128.png deleted file mode 100644 index 98e3cf7abe..0000000000 Binary files a/contrib/parameter_gui/images/logo_dealii_gui_128.png and /dev/null differ diff --git a/contrib/parameter_gui/info_message.cpp b/contrib/parameter_gui/info_message.cpp deleted file mode 100644 index b5207d38a0..0000000000 --- a/contrib/parameter_gui/info_message.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#include - -#include "info_message.h" - - -namespace dealii -{ - namespace ParameterGui - { - InfoMessage::InfoMessage(QWidget *parent) - : QDialog(parent, 0) - { - show_again = true; // this variable stores, if the - // the info message should be shown again - QGridLayout * grid = new QGridLayout(this); - - icon = new QLabel(this); // set an icon -#ifndef QT_NO_MESSAGEBOX - icon->setPixmap(QMessageBox::standardIcon(QMessageBox::Information)); - icon->setAlignment(Qt::AlignHCenter | Qt::AlignTop); -#endif - grid->addWidget(icon, 0, 0, Qt::AlignTop); // add the icon in the upper left corner - - message = new QTextEdit(this); // set the new message - message->setReadOnly(true); - grid->addWidget(message, 0, 1); // and add the message on the right - - again = new QCheckBox(this); // add a check box - again->setChecked(true); - again->setText(QErrorMessage::tr("&Show this message again")); - grid->addWidget(again, 1, 1, Qt::AlignTop); - - ok = new QPushButton(this); // and finally a OK button - ok->setText(QErrorMessage::tr("&OK")); -#ifdef QT_SOFTKEYS_ENABLED - ok_action = new QAction(ok); // define the action for the button - ok_action->setSoftKeyRole(QAction::PositiveSoftKey); - ok_action->setText(ok->text()); - connect(ok_action, SIGNAL(triggered()), this, SLOT(accept())); - addAction(ok_action); -#endif - connect(ok, SIGNAL(clicked()), this, SLOT(accept())); - ok->setFocus(); // aand set the focus on the button - grid->addWidget(ok, 2, 0, 1, 2, Qt::AlignCenter); - - grid->setColumnStretch(1, 42); - grid->setRowStretch(0, 42); - // load settings from an ini-file - QString settings_file = QDir::currentPath() + "/settings.ini"; - - settings = new QSettings (settings_file, QSettings::IniFormat); - - settings->beginGroup("infoMessage"); // we store settings of this class in the - show_again = settings->value("showInformation", true).toBool(); //group infoMessage - settings->endGroup(); - } - - - - void InfoMessage::setInfoMessage(const QString &message) - { - this->message->setText(message); // set the message - } - - - - void InfoMessage::showMessage() - { - if (show_again) // and show the message - show(); - } - - - - void InfoMessage::done(int r) - { - if(!again->isChecked()) // if the box is not checked, - { // store this to settings - settings->beginGroup("infoMessage"); - settings->setValue("showInformation", false); - settings->endGroup(); - }; - - QDialog::done(r); - } - } -} - diff --git a/contrib/parameter_gui/info_message.h b/contrib/parameter_gui/info_message.h deleted file mode 100644 index 0dd1024448..0000000000 --- a/contrib/parameter_gui/info_message.h +++ /dev/null @@ -1,113 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#ifndef INFOMESSAGE_H -#define INFOMESSAGE_H - -#include -#include -#include -#include -#include - - -namespace dealii -{ -/*! @addtogroup ParameterGui - *@{ - */ - namespace ParameterGui - { -/** - * The InfoMessage class implements a special info message for the parameterGUI. - * Besides showing a info message itself, the dialog shows a checkbox "Show this message again". - * If the user unchecks this box, this is stored in the "settings.ini" file and will be reloaded - * the next time the user opens the parameterGUI. The intention of such a info message is the following. - * The user should have some information on how using the GUI "at hand" - * such as "how to edit parameter values" for example. But after reading this message, the user knows - * it and the message should not appear permanently. - * - * @note This class is used in the graphical user interface for the @ref ParameterHandler class. - * It is not compiled into the deal.II libraries and can not be used by applications using deal.II. - * - * @ingroup ParameterGui - * @author Martin Steigemann, Wolfgang Bangerth, 2010 - */ - class InfoMessage : public QDialog - { - Q_OBJECT - - public: - /** - * Constructor - */ - InfoMessage (QWidget *parent = 0); - /** - * With this function the @p message which will be shown in the - * dialog can be set. - */ - void setInfoMessage(const QString &message); - - public slots: - /** - * Show the dialog with the message. - */ - void showMessage(); - - protected: - /** - * Reimplemented from QDialog. - */ - void done(int r); - - private: - /** - * This variable stores, if the message should be shown again the next time. - */ - bool show_again; - /** - * The Ok button. - */ - QPushButton * ok; - /** - * The checkboxShow this message again. - */ - QCheckBox * again; - /** - * The message editor. - */ - QTextEdit * message; - /** - * An icon for the dialog. - */ - QLabel * icon; -#ifdef QT_SOFTKEYS_ENABLED - /** - * A action for pressing the Ok button. - */ - QAction * ok_action; -#endif - /** - * An object for storing settings in a file. - */ - QSettings * settings; - }; - } -/**@}*/ -} - - -#endif diff --git a/contrib/parameter_gui/lgpl-2.1.txt b/contrib/parameter_gui/lgpl-2.1.txt deleted file mode 100644 index 4362b49151..0000000000 --- a/contrib/parameter_gui/lgpl-2.1.txt +++ /dev/null @@ -1,502 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/contrib/parameter_gui/main.cpp b/contrib/parameter_gui/main.cpp deleted file mode 100644 index 6229d7e60a..0000000000 --- a/contrib/parameter_gui/main.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#include -#include -#include - -#include "mainwindow.h" - -/*! @addtogroup ParameterGui - *@{ - */ - -/** - * Main function for the parameterGUI. - * The parameterGUI is a graphical user interface for editing parameter files based on the XML format, - * created by the ParameterHandler::print_parameters() function with ParameterHandler::XML as second argument. - * - * @image html logo_dealii_gui.png - * - * @note This class is used in the graphical user interface for the @ref ParameterHandler class. - * It is not compiled into the deal.II libraries and can not be used by applications using deal.II. - * - * - *

This program uses Qt version > 4.3. Qt is licensed under the GNU General Public License - * version 3.0. Please see http://qt.nokia.com/products/licensing for an overview of Qt licensing. - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). Qt is a Nokia product. - * See http://qt.nokia.com/ for more information.

- * - * - * @ingroup ParameterGui - * @author Martin Steigemann, Wolfgang Bangerth, 2010 - */ -int main(int argc, char *argv[]) -{ - Q_INIT_RESOURCE(application); // init resources such as icons or graphics - - QApplication app(argc, argv); - - QSplashScreen * splash = new QSplashScreen; // setup a splash screen - splash->setPixmap(QPixmap(":/images/logo_dealii_gui.png")); - splash->show(); - - QTimer::singleShot(3000, splash, SLOT(close())); // and close it after 3000 ms - - app.setApplicationName("parameterGUI for deal.II"); // setup the application name - - dealii::ParameterGui::MainWindow * main_win = - new dealii::ParameterGui::MainWindow (argv[1]); // give command line arguments to main_win - // if a parameter file is specified at the - // command line, give it to the MainWindow. - - QTimer::singleShot(1500, main_win, SLOT(show())); // show the main window with a short delay - // so we can see the splash screen - return app.exec(); -} -/**@}*/ - diff --git a/contrib/parameter_gui/mainwindow.cpp b/contrib/parameter_gui/mainwindow.cpp deleted file mode 100644 index 533fa8bfbe..0000000000 --- a/contrib/parameter_gui/mainwindow.cpp +++ /dev/null @@ -1,385 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#include - -#include "mainwindow.h" -#include "parameter_delegate.h" -#include "xml_parameter_reader.h" -#include "xml_parameter_writer.h" - - -namespace dealii -{ - namespace ParameterGui - { - MainWindow::MainWindow(const QString &filename) - { - QString settings_file = QDir::currentPath() + "/settings.ini"; // a file for user settings - - gui_settings = new QSettings (settings_file, QSettings::IniFormat); // load settings - // Up to now, we do not read any settings, - // but this can be used in the future for customizing the GUI. - - tree_widget = new QTreeWidget; // tree for showing XML tags - - // Setup the tree and the window first: - tree_widget->header()->setResizeMode(QHeaderView::ResizeToContents); // behavior of the header sections: - // "Interactive: User can resize sections" - // "Fixed: User cannot resize sections" - // "Stretch: Qt will automatically resize sections to fill available space" - // "ResizeToContents: Qt will automatically resize sections to optimal size" - tree_widget->setHeaderLabels(QStringList() << tr("(Sub)Sections/Parameters") - << tr("Value")); - tree_widget->setMouseTracking(true); // enables mouse events e.g. showing ToolTips - // and documentation in the StatusLine - tree_widget->setEditTriggers(QAbstractItemView::DoubleClicked| - QAbstractItemView::SelectedClicked| - QAbstractItemView::EditKeyPressed); - // set which actions will initiate item editing: Editing starts when: - // DoubleClicked: an item is double clicked - // SelectedClicked: clicking on an already selected item - // EditKeyPressed: the platform edit key has been pressed over an item - // AnyKeyPressed: any key is pressed over an item - - tree_widget->setItemDelegate(new ParameterDelegate(1)); // set the delegate for editing items - setCentralWidget(tree_widget); - // connect: if the tree changes, the window will know - connect(tree_widget, SIGNAL(itemChanged(QTreeWidgetItem*, int)), this, SLOT(tree_was_modified())); - - create_actions(); // create window actions as "Open",... - create_menus(); // and menus - statusBar()->showMessage(tr("Ready, start editing by double-clicking or hitting F2!")); - setWindowTitle(tr("[*]parameterGUI")); // set window title - - resize(800, 600); // set window height and width - - if (filename.size() > 3) // if there is a file_name, try to load the file. - load_file(filename); // a vliad file has the xml extension, so we require size() > 3 - } - - - - void MainWindow::open() - { - if (maybe_save()) // check, if the content was modified - { - QString file_name = // open a file dialog - QFileDialog::getOpenFileName(this, tr("Open XML Parameter File"), - QDir::currentPath(), - tr("XML Files (*.xml)")); - if (!file_name.isEmpty()) // if a file was selected, - load_file(file_name); // load the content - }; - } - - - - bool MainWindow::save() - { - if (current_file.isEmpty()) // if there is no file - return save_as(); // to save changes, open a dialog - else - return save_file(current_file); // otherwise save - } - - - - bool MainWindow::save_as() - { - QString file_name = // open a file dialog - QFileDialog::getSaveFileName(this, tr("Save XML Parameter File"), - QDir::currentPath(), - tr("XML Files (*.xml)")); - - if (file_name.isEmpty()) // if no file was selected - return false; // return false - else - return save_file(file_name); // otherwise save content to file - } - - - - void MainWindow::about() - { -#ifdef Q_WS_MAC - static QPointer old_msg_box; - - if (old_msg_box) - { - old_msg_box->show(); - old_msg_box->raise(); - old_msg_box->activateWindow(); - return; - }; -#endif - - QString title = "About parameterGUI"; - - QString trAboutparameterGUIcaption; - trAboutparameterGUIcaption = QMessageBox::tr( - "

parameterGUI: A GraphicalUserInterface for parameter handling in deal.II

" - "

This program uses Qt version %1.

" - ).arg(QLatin1String(QT_VERSION_STR)); - - QString trAboutparameterGUItext; - trAboutparameterGUItext = QMessageBox::tr( - "

The parameterGUI is a graphical user interface for editing XML parameter files " - "created by the ParameterHandler class of deal.II. Please see " - "dealii.org/doc for more information. " - "The parameterGUI parses XML files into a tree structure and provides " - " special editors for different types of parameters.

" - - "

Editing parameter values:
" - "Parameters can be edited by (double-)clicking on the value or " - "by pressing the platform edit key (F2 on Linux) over an parameter item.

" - - "

Editors for parameter values:" - "

    " - "
  • Integer- and Double-type parameters: SpinBox
  • " - "
  • Booleans: ComboBox
  • " - "
  • Selection: ComboBox
  • " - "
  • File- and DirectoryName parameters: BrowseLineEditor
  • " - "
  • Anything|MultipleSelection|List: LineEditor
  • " - "
" - "

" - - "

Please see dealii.org for more information

" - "

Authors:
" - "Martin Steigemann, martin.steigemann@mathematik.uni-kassel.de
" - "Wolfgang Bangerth, bangerth@math.tamu.edu

" - ); - - QMessageBox *msg_box = new QMessageBox; - msg_box->setAttribute(Qt::WA_DeleteOnClose); - msg_box->setWindowTitle(title); - msg_box->setText(trAboutparameterGUIcaption); - msg_box->setInformativeText(trAboutparameterGUItext); - - QPixmap pm(QLatin1String(":/images/logo_dealii_gui_128.png")); - - if (!pm.isNull()) - msg_box->setIconPixmap(pm); - -#ifdef Q_WS_MAC - old_msg_box = msg_box; - msg_box->show(); -#else - msg_box->exec(); -#endif - } - - - - void MainWindow::tree_was_modified() - { - setWindowModified(true); // store, that the window was modified - // this is a function from the QMainWindow class - // and we use the windowModified mechanism to show a "*" - // in the window title, if content was modified - } - - - - void MainWindow::show_message () - { - QString title = "parameterGUI"; - - info_message = new InfoMessage(this); - - info_message->setWindowTitle(title); - info_message->setInfoMessage(tr("Start Editing by double-clicking on the parameter value or" - " by hitting the platform edit key. For example, on Linux this is the F2-key!")); - info_message->showMessage(); - } - - - - void MainWindow::closeEvent(QCloseEvent *event) - { - if (maybe_save()) // reimplement the closeEvent from the QMainWindow class - event->accept(); // check, if we have to save modified content, - else // if content was saved, accept the event, - event->ignore(); // otherwise ignore it - } - - - - void MainWindow::create_actions() - { - QStyle * style = tree_widget->style(); - - open_act = new QAction(tr("&Open..."), this); // create actions - open_act->setIcon(style->standardPixmap(QStyle::SP_DialogOpenButton)); // and set icons - open_act->setShortcut(Qt::CTRL + Qt::Key_O); // set a short cut - open_act->setStatusTip(tr("Open a XML file")); // set a status tip - connect(open_act, SIGNAL(triggered()), this, SLOT(open())); // and connect - - save_act = new QAction(tr("&Save ..."), this); - save_act->setIcon(style->standardPixmap(QStyle::SP_DialogSaveButton)); - save_act->setShortcut(Qt::CTRL + Qt::Key_S); - save_act->setStatusTip(tr("Save the current XML file")); - connect(save_act, SIGNAL(triggered()), this, SLOT(save())); - - save_as_act = new QAction(tr("&Save As..."), this); - save_as_act->setIcon(style->standardPixmap(QStyle::SP_DialogSaveButton)); - save_as_act->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_Q); - save_as_act->setStatusTip(tr("Save the current XML file as")); - connect(save_as_act, SIGNAL(triggered()), this, SLOT(save_as())); - - exit_act = new QAction(tr("E&xit"), this); - exit_act->setIcon(style->standardPixmap(QStyle::SP_DialogCloseButton)); - exit_act->setShortcut(Qt::CTRL + Qt::Key_Q); - exit_act->setStatusTip(tr("Exit the parameterGUI application")); - connect(exit_act, SIGNAL(triggered()), this, SLOT(close())); - - about_act = new QAction(tr("&About"), this); - about_act->setIcon(style->standardPixmap(QStyle::SP_FileDialogInfoView)); - about_act->setStatusTip(tr("Show the parameterGUI About box")); - connect(about_act, SIGNAL(triggered()), this, SLOT(about())); - - about_qt_act = new QAction(tr("About &Qt"), this); - about_qt_act->setStatusTip(tr("Show the Qt library's About box")); - connect(about_qt_act, SIGNAL(triggered()), qApp, SLOT(aboutQt())); - } - - - - void MainWindow::create_menus() - { - file_menu = menuBar()->addMenu(tr("&File")); // create a file menu - file_menu->addAction(open_act); // and add actions - file_menu->addAction(save_act); - file_menu->addAction(save_as_act); - file_menu->addAction(exit_act); - - menuBar()->addSeparator(); - - help_menu = menuBar()->addMenu(tr("&Help")); // create a help menu - help_menu->addAction(about_act); - help_menu->addAction(about_qt_act); - } - - - - bool MainWindow::maybe_save() - { - if (isWindowModified()) // if content was modified - { - QMessageBox::StandardButton ret; // ask, if content should be saved - ret = QMessageBox::warning(this, tr("parameterGUI"), - tr("The content has been modified.\n" - "Do you want to save your changes?"), - QMessageBox::Save | QMessageBox::Discard |QMessageBox::Cancel); - - if (ret == QMessageBox::Save) - return save(); - else if (ret == QMessageBox::Cancel) - return false; - }; - - return true; - } - - - - bool MainWindow::save_file(const QString &filename) - { - QFile file(filename); - - if (!file.open(QFile::WriteOnly | QFile::Text)) // open a file dialog - { - QMessageBox::warning(this, tr("parameterGUI"), - tr("Cannot write file %1:\n%2.") - .arg(filename) - .arg(file.errorString())); - return false; - }; - - XMLParameterWriter xml_writer(tree_widget); // create a xml_writer - - if (!xml_writer.write_xml_file(&file)) // and read the xml file - return false; - - statusBar()->showMessage(tr("File saved"), 2000); // if we succeed, show a message - set_current_file(filename); // and reset the window - - return true; - } - - - - void MainWindow::load_file(const QString &filename) - { - QFile file(filename); - - if (!file.open(QFile::ReadOnly | QFile::Text)) // open the file - { - QMessageBox::warning(this, tr("parameterGUI"), - tr("Cannot read file %1:\n%2.") - .arg(filename) - .arg(file.errorString())); - return; - }; - - tree_widget->clear(); // clear the tree - - XMLParameterReader xml_reader(tree_widget); // and read the xml file - - if (!xml_reader.read_xml_file(&file)) - { - QMessageBox::warning(this, tr("parameterGUI"), - tr("Parse error in file %1:\n\n%2") - .arg(filename) - .arg(xml_reader.error_string())); - } - else - { - statusBar()->showMessage(tr("File loaded - Start editing by double-clicking or hitting F2"), 25000); - set_current_file(filename); // show a message and set current file - - show_message (); // show some informations how values can be edited - }; - } - - - - void MainWindow::set_current_file(const QString &filename) - { - // We use the windowModified mechanism from the - // QMainWindow class to indicate in the window title, - // if the content was modified. - // If there is "[*]" in the window title, a * will - // added automatically at this position, if the - // window was modified. - // We set the window title to - // file_name[*] - XMLParameterHandler - - current_file = filename; // set the (global) current file to file_name - - std::string win_title = (filename.toStdString()); // and create the window title, - - if (current_file.isEmpty()) // if file_name is empty - win_title = "[*]parameterGUI"; // set the title to our application name, - else - win_title += "[*] - parameterGUI"; // if there is a file_name, add the - // the file_name and a minus to the title - - setWindowTitle(tr(win_title.c_str())); // set the window title - setWindowModified(false); // and reset window modified - } - } -} diff --git a/contrib/parameter_gui/mainwindow.h b/contrib/parameter_gui/mainwindow.h deleted file mode 100644 index c9c49e520f..0000000000 --- a/contrib/parameter_gui/mainwindow.h +++ /dev/null @@ -1,183 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include -#include -#include - -#include "info_message.h" - - -namespace dealii -{ -/*! @addtogroup ParameterGui - *@{ - */ - namespace ParameterGui - { -/** - * The MainWindow class of the the parameterGUI. - * The parameterGUI is a graphical user interface for editing parameter files based on the XML format, - * created by the @ref ParameterHandler::print_parameters() function with @ref ParameterHandler::XML as second argument. - * Please see Representation of Parameters in the documentation of the @ref ParameterHandler class for more details. - * The MainWindow class provides the basic functionality of the GUI as save- and load-file-actions and documentation. - * The parameterGUI provides special editors for the different types of parameters defined in the ParameterHandler class. - * - * @note This class is used in the graphical user interface for the @ref ParameterHandler class. - * It is not compiled into the deal.II libraries and can not be used by applications using deal.II. - * - * @ingroup ParameterGui - * @author Martin Steigemann, Wolfgang Bangerth, 2010 - */ - class MainWindow : public QMainWindow - { - Q_OBJECT - - public: - /** - * Constructor. - * If a @p filename is given, - * the MainWindow tries to open - * and parse the file. - */ - MainWindow(const QString &filename = ""); - - protected: - /** - * Reimplemented from QMainWindow. - * We ask, if changes should be saved. - */ - void closeEvent(QCloseEvent *event); - - private slots: - - /** - * Open a parameter file. - */ - void open(); - /** - * Save the parameter file. - */ - bool save(); - /** - * Open a file dialog to save the parameter file. - */ - bool save_as(); - /** - * Show some information on the parameterGUI - */ - void about(); - - /** - * A slot that should be always called, - * if parameter values were changed. - */ - void tree_was_modified(); - - private: - /** - * Show an information dialog, how - * parameters can be edited. - */ - void show_message (); - /** - * This function creates all actions. - */ - void create_actions(); - /** - * This function creates all menus. - */ - void create_menus(); - /** - * This function checks, if parameters were changed - * and show a dialog, if changes should be saved. - * This function should be always called, - * before open a new parameter file or before closing the GUI - */ - bool maybe_save (); - /** - * Save parameters to @p filename in XML format. - */ - bool save_file (const QString &filename); - /** - * Load parameters from @p filename in XML format. - */ - void load_file (const QString &filename); - /** - * This functions writes the current @p filename to the window title. - */ - void set_current_file (const QString &filename); - /** - * This is the tree structure in which we store all parameters. - */ - QTreeWidget * tree_widget; - /** - * This menu provides all file actions as open, save, save as - * and exit - */ - QMenu * file_menu; - /** - * This menu provides some informations about the parameterGUI - * and about Qt - */ - QMenu * help_menu; - /** - * QAction open a file. - */ - QAction * open_act; - /** - * QAction save a file. - */ - QAction * save_act; - /** - * QAction save as a file. - */ - QAction * save_as_act; - /** - * QAction exit the GUI. - */ - QAction * exit_act; - /** - * QAction about the parameterGUI. - */ - QAction * about_act; - /** - * QAction about Qt. - */ - QAction * about_qt_act; - /** - * This value stores the current filename we work on. - */ - QString current_file; - /** - * This dialog shows a short information message after loading a file. - */ - InfoMessage * info_message; - /** - * An object for storing user settings. - */ - QSettings * gui_settings; - }; - } -/**@}*/ -} - - -#endif diff --git a/contrib/parameter_gui/parameter_delegate.cpp b/contrib/parameter_gui/parameter_delegate.cpp deleted file mode 100644 index 462486aafc..0000000000 --- a/contrib/parameter_gui/parameter_delegate.cpp +++ /dev/null @@ -1,329 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#include - -#include "parameter_delegate.h" - -#include - - -namespace dealii -{ - namespace ParameterGui - { - ParameterDelegate::ParameterDelegate(const int value_column, QObject *parent) - : QItemDelegate(parent) - { - this->value_column = value_column; - - double_steps = 0.1; // any click in the editor will increase or decrease the value about double_steps - double_decimals = 14; // number of decimals shown in the editor - - int_steps = 1; // step value for increasing or decreasing integers - } - - - - QSize ParameterDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const - { - if (index.column() == value_column) - { - return QSize(400,30); // we increase the height of all lines to show editors - -/* - QString pattern_description = index.data(Qt::StatusTipRole).toString(); // load pattern description - // stored in the StatusLine - QRegExp rx_string("\\b(FileName|DirectoryName)\\b"); - - if (rx_string.indexIn (pattern_description) != -1) - { - return QSize(400,35); // we increase the height for FileName and - } // DirectoryName to show a "browse" button - else - return QItemDelegate::sizeHint(option, index); -*/ - - } - else - return QItemDelegate::sizeHint(option, index); - } - - - - void ParameterDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const - { - if (index.column() == value_column) - { - QString pattern_description = index.data(Qt::StatusTipRole).toString(); // load pattern description - // stored in the StatusLine - QRegExp rx_string("\\b(FileName|DirectoryName)\\b"); // if the type is Filename - // or DirectoryName - if (rx_string.indexIn (pattern_description) != -1) - { - QString value = index.model()->data(index, Qt::DisplayRole).toString(); // take the value - - QStyleOptionViewItem my_option = option; // load options - my_option.displayAlignment = Qt::AlignLeft | Qt::AlignVCenter; - - drawDisplay(painter, my_option, my_option.rect, value); // print the text in the display - drawFocus(painter, my_option, my_option.rect); // if the line has the - // focus, print a rectangle - } - else - QItemDelegate::paint(painter, option, index); // for all other types use - // the standard delegate - } - else - QItemDelegate::paint(painter, option, index); - } - - - - QWidget *ParameterDelegate::createEditor(QWidget *parent, - const QStyleOptionViewItem &option, - const QModelIndex &index) const - { - if (index.column() == value_column) - { - QString pattern_description = index.data(Qt::StatusTipRole).toString(); // load pattern description - // stored in the StatusLine - QRegExp rx_string("\\b(Anything|MultipleSelection|List|Map)\\b"), - rx_filename("\\b(FileName)\\b"), - rx_dirname("\\b(DirectoryName)\\b"), - rx_integer("\\b(Integer)\\b"), - rx_double("\\b(Double|Float|Floating)\\b"), - rx_selection("\\b(Selection)\\b"), - rx_bool("\\b(Bool)\\b"); - - if (rx_string.indexIn (pattern_description) != -1) // if the type is "Anything" - { - QLineEdit * line_editor = new QLineEdit(parent); // choose a LineEditor - - connect(line_editor, SIGNAL(editingFinished()), // and connect editors signal - this, SLOT(commit_and_close_editor())); // to the closer function - - return line_editor; - } - else if (rx_filename.indexIn (pattern_description) != -1) // if the type is "FileName" - { - BrowseLineEdit * filename_editor = // choose a BrowseLineEditor - new BrowseLineEdit(BrowseLineEdit::file, parent); - - connect(filename_editor, SIGNAL(editingFinished()), - this, SLOT(commit_and_close_editor())); - - return filename_editor; - } - else if (rx_dirname.indexIn (pattern_description) != -1) // if the type is "DirectoryName" - { - BrowseLineEdit * dirname_editor = // choose a BrowseLineEditor - new BrowseLineEdit(BrowseLineEdit::directory, parent); - - connect(dirname_editor, SIGNAL(editingFinished()), - this, SLOT(commit_and_close_editor())); - - return dirname_editor; - } - else if (rx_integer.indexIn (pattern_description) != -1) // if the tpye is "Integer" - { - QSpinBox * spin_box = new QSpinBox(parent); // choose a spin box - - const int min_int_value = std::numeric_limits::min(); - const int max_int_value = std::numeric_limits::max(); - - spin_box->setMaximum(max_int_value); // set max and min from the limits.h class - spin_box->setMinimum(min_int_value); - spin_box->setSingleStep(int_steps); // and every klick is a SingleStep - - connect(spin_box, SIGNAL(editingFinished()), // connect editors signal to the closer function - this, SLOT(commit_and_close_editor())); - - return spin_box; - } - else if (rx_double.indexIn (pattern_description) != -1) // the same with "Double" - { - QDoubleSpinBox * double_spin_box = new QDoubleSpinBox(parent); // choose a spin box - - const double min_double_value = -std::numeric_limits::max(); - const double max_double_value = std::numeric_limits::max(); - - double_spin_box->setMaximum(max_double_value); // set max and min from the limits.h class - double_spin_box->setMinimum(min_double_value); - double_spin_box->setDecimals(double_decimals); // show "double_decimals" decimals - double_spin_box->setSingleStep(double_steps); // and every klick is a SingleStep - - connect(double_spin_box, SIGNAL(editingFinished()), // connect editors signal to the closer function - this, SLOT(commit_and_close_editor())); - - return double_spin_box; - } - else if (rx_selection.indexIn (pattern_description) != -1) // and selections - { - QComboBox * combo_box = new QComboBox(parent); // we assume, that pattern_desctiption is of the form - // "Type: [Selection item1|item2| ....|item ] " - std::vector choices; // list with the different items - std::string tmp(pattern_description.toStdString()); - - if (tmp.find("[") != std::string::npos) // delete all char before [ - tmp.erase (0, tmp.find("[")+1); - - if (tmp.find("]") != std::string::npos) // delete all char after ] - tmp.erase (tmp.find("]"),tmp.length()); - - if (tmp.find(" ") != std::string::npos) // delete all char before " " - tmp.erase (0, tmp.find(" ")+1); - - while (tmp.find('|') != std::string::npos) // extract items - { - choices.push_back(std::string(tmp, 0, tmp.find('|'))); - tmp.erase (0, tmp.find('|')+1); - }; - - if (tmp.find(" ") != std::string::npos) // delete " " - tmp.erase (tmp.find(" ")); - - choices.push_back(tmp); // add last item - - for (unsigned int i=0; iaddItem (tr(choices[i].c_str()), tr(choices[i].c_str())); - - combo_box->setEditable(false); - - connect(combo_box, SIGNAL(currentIndexChanged(int)), // connect editors signal to the closer function - this, SLOT(commit_and_close_editor())); - - return combo_box; - } - else if (rx_bool.indexIn (pattern_description) != -1) // and booleans - { - QComboBox * combo_box = new QComboBox(parent); - - std::vector choices; // list with the different items - choices.push_back(std::string("true")); // add true - choices.push_back(std::string("false")); // and false - - for (unsigned int i=0; iaddItem (tr(choices[i].c_str()), tr(choices[i].c_str())); - - combo_box->setEditable(false); - - connect(combo_box, SIGNAL(currentIndexChanged(int)), // connect editors signal to the closer function - this, SLOT(commit_and_close_editor())); - - return combo_box; - } - else - { - return QItemDelegate::createEditor(parent, option, index); - }; - }; - - return 0; // if it is not the column "parameter values", do nothing - } - - - - void ParameterDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const - { - if (index.column() == value_column) - { - QString pattern_description = index.data(Qt::StatusTipRole).toString(); // load pattern description - // stored in the StatusLine - QRegExp rx_filename("\\b(FileName)\\b"), - rx_dirname("\\b(DirectoryName)\\b"), - rx_selection("\\b(Selection)\\b"); - - if (rx_filename.indexIn (pattern_description) != -1) // if the type is "FileName" - { - QString file_name = index.data(Qt::DisplayRole).toString(); - - BrowseLineEdit *filename_editor = qobject_cast(editor); // set the text of the editor - filename_editor->setText(file_name); - } - else if (rx_dirname.indexIn (pattern_description) != -1) // if the type is "DirectoryName" - { - QString dir_name = index.data(Qt::DisplayRole).toString(); - - BrowseLineEdit *dirname_editor = qobject_cast(editor); // set the text of the editor - dirname_editor->setText(dir_name); - } - else if (rx_selection.indexIn (pattern_description) != -1) // if we have a combo box, - { - QRegExp rx(index.data(Qt::DisplayRole).toString()); - - QComboBox * combo_box = qobject_cast(editor); - - for (int i=0; icount(); ++i) // we look, which index - if (rx.exactMatch(combo_box->itemText(i))) // the data has and set - combo_box->setCurrentIndex(i); // it to the combo_box - } - else - QItemDelegate::setEditorData(editor, index); // if it is not FileName, - // DirectoryName or Selection - // use the standard delegate - }; - } - - - - void ParameterDelegate::commit_and_close_editor() - { - QWidget * editor = qobject_cast(sender()); - emit commitData(editor); - emit closeEditor(editor); - } - - - - void ParameterDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, - const QModelIndex &index) const - { - if (index.column() == value_column) - { - QString pattern_description = index.data(Qt::StatusTipRole).toString(); // load pattern description - // stored in the StatusLine - - QRegExp rx_filename("\\b(FileName)\\b"), - rx_dirname("\\b(DirectoryName)\\b"), - rx_selection("\\b(Selection)\\b"); - - if (rx_filename.indexIn (pattern_description) != -1) // if the type is "FileName" - { - BrowseLineEdit * filename_editor = qobject_cast(editor); // set the text from the editor - QString value = filename_editor->text(); - model->setData(index, value); - } - else if (rx_dirname.indexIn (pattern_description) != -1) // if the type is "DirectoryName" - { - BrowseLineEdit * dirname_editor = qobject_cast(editor); // set the text from the editor - QString value = dirname_editor->text(); - model->setData(index, value); - } - else if (rx_selection.indexIn (pattern_description) != -1) // if the type is "Selection" - { - QComboBox * combo_box = qobject_cast(editor); // set the text from the editor - QString value = combo_box->currentText(); - model->setData(index, value); - } - else - QItemDelegate::setModelData(editor, model, index); // if it is not FileName or DirectoryName, - // use the standard delegate - }; - } - } -} - diff --git a/contrib/parameter_gui/parameter_delegate.h b/contrib/parameter_gui/parameter_delegate.h deleted file mode 100644 index ddf401bda5..0000000000 --- a/contrib/parameter_gui/parameter_delegate.h +++ /dev/null @@ -1,122 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#ifndef PARAMETERDELEGATE_H -#define PARAMETERDELEGATE_H - -#include -#include -#include -#include -#include -#include - -#include "browse_lineedit.h" - - -namespace dealii -{ -/*! @addtogroup ParameterGui - *@{ - */ - namespace ParameterGui - { -/** - * The ParameterDelegate class implements special delegates for the QTreeWidget class used in the parameterGUI. - * The QTreeWidget class provides some different standard delegates for editing parameters shown in the - * tree structure. The ParameterDelegate class provides special editors for the different types of parameters defined in - * the ParameterHandler class. For all parameter types based on strings as "Anything", "MultipleSelection" "Map" and - * "List" a simple line editor will be shown up. In the case of integer and double type parameters the editor is a spin box and for - * "Selection" type parameters a combo box will be shown up. For parameters of type "FileName" and "DirectoryName" - * the delegate shows a @ref BrowseLineEdit editor. The column of the tree structure with the parameter values has to be set - * in the constructor. - * - * @note This class is used in the graphical user interface for the @ref ParameterHandler class. - * It is not compiled into the deal.II libraries and can not be used by applications using deal.II. - * - * @ingroup ParameterGui - * @author Martin Steigemann, Wolfgang Bangerth, 2010 - */ - class ParameterDelegate : public QItemDelegate - { - Q_OBJECT - - public: - /** - * Constructor, @p value_column specifies the column - * of the parameter tree this delegate will be used on. - */ - ParameterDelegate (const int value_column, QObject *parent = 0); - /** - * This function creates the appropriate editor for the parameter - * based on the index. - */ - QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, - const QModelIndex &index) const; - /** - * Reimplemented from QItemDelegate. - */ - QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; - /** - * Reimplemented from QItemDelegate. - */ - void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; - /** - * Reimplemented from QItemDelegate. - */ - void setEditorData(QWidget *editor, const QModelIndex &index) const; - /** - * Reimplemented from QItemDelegate. - */ - void setModelData(QWidget *editor, QAbstractItemModel *model, - const QModelIndex &index) const; - - private slots: - /** - * Reimplemented from QItemDelegate. - */ - void commit_and_close_editor(); - - private: - /** - * The column this delegate will be used on. - */ - int value_column; - /** - * For parameters of type double a spin box - * will be shown as editor. Any click on the spin box - * will change the value about double_steps. - */ - double double_steps; - /** - * For parameters of type integer a spin box - * will be shown as editor. Any click on the spin box - * will change the value about int_steps. - */ - unsigned int int_steps; - /** - * For parameters of type double a spin box - * will be shown as editor. The spin box will show - * parameters with a precision of double_decimals. - */ - unsigned int double_decimals; - }; - } -/**@}*/ -} - - -#endif diff --git a/contrib/parameter_gui/parameters.xml b/contrib/parameter_gui/parameters.xml deleted file mode 100644 index bdf3b3d02a..0000000000 --- a/contrib/parameter_gui/parameters.xml +++ /dev/null @@ -1,2 +0,0 @@ - -ElasticityElasticityBasic equation to solve0[Anything]CtsSpecimenSpecimenDomain1[Selection CtSpecimen|CtsSpecimen|SENBeam ]52Use this number of terms in asymptotic decompositions2[Selection 2|3|5 ]falsefalseOutput grids in eps format3[Bool]falsefalseOutput solutions in vtk format4[Bool]falsetrueOutput crack path data5[Bool]falsefalseOutput detailed flat quad data6[Bool]AluminiumAlloy7075T651AluminiumAlloy7075T651Description of the material: MaterialName|ReadMaterial7[Selection AluminiumAlloy7075T651|PlexiGlas|SuperAlloyPWA14801493|SihParisIrwinMaterialOne|SihParisIrwinMaterialTwo|CorticalBone|Beton|TestMaterial|ReadMaterial ]HomogeneousHomogeneousType of material: Homogeneous|Composite|FGM8[Selection Homogeneous|Composite|FGM ]0.0.Material angle with respect to the basic coordinate system9[Double -1.79769e+308...1.79769e+308 (inclusive)]plane_strainplain_strainPlane state: plane_strain|plane_stress10[Selection plane_strain|plain_stress ]falsefalseScale elastic moduli to a11 = 1 and a22 = 111[Bool]TestMaterialPropertiesReadedMaterialPropertiesDescription of ReadMaterial12[Anything]108752.23881.Elastic constant13[Double -1.79769e+308...1.79769e+308 (inclusive)]56023.88061.Elastic constant14[Double -1.79769e+308...1.79769e+308 (inclusive)]108752.23881.Elastic constant15[Double -1.79769e+308...1.79769e+308 (inclusive)]0.1.Elastic constant16[Double -1.79769e+308...1.79769e+308 (inclusive)]0.1.Elastic constant17[Double -1.79769e+308...1.79769e+308 (inclusive)]26364.17911.Elastic constant18[Double -1.79769e+308...1.79769e+308 (inclusive)]AluminiumAlloy7075T651AluminiumAlloy7075T651Description of the material: MaterialName|ReadMaterial19[Selection AluminiumAlloy7075T651|PlexiGlas|SuperAlloyPWA14801493|SihParisIrwinMaterialOne|SihParisIrwinMaterialTwo|CorticalBone|Beton|TestMaterial|ReadMaterial ]108752.23881.Elastic constant20[Double -1.79769e+308...1.79769e+308 (inclusive)]56023.88061.Elastic constant21[Double -1.79769e+308...1.79769e+308 (inclusive)]108752.23881.Elastic constant22[Double -1.79769e+308...1.79769e+308 (inclusive)]0.1.Elastic constant23[Double -1.79769e+308...1.79769e+308 (inclusive)]0.1.Elastic constant24[Double -1.79769e+308...1.79769e+308 (inclusive)]26364.17911.Elastic constant25[Double -1.79769e+308...1.79769e+308 (inclusive)]0.0.Material angle with respect to the basic coordinate system26[Double -1.79769e+308...1.79769e+308 (inclusive)]0.50.Perturbation parameter27[Double -1.79769e+308...1.79769e+308 (inclusive)]100004500Applied force value in Newton28[Double -1.79769e+308...1.79769e+308 (inclusive)]0.0If the specimen allows different forces, this parameter can be used to control them29[Double -1.79769e+308...1.79769e+308 (inclusive)]da/dN-curveda/dN-curve30[Selection da/dN-curve|Paris-law|Forman-Mettu-equation ]104.2510031[Double -1.79769e+308...1.79769e+308 (inclusive)]972.100032[Double -1.79769e+308...1.79769e+308 (inclusive)]0.10.133[Double -1.79769e+308...1.79769e+308 (inclusive)]3.134[Double -1.79769e+308...1.79769e+308 (inclusive)]0.0000000000212135[Double -1.79769e+308...1.79769e+308 (inclusive)]2.1136[Double -1.79769e+308...1.79769e+308 (inclusive)]0.0000000000212137[Double -1.79769e+308...1.79769e+308 (inclusive)]2.885138[Double -1.79769e+308...1.79769e+308 (inclusive)]

0.5139[Double -1.79769e+308...1.79769e+308 (inclusive)]

1.0140[Double -1.79769e+308...1.79769e+308 (inclusive)]
21.41[Double -1.79769e+308...1.79769e+308 (inclusive)]1242[Integer range -2147483648...2147483647 (inclusive)]0.5143[Double -1.79769e+308...1.79769e+308 (inclusive)]0.250.2544[Double -1.79769e+308...1.79769e+308 (inclusive)]25010045[Double -1.79769e+308...1.79769e+308 (inclusive)]110.110.46[Double -1.79769e+308...1.79769e+308 (inclusive)]-110.-110.47[Double -1.79769e+308...1.79769e+308 (inclusive)]180.180.48[Double -1.79769e+308...1.79769e+308 (inclusive)]-180.-180.49[Double -1.79769e+308...1.79769e+308 (inclusive)]222250[Integer range -2147483648...2147483647 (inclusive)]363651[Integer range -2147483648...2147483647 (inclusive)]1152[Integer range -2147483648...2147483647 (inclusive)]31053[Integer range -2147483648...2147483647 (inclusive)]falsetrue54[Bool]truefalse55[Bool]falsefalse56[Bool]falsefalse57[Bool]2500001000058[Integer range -2147483648...2147483647 (inclusive)]ParaSailsBoomerAMG59[Selection BoomerAMG|Euclid|ParaSails ]0.20.2560[Double -1.79769e+308...1.79769e+308 (inclusive)]0.90.961[Double -1.79769e+308...1.79769e+308 (inclusive)]0062[Integer range -2147483648...2147483647 (inclusive)]falsefalse63[Bool]4164[Integer range -2147483648...2147483647 (inclusive)]2065[Selection 0|1|2 ]1166[Integer range -2147483648...2147483647 (inclusive)]0.10.167[Double -1.79769e+308...1.79769e+308 (inclusive)]0.050.0568[Double -1.79769e+308...1.79769e+308 (inclusive)]0.0.69[Double -1.79769e+308...1.79769e+308 (inclusive)]/home/masteige/projects/mcrack/mcrack2d/examples/test/meshes/mesh.ucd/home/masteige/mcrack2d/examples//meshes/mesh.ucd70[FileName (Type: input)]/home/masteige/projects/mcrack/mcrack2d/examples/test/meshes/crack_path_out_T=001_tip=P1.data/home/masteige/mcrack2d/examples/crack_path_in.data71[FileName (Type: input)]/home/masteige/projects/mcrack/mcrack2d/examples/test/meshes/crack_path_out.data/home/masteige/mcrack2d/examples/crack_path_out.data72[FileName (Type: input)]/home/masteige/projects/mcrack/mcrack2d/examples/test/matrix_M.data/home/masteige/mcrack2d/examples/Matrix_M_in.data73[FileName (Type: input)]/home/masteige/projects/mcrack/mcrack2d/examples/test/matrix_M_out.data/home/masteige/mcrack2d/examples/Matrix_M_out.data74[FileName (Type: input)]/home/masteige/projects/mcrack/mcrack2d/examples/test/da_dN_curve.data/home/masteige/mcrack2d/examples/da_dN_curve.data75[FileName (Type: input)]/home/masteige/projects/mcrack/mcrack2d/examples/test/results.data/home/masteige/mcrack2d/examples/results/results.data76[FileName (Type: input)]/home/masteige/projects/mcrack/mcrack2d/common/scripts/extract_mesh.py/home/masteige/mcrack2d/common/scripts/extract_mesh.py77[FileName (Type: input)]/home/masteige/projects/mcrack/mcrack2d/common/material_database//home/masteige/mcrack2d/common/material_database78[DirectoryName]/home/masteige/projects/mcrack/mcrack2d/examples/test//home/masteige/mcrack2d/examples79[DirectoryName]/home/masteige/projects/mcrack/mcrack2d/examples/test/graphics//home/masteige/mcrack2d/examples/graphics80[DirectoryName]/home/masteige/projects/mcrack/mcrack2d/examples/test/meshes//home/masteige/mcrack2d/examples/meshes81[DirectoryName]/home/masteige/projects/mcrack/mcrack2d/examples/test/results/home/masteige/mcrack2d/examples/results82[DirectoryName]
\ No newline at end of file diff --git a/contrib/parameter_gui/xml_parameter_reader.cpp b/contrib/parameter_gui/xml_parameter_reader.cpp deleted file mode 100644 index a608ea49f1..0000000000 --- a/contrib/parameter_gui/xml_parameter_reader.cpp +++ /dev/null @@ -1,368 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#include - -#include "xml_parameter_reader.h" - - -namespace dealii -{ - namespace ParameterGui - { - XMLParameterReader::XMLParameterReader(QTreeWidget *tree_widget) - : tree_widget(tree_widget) - { - QStyle * style = tree_widget->style(); - - subsection_icon.addPixmap(style->standardPixmap(QStyle::SP_DirClosedIcon), QIcon::Normal, QIcon::Off); - subsection_icon.addPixmap(style->standardPixmap(QStyle::SP_DirOpenIcon), QIcon::Normal, QIcon::On); - - parameter_icon.addPixmap(style->standardPixmap(QStyle::SP_FileIcon)); - } - - - - bool XMLParameterReader::read_xml_file(QIODevice *device) - { - xml.setDevice(device); - - // We look for a StartElement "ParameterHandler" - // and start parsing after this. - // - // - // ... - // - // - - while (xml.readNext() != QXmlStreamReader::Invalid) - { - if (xml.isStartElement()) - if (xml.name() == "ParameterHandler") - { - parse_parameters(); - - return !xml.error();; - }; - }; - - xml.raiseError(QObject::tr("The file is not an ParameterHandler XML file.")); - - return !xml.error(); - } - - - - QString XMLParameterReader::error_string() const - { - return QObject::tr("%1\nLine %2, column %3") - .arg(xml.errorString()) - .arg(xml.lineNumber()) - .arg(xml.columnNumber()); - } - - - - void XMLParameterReader::parse_parameters() - { - Q_ASSERT(xml.isStartElement() && xml.name() == "ParameterHandler"); - - while (xml.readNext() != QXmlStreamReader::Invalid) // go to the next - { // if it is the closing element of ParameterHandler, - if (xml.isEndElement() && xml.name() == "ParameterHandler") - break; // break the loop - - if (xml.isStartElement()) // if it is a start element - read_subsection_element(0); // it must be a subsection or a parameter - }; - } - - - - void XMLParameterReader::read_subsection_element(QTreeWidgetItem *parent) - { - // The structure of the parameter file is assumed to be of the form - // - // - // - // ... - // - // ... - // ... - // ... - // - // - // ... - // - // ... - // - // - // ... - // - // ... - // - // - // Any subsection has a user-specified name also any parameter, but we do not know - // the userspecified names and we can not assume anything. So, when parsing the file, - // we do not know, if the actual is a or a - // in a subsection. To decide, if the element is a subsection- or a parameter-name, - // we assume, that if the next is , we have a - // and a parameter has the entries , , , - // and - - Q_ASSERT(xml.isStartElement()); // the actual element is - - QTreeWidgetItem * subsection = create_child_item(parent); // create a new subsection in the tree - - subsection->setIcon(0, subsection_icon); // set the icon, - subsection->setText(0, demangle(xml.name().toString())); // the name - - tree_widget->setItemExpanded(subsection, 0); // and the folder is not expanded - - while (xml.readNext() != QXmlStreamReader::Invalid) // read the next element - { - if (xml.isEndElement()) // if the next element is , break the loop - break; - - if (xml.isStartElement()) // if it is a start element - { - if (xml.name() == "value") // it can be , then we have found a parameter, - { - subsection->setFlags(subsection->flags() | Qt::ItemIsEditable); // values can be edited, - read_parameter_element (subsection); - } - else // or it can be a new - { - subsection->setFlags(subsection->flags() | Qt::NoItemFlags); // subsections can not be edited, - read_subsection_element (subsection); - }; - }; - }; - } - - - - void XMLParameterReader::read_parameter_element(QTreeWidgetItem *parent) - { - Q_ASSERT(xml.isStartElement() && xml.name() == "value"); // the actual element is , - // then we have found a parameter-item - QString value = xml.readElementText(); // read the element text - parent->setText(1, value); // and store as text to the item - parent->setIcon(0, parameter_icon); // change the icon of parent - - while (xml.readNext() != QXmlStreamReader::Invalid) // go to the next - { - if (xml.isStartElement()) - { - if (xml.isStartElement() && xml.name() == "default_value") // if it is - { - QString default_value = xml.readElementText(); // store it - parent->setText(2, default_value); - } - else if (xml.isStartElement() && xml.name() == "documentation") // if it is - { - QString documentation = xml.readElementText(); // store it - parent->setText(3, documentation); - - if (!documentation.isEmpty()) // if there is a documentation, - { - parent->setToolTip(0, "Documentation: " + documentation); // set Documentation as ToolTip for both columns - parent->setToolTip(1, "Documentation: " + documentation); - parent->setStatusTip(0, "Documentation: " + documentation); // and as StatusTip for the first column also - }; - } - else if (xml.isStartElement() && xml.name() == "pattern") // if it is - { - QString pattern = xml.readElementText(); // store it as text - parent->setText(4, pattern); // we only need this value - // for writing back to XML later - } - else if (xml.isStartElement() && xml.name() == "pattern_description") // if it is - { - QString pattern_description = xml.readElementText(); // store it as text - parent->setText(5, pattern_description); - // show the type and default - // in the StatusLine - parent->setStatusTip(1, "Type: " + pattern_description + " Default: " + parent->text(2)); - - // in order to store values as correct data types, - // we check the following types in the pattern_description: - - QRegExp rx_string("\\b(Anything|FileName|DirectoryName|Selection|List|MultipleSelection)\\b"), - rx_integer("\\b(Integer)\\b"), - rx_double("\\b(Float|Floating|Double)\\b"), - rx_bool("\\b(Selection true|false)\\b"); - - if (rx_string.indexIn (pattern_description) != -1) // the type "Anything" or "Filename" - { - QString value = parent->text(1); // store as a QString - - parent->setData(1, Qt::EditRole, value); // and set the data in the item - parent->setData(1, Qt::DisplayRole, value); - } - else if (rx_integer.indexIn (pattern_description) != -1) // if the tpye is "Integer" - { - QString text = parent->text(1); - - bool ok = true; - - int value = text.toInt(&ok); // we convert the string to int - - if (ok) // and store - { - parent->setData(1, Qt::EditRole, value); - parent->setData(1, Qt::DisplayRole, value); - } - else // otherwise raise an error - xml.raiseError(QObject::tr("Cannot convert integer type to integer!")); - } - else if (rx_double.indexIn (pattern_description) != -1) // the same with "Float" - { - QString text = parent->text(1); - - bool ok = true; - - double value = text.toDouble(&ok); - - if (ok) - { - parent->setData(1, Qt::EditRole, value); - parent->setData(1, Qt::DisplayRole, value); - } - else - xml.raiseError(QObject::tr("Cannot convert double type to double!")); - }; - - if (rx_bool.indexIn (pattern_description) != -1) // and booleans - { - QRegExp test(parent->text(1)); - - bool value = true; - - if (test.exactMatch("true")) - value = true; - else if (test.exactMatch("false")) - value = false; - else - xml.raiseError(QObject::tr("Cannot convert boolen type to boolean!")); - - parent->setText(1, ""); // this is needed because we use - parent->setData(1, Qt::EditRole, value); // for booleans the standard - parent->setData(1, Qt::DisplayRole, value); // delegate - }; - - break; // and break the loop - } - else - { // if there is any other element, raise an error - xml.raiseError(QObject::tr("Incomplete or unknown Parameter!")); - break; // and break the loop, here - }; // we assume the special structure - }; // of the parameter-file! - }; - } - - - - QTreeWidgetItem *XMLParameterReader::create_child_item(QTreeWidgetItem *item) - { - QTreeWidgetItem * child_item; // create a new child-item - - if (item) - child_item = new QTreeWidgetItem(item); // if item is not empty, - else // append the new item as a child - child_item = new QTreeWidgetItem(tree_widget); // otherwise create a new item - // in the tree - - child_item->setData(0, Qt::DisplayRole, xml.name().toString()); // set xml.tag_name as data - child_item->setText(0, xml.name().toString()); // set xml.tag_name as data - - return child_item; - } - - - - QString XMLParameterReader::demangle (const QString &s) - { - std::string s_temp (s.toStdString()); // this function is copied from the ParameterHandler class - - std::string u; - u.reserve (s_temp.size()); - - for (unsigned int i=0; i(c)); - - // skip the two characters - i += 2; - } - - QString v (u.c_str()); - - return v; - } - } -} - diff --git a/contrib/parameter_gui/xml_parameter_reader.h b/contrib/parameter_gui/xml_parameter_reader.h deleted file mode 100644 index 41e8a9fde0..0000000000 --- a/contrib/parameter_gui/xml_parameter_reader.h +++ /dev/null @@ -1,128 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#ifndef XMLPARAMETERREADER_H -#define XMLPARAMETERREADER_H - -#include -#include -#include -#include - - -namespace dealii -{ -/*! @addtogroup ParameterGui - *@{ - */ - namespace ParameterGui - { -/** - * The XMLParameterReader class provides an interface to parse parameters from XML files to a QTreeWidget. - * This class makes extensive use of the QXmlStreamReader class, which implements the basic functionalities - * for parsing XML files. - * - * @note This class is used in the graphical user interface for the @ref ParameterHandler class. - * It is not compiled into the deal.II libraries and can not be used by applications using deal.II. - * - * @ingroup ParameterGui - * @author Martin Steigemann, Wolfgang Bangerth, 2010 - */ - class XMLParameterReader - { - public: - /** - * Constructor. - * The parameter values will be stored in @p tree_widget. - */ - XMLParameterReader (QTreeWidget *tree_widget); - /** - * This function reads the parameters from @p device into the tree_widget. - * We use the QXmlStreamReader class for this. - * There must be a start element - * <ParameterHandler> - * and an end element </ParameterHandler> - * otherwise an exception is thrown. - */ - bool read_xml_file (QIODevice *device); - /** - * This function returns an error message. - */ - QString error_string () const; - - private: - /** - * This function implements a loop over the XML file - * and parses XML elements. It calls @ref read_subsection_element - * till the </ParameterHandler> element is found - * or the end of the file is reached. In this case, an exception is thrown. - */ - void parse_parameters (); - /** - * This functions parses a subsection. - * and adds it as a child to @p parent. - * If the next element is <value>, - * this functions calls @ref read_parameter_element - * otherwise the function itself recursively. - */ - void read_subsection_element (QTreeWidgetItem *parent); - /** - * This function parses a parameter and - * and adds it as a child to @p parent. - * A parameter description consists of five elements: - * @code - * value - * default_value - * documentation - * pattern - * [pattern_description] - * @endcode - * If a parameter description is incomplete, an exception - * is thrown. - */ - void read_parameter_element (QTreeWidgetItem *parent); - /** - * Reimplemented from the @ref ParameterHandler class. - * Unmangle a string @p s into its original form. - */ - QString demangle (const QString &s); - /** - * This helper function creates a new child of @p item in the tree. - */ - QTreeWidgetItem * create_child_item(QTreeWidgetItem *item); - /** - * The QXmlStreamReader object for reading XML elements. - */ - QXmlStreamReader xml; - /** - * A pointer to the tree structure. - */ - QTreeWidget * tree_widget; - /** - * An icon for subsections in the tree structure. - */ - QIcon subsection_icon; - /** - * An icon for parameters in the tree structure. - */ - QIcon parameter_icon; - }; - } -/**@}*/ -} - - -#endif diff --git a/contrib/parameter_gui/xml_parameter_writer.cpp b/contrib/parameter_gui/xml_parameter_writer.cpp deleted file mode 100644 index 4e3331257c..0000000000 --- a/contrib/parameter_gui/xml_parameter_writer.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#include - -#include "xml_parameter_writer.h" - - -namespace dealii -{ - namespace ParameterGui - { - XMLParameterWriter::XMLParameterWriter(QTreeWidget *tree_widget) - : tree_widget(tree_widget) - { - xml.setAutoFormatting(true); // enable auto-formatting - } - - - - bool XMLParameterWriter::write_xml_file(QIODevice *device) - { - xml.setDevice(device); // setup the output device - xml.writeStartDocument(); // write the head - xml.writeStartElement("ParameterHandler"); // write the root element - // loop over the elements - for (int i = 0; i < tree_widget->topLevelItemCount(); ++i) - write_item(tree_widget->topLevelItem(i)); // and write the items - - xml.writeEndDocument() ; // close the first element - - return true; - } - - - - void XMLParameterWriter::write_item(QTreeWidgetItem *item) - { - QString tag_name = mangle(item->text(0)); // store the element name - - xml.writeStartElement(tag_name); // and write to the file - - if (!item->text(1).isEmpty()) // if the "value"-entry of this item is not empty - { // we have a parameter - xml.writeTextElement("value", item->data(1,Qt::EditRole).toString()); - xml.writeTextElement("default_value", item->text(2)); // and we write its values - xml.writeTextElement("documentation", item->text(3)); - xml.writeTextElement("pattern", item->text(4)); - xml.writeTextElement("pattern_description", item->text(5)); - }; - - for (int i = 0; i < item->childCount(); ++i) // go over the childrens recursively - write_item(item->child(i)); - - xml.writeEndElement(); // write closing - } - - - - QString XMLParameterWriter::mangle (const QString &s) - { - std::string s_temp (s.toStdString()); // this function is copied from - // the ParameterHandler class - std::string u; // and adapted to mangle QString - u.reserve (s_temp.size()); - - static const std::string allowed_characters - ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); - - // for all parts of the string, see - // if it is an allowed character or - // not - for (unsigned int i=0; i(s_temp[i])/16]); - u.push_back (hex[static_cast(s_temp[i])%16]); - } - - QString v (u.c_str()); - - return v; - } - } -} diff --git a/contrib/parameter_gui/xml_parameter_writer.h b/contrib/parameter_gui/xml_parameter_writer.h deleted file mode 100644 index de2f425b7a..0000000000 --- a/contrib/parameter_gui/xml_parameter_writer.h +++ /dev/null @@ -1,100 +0,0 @@ -// --------------------------------------------------------------------- -// -// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth -// -// This file is part of the deal.II library. -// -// The deal.II library is free software; you can use it, redistribute -// it, and/or modify it under the terms of the GNU Lesser General -// Public License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// The full text of the license can be found in the file LICENSE at -// the top level of the deal.II distribution. -// -// --------------------------------------------------------------------- - - -#ifndef XMLPARAMETERWRITER_H -#define XMLPARAMETERWRITER_H - -#include -#include -#include - - -namespace dealii -{ -/*! @addtogroup ParameterGui - *@{ - */ - namespace ParameterGui - { -/** - * The XMLParameterWriter class provides an interface to write parameters stored in a QTreeWidget to a file in XML format. - * This class makes extensive use of the QXmlStreamWriter class, which implements the basic functionalities for writing - * XML files. - * - * @note This class is used in the graphical user interface for the @ref ParameterHandler class. - * It is not compiled into the deal.II libraries and can not be used by applications using deal.II. - * - * @ingroup ParameterGui - * @author Martin Steigemann, Wolfgang Bangerth, 2010 - */ - class XMLParameterWriter - { - public: - /** - * Constructor. - * Parameter values from @p tree_widget will be written. - */ - XMLParameterWriter (QTreeWidget *tree_widget); - /** - * This function writes the parameter values stored in tree_widget - * to @p device in XML format. We use the QXmlStreamWriter class - * for this. The root element is - * <ParameterHandler> - */ - bool write_xml_file (QIODevice *device); - - private: - /** - * This function writes a given @p item of tree_widget - * to a file in XML format. For this the QXmlStreamWriter class is used. - * If the @p item is a parameter, the elements that describes this parameter - * are written: - * @code - * value - * default_value - * documentation - * pattern - * [pattern_description] - * @endcode - * If the @p item is a subsection, a start element this_subsection is written - * and write_item is called recursively to write the next item. - */ - void write_item (QTreeWidgetItem *item); - /** - * Reimplemented from the @ref ParameterHandler class. - * Mangle a string @p s so that it - * doesn't contain any special - * characters or spaces. - */ - QString mangle (const QString &s); - /** - * An QXmlStreamWriter object - * which implements the functionalities - * we need for writing parameters to XML files. - */ - QXmlStreamWriter xml; - /** - * A pointer to the QTreeWidget structure - * which stores the parameters. - */ - QTreeWidget * tree_widget; - }; - } -/**@}*/ -} - - -#endif