mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Diagram editor, add two news feature:
1- QET create a backup file, use to restor the project when a crash occur 2- User can enable and edit autosave. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5374 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -89,11 +89,17 @@ INCLUDEPATH += sources \
|
|||||||
sources/ElementsCollection \
|
sources/ElementsCollection \
|
||||||
sources/ElementsCollection/ui \
|
sources/ElementsCollection/ui \
|
||||||
sources/autoNum \
|
sources/autoNum \
|
||||||
sources/autoNum/ui
|
sources/autoNum/ui \
|
||||||
|
sources/ui/configpage
|
||||||
|
|
||||||
|
|
||||||
# Fichiers sources
|
# Fichiers sources
|
||||||
HEADERS += $$files(sources/*.h) $$files(sources/ui/*.h) $$files(sources/editor/*.h) $$files(sources/titleblock/*.h) $$files(sources/richtext/*.h) $$files(sources/qetgraphicsitem/*.h) $$files(sources/factory/*.h) \
|
HEADERS += $$files(sources/*.h) $$files(sources/ui/*.h) \
|
||||||
|
$$files(sources/editor/*.h) \
|
||||||
|
$$files(sources/titleblock/*.h) \
|
||||||
|
$$files(sources/richtext/*.h) \
|
||||||
|
$$files(sources/qetgraphicsitem/*.h) \
|
||||||
|
$$files(sources/factory/*.h) \
|
||||||
$$files(sources/properties/*.h) \
|
$$files(sources/properties/*.h) \
|
||||||
$$files(sources/editor/ui/*.h) \
|
$$files(sources/editor/ui/*.h) \
|
||||||
$$files(sources/editor/esevent/*.h) \
|
$$files(sources/editor/esevent/*.h) \
|
||||||
@@ -104,9 +110,16 @@ HEADERS += $$files(sources/*.h) $$files(sources/ui/*.h) $$files(sources/editor/*
|
|||||||
$$files(sources/ElementsCollection/*.h) \
|
$$files(sources/ElementsCollection/*.h) \
|
||||||
$$files(sources/ElementsCollection/ui/*.h) \
|
$$files(sources/ElementsCollection/ui/*.h) \
|
||||||
$$files(sources/autoNum/*.h) \
|
$$files(sources/autoNum/*.h) \
|
||||||
$$files(sources/autoNum/ui/*.h)
|
$$files(sources/autoNum/ui/*.h) \
|
||||||
|
$$files(sources/ui/configpage/*.h)
|
||||||
|
|
||||||
SOURCES += $$files(sources/*.cpp) $$files(sources/editor/*.cpp) $$files(sources/titleblock/*.cpp) $$files(sources/richtext/*.cpp) $$files(sources/ui/*.cpp) $$files(sources/qetgraphicsitem/*.cpp) $$files(sources/factory/*.cpp) \
|
SOURCES += $$files(sources/*.cpp) \
|
||||||
|
$$files(sources/editor/*.cpp) \
|
||||||
|
$$files(sources/titleblock/*.cpp) \
|
||||||
|
$$files(sources/richtext/*.cpp) \
|
||||||
|
$$files(sources/ui/*.cpp) \
|
||||||
|
$$files(sources/qetgraphicsitem/*.cpp) \
|
||||||
|
$$files(sources/factory/*.cpp) \
|
||||||
$$files(sources/properties/*.cpp) \
|
$$files(sources/properties/*.cpp) \
|
||||||
$$files(sources/editor/ui/*.cpp) \
|
$$files(sources/editor/ui/*.cpp) \
|
||||||
$$files(sources/editor/esevent/*.cpp) \
|
$$files(sources/editor/esevent/*.cpp) \
|
||||||
@@ -117,7 +130,8 @@ SOURCES += $$files(sources/*.cpp) $$files(sources/editor/*.cpp) $$files(sources/
|
|||||||
$$files(sources/ElementsCollection/*.cpp) \
|
$$files(sources/ElementsCollection/*.cpp) \
|
||||||
$$files(sources/ElementsCollection/ui/*.cpp) \
|
$$files(sources/ElementsCollection/ui/*.cpp) \
|
||||||
$$files(sources/autoNum/*.cpp) \
|
$$files(sources/autoNum/*.cpp) \
|
||||||
$$files(sources/autoNum/ui/*.cpp)
|
$$files(sources/autoNum/ui/*.cpp) \
|
||||||
|
$$files(sources/ui/configpage/*.cpp)
|
||||||
|
|
||||||
# Liste des fichiers qui seront incorpores au binaire en tant que ressources Qt
|
# Liste des fichiers qui seront incorpores au binaire en tant que ressources Qt
|
||||||
RESOURCES += qelectrotech.qrc
|
RESOURCES += qelectrotech.qrc
|
||||||
@@ -136,7 +150,8 @@ FORMS += $$files(sources/richtext/*.ui) \
|
|||||||
$$files(sources/ui/*.ui) \
|
$$files(sources/ui/*.ui) \
|
||||||
$$files(sources/editor/ui/*.ui) \
|
$$files(sources/editor/ui/*.ui) \
|
||||||
$$files(sources/ElementsCollection/ui/*.ui) \
|
$$files(sources/ElementsCollection/ui/*.ui) \
|
||||||
$$files(sources/autoNum/ui/*.ui)
|
$$files(sources/autoNum/ui/*.ui) \
|
||||||
|
$$files(sources/ui/configpage/*.ui)
|
||||||
|
|
||||||
UI_SOURCES_DIR = sources/ui/
|
UI_SOURCES_DIR = sources/ui/
|
||||||
UI_HEADERS_DIR = sources/ui/
|
UI_HEADERS_DIR = sources/ui/
|
||||||
|
|||||||
@@ -225,223 +225,6 @@ void NewDiagramPage::loadSavedTbp(){
|
|||||||
applyConf();
|
applyConf();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Constructeur
|
|
||||||
@param parent QWidget parent
|
|
||||||
*/
|
|
||||||
GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage(parent)
|
|
||||||
{
|
|
||||||
//Conf of QElectroTech
|
|
||||||
QSettings settings;
|
|
||||||
bool use_system_colors = settings.value("usesystemcolors", "true").toBool();
|
|
||||||
bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed";
|
|
||||||
bool zoom_out_folio = settings.value("diagrameditor/zoom-out-beyond-of-folio", false).toBool();
|
|
||||||
bool use_trackpad = settings.value("diagramview/gestures", false).toBool();
|
|
||||||
bool save_label_paste = settings.value("diagramcommands/erase-label-on-copy", true).toBool();
|
|
||||||
bool panel_folio = settings.value("genericpanel/folio", true).toBool();
|
|
||||||
bool highlight_integrated_elements = settings.value("diagrameditor/highlight-integrated-elements", true).toBool();
|
|
||||||
bool terminal_exportlist = settings.value("nomenclature-exportlist", true).toBool();
|
|
||||||
QString default_element_informations = settings.value("elementeditor/default-informations", "").toString();
|
|
||||||
|
|
||||||
appearance_ = new QGroupBox(tr("Apparence"), this);
|
|
||||||
use_system_colors_ = new QCheckBox(tr("Utiliser les couleurs du système"), appearance_);
|
|
||||||
projects_view_mode_ = new QGroupBox(tr("Projets"), this);
|
|
||||||
windowed_mode_ = new QRadioButton(tr("Utiliser des fenêtres (appliqué au prochain lancement de QElectroTech)"), projects_view_mode_);
|
|
||||||
tabbed_mode_ = new QRadioButton(tr("Utiliser des onglets (appliqué au prochain lancement de QElectroTech)"), projects_view_mode_);
|
|
||||||
use_trackpad_ = new QCheckBox(tr("Utiliser les gestes du pavé tactile"), projects_view_mode_);
|
|
||||||
save_label_paste_ = new QCheckBox(tr("Ne pas conserver les labels des éléments lors des copier coller"), projects_view_mode_);
|
|
||||||
folio_panel_ = new QCheckBox(tr("Utiliser les labels de folio à la place de leurs ID"), projects_view_mode_);
|
|
||||||
terminal_exportlist_ = new QCheckBox(tr("Exporter les bornes dans la nomenclature"), projects_view_mode_);
|
|
||||||
m_zoom_out_beyond_folio = new QCheckBox(tr("Autoriser le dézoom au delà du folio"), this);
|
|
||||||
|
|
||||||
QString fontInfos = settings.value("diagramitemfont").toString() + " " +
|
|
||||||
settings.value("diagramitemsize").toString() + " (" +
|
|
||||||
settings.value("diagramitemstyle").toString() + ")";
|
|
||||||
font_label = new QLabel(tr("Police des champs de texte"));
|
|
||||||
fontButton = new QPushButton(fontInfos);
|
|
||||||
fontButton->setMinimumHeight(28);
|
|
||||||
|
|
||||||
QString foliolistfontInfos = settings.value("foliolistfont").toString() + " " +
|
|
||||||
settings.value("foliolistsize").toString() + " (" +
|
|
||||||
settings.value("folioliststyle").toString() + ")";
|
|
||||||
foliolist_font_label = new QLabel(tr("Police des champs textes des pages sommaires"));
|
|
||||||
foliolist_fontButton = new QPushButton(foliolistfontInfos);
|
|
||||||
foliolist_fontButton->setMinimumHeight(28);
|
|
||||||
|
|
||||||
elements_management_ = new QGroupBox(tr("Gestion des éléments"), this);
|
|
||||||
highlight_integrated_elements_ = new QCheckBox(tr("Mettre en valeur dans le panel les éléments fraîchement intégrés", "configuration option"));
|
|
||||||
default_element_infos_label_ = new QLabel(
|
|
||||||
tr(
|
|
||||||
"Chaque élément embarque des informations sur ses auteurs, sa licence, ou tout autre renseignement que vous jugerez utile dans un champ libre. "
|
|
||||||
"Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments que vous créerez :"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
default_element_infos_label_ -> setWordWrap(true);
|
|
||||||
default_element_infos_textfield_ = new QTextEdit();
|
|
||||||
default_element_infos_textfield_ -> setAcceptRichText(false);
|
|
||||||
|
|
||||||
use_system_colors_ -> setChecked(use_system_colors);
|
|
||||||
|
|
||||||
use_trackpad_ -> setChecked(use_trackpad);
|
|
||||||
save_label_paste_ -> setChecked(save_label_paste);
|
|
||||||
folio_panel_ ->setChecked(panel_folio);
|
|
||||||
terminal_exportlist_ ->setChecked(terminal_exportlist);
|
|
||||||
|
|
||||||
if (tabbed) {
|
|
||||||
tabbed_mode_ -> setChecked(true);
|
|
||||||
} else {
|
|
||||||
windowed_mode_ -> setChecked(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_zoom_out_beyond_folio -> setChecked(zoom_out_folio);
|
|
||||||
|
|
||||||
highlight_integrated_elements_ -> setChecked(highlight_integrated_elements);
|
|
||||||
default_element_infos_textfield_ -> setPlainText(default_element_informations);
|
|
||||||
|
|
||||||
QVBoxLayout *appearance_layout = new QVBoxLayout();
|
|
||||||
appearance_layout -> addWidget(use_system_colors_);
|
|
||||||
appearance_ -> setLayout(appearance_layout);
|
|
||||||
|
|
||||||
QVBoxLayout *projects_view_mode_layout = new QVBoxLayout;
|
|
||||||
QHBoxLayout *font_view_layout = new QHBoxLayout;
|
|
||||||
QHBoxLayout *foliolist_font_view_layout = new QHBoxLayout;
|
|
||||||
projects_view_mode_layout -> addWidget(windowed_mode_);
|
|
||||||
projects_view_mode_layout -> addWidget(tabbed_mode_);
|
|
||||||
projects_view_mode_layout -> addWidget(m_zoom_out_beyond_folio);
|
|
||||||
projects_view_mode_layout -> addWidget(use_trackpad_);
|
|
||||||
projects_view_mode_layout -> addWidget(save_label_paste_);
|
|
||||||
projects_view_mode_layout -> addWidget(folio_panel_);
|
|
||||||
projects_view_mode_layout -> addWidget(terminal_exportlist_);
|
|
||||||
font_view_layout->addWidget(font_label, 1);
|
|
||||||
font_view_layout->addWidget(fontButton, 0);
|
|
||||||
foliolist_font_view_layout->addWidget(foliolist_font_label, 1);
|
|
||||||
foliolist_font_view_layout->addWidget(foliolist_fontButton, 0);
|
|
||||||
projects_view_mode_layout-> addLayout(font_view_layout);
|
|
||||||
projects_view_mode_layout-> addLayout(foliolist_font_view_layout);
|
|
||||||
projects_view_mode_ -> setLayout(projects_view_mode_layout);
|
|
||||||
|
|
||||||
|
|
||||||
connect(fontButton, SIGNAL(clicked()), this, SLOT(setFont()));
|
|
||||||
connect(foliolist_fontButton, SIGNAL(clicked()), this, SLOT(setFoliolistFont()));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QVBoxLayout *elements_management_layout = new QVBoxLayout();
|
|
||||||
elements_management_layout -> addWidget(highlight_integrated_elements_);
|
|
||||||
elements_management_layout -> addWidget(default_element_infos_label_);
|
|
||||||
elements_management_layout -> addWidget(default_element_infos_textfield_);
|
|
||||||
elements_management_ -> setLayout(elements_management_layout);
|
|
||||||
|
|
||||||
//setup lang combo box selection widget
|
|
||||||
lang_group_box = new QGroupBox(tr("Langue"), this);
|
|
||||||
QHBoxLayout *lang_layout = new QHBoxLayout(lang_group_box);
|
|
||||||
lang_combo_box = new QComboBox();
|
|
||||||
lang_label = new QLabel(tr("La nouvelle langue sera prise en compte au prochain lancement de QElectroTech."));
|
|
||||||
lang_layout->addWidget(lang_combo_box);
|
|
||||||
lang_layout->addWidget(lang_label);
|
|
||||||
fillLang(settings);
|
|
||||||
|
|
||||||
QVBoxLayout *vlayout1 = new QVBoxLayout();
|
|
||||||
|
|
||||||
QLabel *title_label_ = new QLabel(title());
|
|
||||||
vlayout1 -> addWidget(title_label_);
|
|
||||||
|
|
||||||
QFrame *horiz_line_ = new QFrame();
|
|
||||||
horiz_line_ -> setFrameShape(QFrame::HLine);
|
|
||||||
vlayout1 -> addWidget(horiz_line_);
|
|
||||||
|
|
||||||
vlayout1 -> addWidget(appearance_);
|
|
||||||
vlayout1 -> addWidget(projects_view_mode_);
|
|
||||||
vlayout1 -> addWidget(elements_management_);
|
|
||||||
vlayout1 -> addWidget(lang_group_box);
|
|
||||||
vlayout1 -> addStretch();
|
|
||||||
|
|
||||||
setLayout(vlayout1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Destructeur
|
|
||||||
GeneralConfigurationPage::~GeneralConfigurationPage() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief GeneralConfigurationPage::applyConf
|
|
||||||
* Write all configuration in settings file
|
|
||||||
*/
|
|
||||||
void GeneralConfigurationPage::applyConf()
|
|
||||||
{
|
|
||||||
QSettings settings;
|
|
||||||
|
|
||||||
bool was_using_system_colors = settings.value("usesystemcolors", "true").toBool();
|
|
||||||
bool must_use_system_colors = use_system_colors_ -> isChecked();
|
|
||||||
settings.setValue("usesystemcolors", must_use_system_colors);
|
|
||||||
if (was_using_system_colors != must_use_system_colors) {
|
|
||||||
QETApp::instance() -> useSystemPalette(must_use_system_colors);
|
|
||||||
}
|
|
||||||
|
|
||||||
settings.setValue("lang", lang_combo_box->itemData(lang_combo_box->currentIndex()).toString());
|
|
||||||
|
|
||||||
QString view_mode = tabbed_mode_ -> isChecked() ? "tabbed" : "windowed";
|
|
||||||
settings.setValue("diagrameditor/viewmode", view_mode) ;
|
|
||||||
|
|
||||||
settings.setValue("diagrameditor/highlight-integrated-elements", highlight_integrated_elements_ -> isChecked());
|
|
||||||
settings.setValue("elementeditor/default-informations", default_element_infos_textfield_ -> toPlainText());
|
|
||||||
settings.setValue("diagramview/gestures", use_trackpad_ -> isChecked());
|
|
||||||
settings.setValue("diagramcommands/erase-label-on-copy", save_label_paste_ -> isChecked());
|
|
||||||
settings.setValue("diagrameditor/zoom-out-beyond-of-folio", m_zoom_out_beyond_folio->isChecked());
|
|
||||||
settings.setValue("genericpanel/folio",folio_panel_->isChecked());
|
|
||||||
settings.setValue("nomenclature/terminal-exportlist",terminal_exportlist_->isChecked());
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @return l'icone de cette page
|
|
||||||
QIcon GeneralConfigurationPage::icon() const {
|
|
||||||
return(QET::Icons::Settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @return le titre de cette page
|
|
||||||
QString GeneralConfigurationPage::title() const {
|
|
||||||
return(tr("Général", "configuration page title"));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief GeneralConfigurationPage::fillLang
|
|
||||||
* fill all available lang in @lang_combo_box
|
|
||||||
*/
|
|
||||||
void GeneralConfigurationPage::fillLang(QSettings &settings) {
|
|
||||||
lang_combo_box->addItem(QET::Icons::translation, tr("Système"), "system");
|
|
||||||
lang_combo_box->insertSeparator(1);
|
|
||||||
|
|
||||||
// all lang available on lang directory
|
|
||||||
lang_combo_box->addItem(QET::Icons::ar, tr("Arabe"), "ar");
|
|
||||||
lang_combo_box->addItem(QET::Icons::br, tr("Brézilien"), "pt_br");
|
|
||||||
lang_combo_box->addItem(QET::Icons::catalonia, tr("Catalan"), "ca");
|
|
||||||
lang_combo_box->addItem(QET::Icons::cs, tr("Tchèque"), "cs");
|
|
||||||
lang_combo_box->addItem(QET::Icons::de, tr("Allemand"), "de");
|
|
||||||
lang_combo_box->addItem(QET::Icons::da, tr("Danois"), "da");
|
|
||||||
lang_combo_box->addItem(QET::Icons::gr, tr("Grec"), "el");
|
|
||||||
lang_combo_box->addItem(QET::Icons::en, tr("Anglais"), "en");
|
|
||||||
lang_combo_box->addItem(QET::Icons::es, tr("Espagnol"), "es");
|
|
||||||
lang_combo_box->addItem(QET::Icons::fr, tr("Français"), "fr");
|
|
||||||
lang_combo_box->addItem(QET::Icons::hr, tr("Croate"), "hr");
|
|
||||||
lang_combo_box->addItem(QET::Icons::it, tr("Italien"), "it");
|
|
||||||
lang_combo_box->addItem(QET::Icons::pl, tr("Polonais"), "pl");
|
|
||||||
lang_combo_box->addItem(QET::Icons::pt, tr("Portugais"), "pt");
|
|
||||||
lang_combo_box->addItem(QET::Icons::ro, tr("Roumains"), "ro");
|
|
||||||
lang_combo_box->addItem(QET::Icons::ru, tr("Russe"), "ru");
|
|
||||||
lang_combo_box->addItem(QET::Icons::sl, tr("Slovène"), "sl");
|
|
||||||
lang_combo_box->addItem(QET::Icons::nl, tr("Pays-Bas"), "nl");
|
|
||||||
lang_combo_box->addItem(QET::Icons::be, tr("Belgique-Flemish"), "be");
|
|
||||||
|
|
||||||
//set current index to the lang found in setting file
|
|
||||||
//if lang doesn't exist set to system
|
|
||||||
for (int i=0; i<lang_combo_box->count(); i++) {
|
|
||||||
if (lang_combo_box->itemData(i).toString() == settings.value("lang").toString()) {
|
|
||||||
lang_combo_box->setCurrentIndex(i);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
lang_combo_box->setCurrentIndex(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Constructeur
|
Constructeur
|
||||||
@param parent QWidget parent
|
@param parent QWidget parent
|
||||||
@@ -544,43 +327,4 @@ QIcon PrintConfigPage::icon() const {
|
|||||||
QString PrintConfigPage::title() const {
|
QString PrintConfigPage::title() const {
|
||||||
return(tr("Impression", "configuration page title"));
|
return(tr("Impression", "configuration page title"));
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* @brief GeneralConfigurationPage::setFont
|
|
||||||
* Apply font to config
|
|
||||||
*/
|
|
||||||
void GeneralConfigurationPage::setFont()
|
|
||||||
{
|
|
||||||
bool ok;
|
|
||||||
QSettings settings;
|
|
||||||
QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
|
|
||||||
if (ok) {
|
|
||||||
settings.setValue("diagramitemfont", font.family());
|
|
||||||
settings.setValue("diagramitemsize", font.pointSize());
|
|
||||||
settings.setValue("diagramitemweight", font.weight());
|
|
||||||
settings.setValue("diagramitemstyle", font.styleName());
|
|
||||||
QString fontInfos = settings.value("diagramitemfont").toString() + " " +
|
|
||||||
settings.value("diagramitemsize").toString() + " (" +
|
|
||||||
settings.value("diagramitemstyle").toString() + ")";
|
|
||||||
fontButton->setText(fontInfos);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* @brief GeneralConfigurationPage::setFoliolistFont
|
|
||||||
* * Apply font to summary pages
|
|
||||||
*/
|
|
||||||
void GeneralConfigurationPage::setFoliolistFont()
|
|
||||||
{
|
|
||||||
bool ok;
|
|
||||||
QSettings settings;
|
|
||||||
QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
|
|
||||||
if (ok) {
|
|
||||||
settings.setValue("foliolistfont", font.family());
|
|
||||||
settings.setValue("foliolistsize", font.pointSize());
|
|
||||||
settings.setValue("foliolistweight", font.weight());
|
|
||||||
settings.setValue("folioliststyle", font.styleName());
|
|
||||||
QString fontInfos = settings.value("foliolistfont").toString() + " " +
|
|
||||||
settings.value("foliolistsize").toString() + " (" +
|
|
||||||
settings.value("folioliststyle").toString() + ")";
|
|
||||||
foliolist_fontButton->setText(fontInfos);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -69,60 +69,6 @@ public slots:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
This configuration page enables users to specify various options,most of
|
|
||||||
them applying to the whole application.
|
|
||||||
*/
|
|
||||||
class GeneralConfigurationPage : public ConfigPage {
|
|
||||||
Q_OBJECT
|
|
||||||
// constructors, destructor
|
|
||||||
public:
|
|
||||||
GeneralConfigurationPage(QWidget * = nullptr);
|
|
||||||
~GeneralConfigurationPage() override;
|
|
||||||
private:
|
|
||||||
GeneralConfigurationPage(const GeneralConfigurationPage &);
|
|
||||||
|
|
||||||
// methods
|
|
||||||
public:
|
|
||||||
void applyConf() override;
|
|
||||||
QString title() const override;
|
|
||||||
QIcon icon() const override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void fillLang(QSettings &);
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void setFont();
|
|
||||||
void setFoliolistFont();
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
private:
|
|
||||||
QLabel *title_label_;
|
|
||||||
QFrame *horiz_line_;
|
|
||||||
QGroupBox *appearance_;
|
|
||||||
QCheckBox *use_system_colors_;
|
|
||||||
QCheckBox *use_trackpad_;
|
|
||||||
QCheckBox *save_label_paste_;
|
|
||||||
QCheckBox *folio_panel_;
|
|
||||||
QCheckBox *terminal_exportlist_;
|
|
||||||
QGroupBox *projects_view_mode_;
|
|
||||||
QRadioButton *windowed_mode_;
|
|
||||||
QRadioButton *tabbed_mode_;
|
|
||||||
QCheckBox *m_zoom_out_beyond_folio;
|
|
||||||
QLabel *warning_view_mode_;
|
|
||||||
QGroupBox *elements_management_;
|
|
||||||
QCheckBox *highlight_integrated_elements_;
|
|
||||||
QLabel *default_element_infos_label_;
|
|
||||||
QTextEdit *default_element_infos_textfield_;
|
|
||||||
QGroupBox *lang_group_box;
|
|
||||||
QComboBox *lang_combo_box;
|
|
||||||
QLabel *lang_label;
|
|
||||||
QLabel *font_label;
|
|
||||||
QPushButton *fontButton;
|
|
||||||
QLabel *foliolist_font_label;
|
|
||||||
QPushButton *foliolist_fontButton;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This configuration page enables users to set default export options.
|
This configuration page enables users to set default export options.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -29,6 +29,10 @@
|
|||||||
#include "recentfiles.h"
|
#include "recentfiles.h"
|
||||||
#include "qeticons.h"
|
#include "qeticons.h"
|
||||||
#include "templatescollection.h"
|
#include "templatescollection.h"
|
||||||
|
#include "generalconfigurationpage.h"
|
||||||
|
#include "qetmessagebox.h"
|
||||||
|
#include "projectview.h"
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#define QUOTE(x) STRINGIFY(x)
|
#define QUOTE(x) STRINGIFY(x)
|
||||||
@@ -46,13 +50,13 @@ QString QETApp::common_tbt_dir_ = QString();
|
|||||||
QString QETApp::config_dir = QString();
|
QString QETApp::config_dir = QString();
|
||||||
#endif
|
#endif
|
||||||
QString QETApp::lang_dir = QString();
|
QString QETApp::lang_dir = QString();
|
||||||
TitleBlockTemplatesFilesCollection *QETApp::common_tbt_collection_;
|
TitleBlockTemplatesFilesCollection *QETApp::m_common_tbt_collection;
|
||||||
TitleBlockTemplatesFilesCollection *QETApp::custom_tbt_collection_;
|
TitleBlockTemplatesFilesCollection *QETApp::m_custom_tbt_collection;
|
||||||
ElementsCollectionCache *QETApp::collections_cache_ = nullptr;
|
ElementsCollectionCache *QETApp::collections_cache_ = nullptr;
|
||||||
QMap<uint, QETProject *> QETApp::registered_projects_ = QMap<uint, QETProject *>();
|
QMap<uint, QETProject *> QETApp::registered_projects_ = QMap<uint, QETProject *>();
|
||||||
uint QETApp::next_project_id = 0;
|
uint QETApp::next_project_id = 0;
|
||||||
RecentFiles *QETApp::projects_recent_files_ = nullptr;
|
RecentFiles *QETApp::m_projects_recent_files = nullptr;
|
||||||
RecentFiles *QETApp::elements_recent_files_ = nullptr;
|
RecentFiles *QETApp::m_elements_recent_files = nullptr;
|
||||||
TitleBlockTemplate *QETApp::default_titleblock_template_ = nullptr;
|
TitleBlockTemplate *QETApp::default_titleblock_template_ = nullptr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,7 +66,7 @@ TitleBlockTemplate *QETApp::default_titleblock_template_ = nullptr;
|
|||||||
*/
|
*/
|
||||||
QETApp::QETApp(int &argc, char **argv) :
|
QETApp::QETApp(int &argc, char **argv) :
|
||||||
QETSingleApplication(argc, argv, QString("qelectrotech-" + QETApp::userName())),
|
QETSingleApplication(argc, argv, QString("qelectrotech-" + QETApp::userName())),
|
||||||
splash_screen_(nullptr),
|
m_splash_screen(nullptr),
|
||||||
non_interactive_execution_(false)
|
non_interactive_execution_(false)
|
||||||
{
|
{
|
||||||
parseArguments();
|
parseArguments();
|
||||||
@@ -114,20 +118,43 @@ QETApp::QETApp(int &argc, char **argv) :
|
|||||||
openFiles(qet_arguments_);
|
openFiles(qet_arguments_);
|
||||||
}
|
}
|
||||||
buildSystemTrayMenu();
|
buildSystemTrayMenu();
|
||||||
splash_screen_ -> hide();
|
m_splash_screen -> hide();
|
||||||
|
|
||||||
|
checkBackupFiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Destructeur
|
/**
|
||||||
QETApp::~QETApp() {
|
* @brief QETApp::~QETApp
|
||||||
elements_recent_files_ -> save();
|
*/
|
||||||
projects_recent_files_ -> save();
|
QETApp::~QETApp()
|
||||||
delete splash_screen_;
|
{
|
||||||
delete elements_recent_files_;
|
m_elements_recent_files->save();
|
||||||
delete projects_recent_files_;
|
m_projects_recent_files->save();
|
||||||
delete qsti;
|
|
||||||
if (custom_tbt_collection_) delete custom_tbt_collection_;
|
delete m_splash_screen;
|
||||||
if (common_tbt_collection_) delete common_tbt_collection_;
|
delete m_elements_recent_files;
|
||||||
|
delete m_projects_recent_files;
|
||||||
|
delete m_qsti;
|
||||||
|
|
||||||
|
if (m_custom_tbt_collection)
|
||||||
|
delete m_custom_tbt_collection;
|
||||||
|
if (m_common_tbt_collection)
|
||||||
|
delete m_common_tbt_collection;
|
||||||
|
|
||||||
ElementFactory::dropInstance();
|
ElementFactory::dropInstance();
|
||||||
|
|
||||||
|
//Delete all backup files
|
||||||
|
QDir dir(configDir() + "backup");
|
||||||
|
if(dir.exists())
|
||||||
|
{
|
||||||
|
QStringList extension_filter("*.qet");
|
||||||
|
QStringList list = dir.entryList(extension_filter);
|
||||||
|
for(QString str : list)
|
||||||
|
{
|
||||||
|
QFile file(dir.path() + "/" + str);
|
||||||
|
file.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -197,7 +224,7 @@ void QETApp::systray(QSystemTrayIcon::ActivationReason reason) {
|
|||||||
case QSystemTrayIcon::Context:
|
case QSystemTrayIcon::Context:
|
||||||
// affichage du menu
|
// affichage du menu
|
||||||
buildSystemTrayMenu();
|
buildSystemTrayMenu();
|
||||||
qsti -> contextMenu() -> show();
|
m_qsti -> contextMenu() -> show();
|
||||||
break;
|
break;
|
||||||
case QSystemTrayIcon::DoubleClick:
|
case QSystemTrayIcon::DoubleClick:
|
||||||
case QSystemTrayIcon::Trigger:
|
case QSystemTrayIcon::Trigger:
|
||||||
@@ -354,13 +381,13 @@ QString QETApp::elementInfoToVar(const QString &info)
|
|||||||
by QElecrotTech
|
by QElecrotTech
|
||||||
*/
|
*/
|
||||||
TitleBlockTemplatesFilesCollection *QETApp::commonTitleBlockTemplatesCollection() {
|
TitleBlockTemplatesFilesCollection *QETApp::commonTitleBlockTemplatesCollection() {
|
||||||
if (!common_tbt_collection_) {
|
if (!m_common_tbt_collection) {
|
||||||
common_tbt_collection_ = new TitleBlockTemplatesFilesCollection(QETApp::commonTitleBlockTemplatesDir());
|
m_common_tbt_collection = new TitleBlockTemplatesFilesCollection(QETApp::commonTitleBlockTemplatesDir());
|
||||||
common_tbt_collection_ -> setTitle(tr("Cartouches QET", "title of the title block templates collection provided by QElectroTech"));
|
m_common_tbt_collection -> setTitle(tr("Cartouches QET", "title of the title block templates collection provided by QElectroTech"));
|
||||||
common_tbt_collection_ -> setProtocol(QETAPP_COMMON_TBT_PROTOCOL);
|
m_common_tbt_collection -> setProtocol(QETAPP_COMMON_TBT_PROTOCOL);
|
||||||
common_tbt_collection_ -> setCollection(QET::QetCollection::Common);
|
m_common_tbt_collection -> setCollection(QET::QetCollection::Common);
|
||||||
}
|
}
|
||||||
return(common_tbt_collection_);
|
return(m_common_tbt_collection);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -368,13 +395,13 @@ TitleBlockTemplatesFilesCollection *QETApp::commonTitleBlockTemplatesCollection(
|
|||||||
by the end user
|
by the end user
|
||||||
*/
|
*/
|
||||||
TitleBlockTemplatesFilesCollection *QETApp::customTitleBlockTemplatesCollection() {
|
TitleBlockTemplatesFilesCollection *QETApp::customTitleBlockTemplatesCollection() {
|
||||||
if (!custom_tbt_collection_) {
|
if (!m_custom_tbt_collection) {
|
||||||
custom_tbt_collection_ = new TitleBlockTemplatesFilesCollection(QETApp::customTitleBlockTemplatesDir());
|
m_custom_tbt_collection = new TitleBlockTemplatesFilesCollection(QETApp::customTitleBlockTemplatesDir());
|
||||||
custom_tbt_collection_ -> setTitle(tr("Cartouches utilisateur", "title of the user's title block templates collection"));
|
m_custom_tbt_collection -> setTitle(tr("Cartouches utilisateur", "title of the user's title block templates collection"));
|
||||||
custom_tbt_collection_ -> setProtocol(QETAPP_CUSTOM_TBT_PROTOCOL);
|
m_custom_tbt_collection -> setProtocol(QETAPP_CUSTOM_TBT_PROTOCOL);
|
||||||
custom_tbt_collection_ -> setCollection(QET::QetCollection::Custom);
|
m_custom_tbt_collection -> setCollection(QET::QetCollection::Custom);
|
||||||
}
|
}
|
||||||
return(custom_tbt_collection_);
|
return(m_custom_tbt_collection);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -384,8 +411,8 @@ TitleBlockTemplatesFilesCollection *QETApp::customTitleBlockTemplatesCollection(
|
|||||||
QList<TitleBlockTemplatesCollection *> QETApp::availableTitleBlockTemplatesCollections() {
|
QList<TitleBlockTemplatesCollection *> QETApp::availableTitleBlockTemplatesCollections() {
|
||||||
QList<TitleBlockTemplatesCollection *> collections_list;
|
QList<TitleBlockTemplatesCollection *> collections_list;
|
||||||
|
|
||||||
collections_list << common_tbt_collection_;
|
collections_list << m_common_tbt_collection;
|
||||||
collections_list << custom_tbt_collection_;
|
collections_list << m_custom_tbt_collection;
|
||||||
|
|
||||||
foreach(QETProject *opened_project, registered_projects_) {
|
foreach(QETProject *opened_project, registered_projects_) {
|
||||||
collections_list << opened_project -> embeddedTitleBlockTemplatesCollection();
|
collections_list << opened_project -> embeddedTitleBlockTemplatesCollection();
|
||||||
@@ -400,9 +427,9 @@ QList<TitleBlockTemplatesCollection *> QETApp::availableTitleBlockTemplatesColle
|
|||||||
*/
|
*/
|
||||||
TitleBlockTemplatesCollection *QETApp::titleBlockTemplatesCollection(const QString &protocol) {
|
TitleBlockTemplatesCollection *QETApp::titleBlockTemplatesCollection(const QString &protocol) {
|
||||||
if (protocol == QETAPP_COMMON_TBT_PROTOCOL) {
|
if (protocol == QETAPP_COMMON_TBT_PROTOCOL) {
|
||||||
return(common_tbt_collection_);
|
return(m_common_tbt_collection);
|
||||||
} else if (protocol == QETAPP_CUSTOM_TBT_PROTOCOL) {
|
} else if (protocol == QETAPP_CUSTOM_TBT_PROTOCOL) {
|
||||||
return(custom_tbt_collection_);
|
return(m_custom_tbt_collection);
|
||||||
} else {
|
} else {
|
||||||
QETProject *project = QETApp::projectFromString(protocol);
|
QETProject *project = QETApp::projectFromString(protocol);
|
||||||
if (project) {
|
if (project) {
|
||||||
@@ -938,7 +965,7 @@ QList<QETElementEditor *> QETApp::elementEditors(QETProject *project) {
|
|||||||
Nettoie certaines choses avant que l'application ne quitte
|
Nettoie certaines choses avant que l'application ne quitte
|
||||||
*/
|
*/
|
||||||
void QETApp::cleanup() {
|
void QETApp::cleanup() {
|
||||||
qsti -> hide();
|
m_qsti -> hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -970,14 +997,14 @@ template <class T> void QETApp::setMainWindowsVisible(bool visible) {
|
|||||||
@return La liste des fichiers recents pour les projets
|
@return La liste des fichiers recents pour les projets
|
||||||
*/
|
*/
|
||||||
RecentFiles *QETApp::projectsRecentFiles() {
|
RecentFiles *QETApp::projectsRecentFiles() {
|
||||||
return(projects_recent_files_);
|
return(m_projects_recent_files);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@return La liste des fichiers recents pour les elements
|
@return La liste des fichiers recents pour les elements
|
||||||
*/
|
*/
|
||||||
RecentFiles *QETApp::elementsRecentFiles() {
|
RecentFiles *QETApp::elementsRecentFiles() {
|
||||||
return(elements_recent_files_);
|
return(m_elements_recent_files);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1403,8 +1430,8 @@ void QETApp::parseArguments() {
|
|||||||
*/
|
*/
|
||||||
void QETApp::initSplashScreen() {
|
void QETApp::initSplashScreen() {
|
||||||
if (non_interactive_execution_) return;
|
if (non_interactive_execution_) return;
|
||||||
splash_screen_ = new QSplashScreen(QPixmap(":/ico/splash.png"));
|
m_splash_screen = new QSplashScreen(QPixmap(":/ico/splash.png"));
|
||||||
splash_screen_ -> show();
|
m_splash_screen -> show();
|
||||||
setSplashScreenStep(tr("Chargement...", "splash screen caption"));
|
setSplashScreenStep(tr("Chargement...", "splash screen caption"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1414,9 +1441,9 @@ void QETApp::initSplashScreen() {
|
|||||||
rien.
|
rien.
|
||||||
*/
|
*/
|
||||||
void QETApp::setSplashScreenStep(const QString &message) {
|
void QETApp::setSplashScreenStep(const QString &message) {
|
||||||
if (!splash_screen_) return;
|
if (!m_splash_screen) return;
|
||||||
if (!message.isEmpty()) {
|
if (!message.isEmpty()) {
|
||||||
splash_screen_ -> showMessage(message, Qt::AlignBottom | Qt::AlignLeft);
|
m_splash_screen -> showMessage(message, Qt::AlignBottom | Qt::AlignLeft);
|
||||||
}
|
}
|
||||||
processEvents();
|
processEvents();
|
||||||
}
|
}
|
||||||
@@ -1460,10 +1487,10 @@ void QETApp::initConfiguration() {
|
|||||||
|
|
||||||
// fichiers recents
|
// fichiers recents
|
||||||
// note : les icones doivent etre initialisees avant ces instructions (qui creent des menus en interne)
|
// note : les icones doivent etre initialisees avant ces instructions (qui creent des menus en interne)
|
||||||
projects_recent_files_ = new RecentFiles("projects");
|
m_projects_recent_files = new RecentFiles("projects");
|
||||||
projects_recent_files_ -> setIconForFiles(QET::Icons::ProjectFile);
|
m_projects_recent_files -> setIconForFiles(QET::Icons::ProjectFile);
|
||||||
elements_recent_files_ = new RecentFiles("elements");
|
m_elements_recent_files = new RecentFiles("elements");
|
||||||
elements_recent_files_ -> setIconForFiles(QET::Icons::Element);
|
m_elements_recent_files -> setIconForFiles(QET::Icons::Element);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1503,11 +1530,11 @@ void QETApp::initSystemTray() {
|
|||||||
connect(new_element, SIGNAL(triggered()), this, SLOT(newElementEditor()));
|
connect(new_element, SIGNAL(triggered()), this, SLOT(newElementEditor()));
|
||||||
|
|
||||||
// initialisation de l'icone du systray
|
// initialisation de l'icone du systray
|
||||||
qsti = new QSystemTrayIcon(QET::Icons::QETLogo, this);
|
m_qsti = new QSystemTrayIcon(QET::Icons::QETLogo, this);
|
||||||
qsti -> setToolTip(tr("QElectroTech", "systray icon tooltip"));
|
m_qsti -> setToolTip(tr("QElectroTech", "systray icon tooltip"));
|
||||||
connect(qsti, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(systray(QSystemTrayIcon::ActivationReason)));
|
connect(m_qsti, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(systray(QSystemTrayIcon::ActivationReason)));
|
||||||
qsti -> setContextMenu(menu_systray);
|
m_qsti -> setContextMenu(menu_systray);
|
||||||
qsti -> show();
|
m_qsti -> show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1604,6 +1631,82 @@ void QETApp::buildSystemTrayMenu() {
|
|||||||
menu_systray -> addAction(quitter_qet);
|
menu_systray -> addAction(quitter_qet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief QETApp::checkBackupFiles
|
||||||
|
* Check for backup files.
|
||||||
|
* If backup was found, open a dialog and ask user what to do.
|
||||||
|
*/
|
||||||
|
void QETApp::checkBackupFiles()
|
||||||
|
{
|
||||||
|
//Delete all backup files
|
||||||
|
QDir dir(configDir() + "backup");
|
||||||
|
if(dir.exists())
|
||||||
|
{
|
||||||
|
QStringList extension_filter("*.qet");
|
||||||
|
QStringList list = dir.entryList(extension_filter);
|
||||||
|
if(list.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
QString text;
|
||||||
|
if(list.size() == 1)
|
||||||
|
text.append(tr("<b>Le fichier de restauration suivant a été trouvé,<br>"
|
||||||
|
"Voulez-vous l'ouvrir ?</b><br>"));
|
||||||
|
else
|
||||||
|
text.append(tr("<b>Les fichiers de restauration suivant on été trouvé,<br>"
|
||||||
|
"Voulez-vous les ouvrir ?</b><br>"));
|
||||||
|
for(QString name : list)
|
||||||
|
text.append("<br>" + name);
|
||||||
|
|
||||||
|
if (QET::QetMessageBox::question(nullptr, tr("Fichier de restauration"), text, QMessageBox::Ok|QMessageBox::Cancel) == QMessageBox::Ok)
|
||||||
|
{
|
||||||
|
QStringList files_list;
|
||||||
|
for(QString str : list)
|
||||||
|
files_list << dir.path() + "/" + str;
|
||||||
|
|
||||||
|
QList<QETDiagramEditor *> diagrams_editors = diagramEditors();
|
||||||
|
|
||||||
|
//If there is opened editors, we find those who are visible
|
||||||
|
if (diagrams_editors.count())
|
||||||
|
{
|
||||||
|
QList<QETDiagramEditor *> visible_diagrams_editors;
|
||||||
|
for(QETDiagramEditor *de : diagrams_editors) {
|
||||||
|
if (de->isVisible())
|
||||||
|
visible_diagrams_editors << de;
|
||||||
|
}
|
||||||
|
|
||||||
|
//We take the first visible, or the first one
|
||||||
|
QETDiagramEditor *de_open;
|
||||||
|
if (visible_diagrams_editors.count()) {
|
||||||
|
de_open = visible_diagrams_editors.first();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
de_open = diagrams_editors.first();
|
||||||
|
de_open -> setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(QString file : files_list) {
|
||||||
|
de_open -> openAndAddProject(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
new QETDiagramEditor(files_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Because the file was open from backup, we remove the file path of each project opened,
|
||||||
|
//for avoid user to save in the backup directory
|
||||||
|
for(QETDiagramEditor *editor : diagramEditors())
|
||||||
|
{
|
||||||
|
for(ProjectView *pv : editor->openedProjects())
|
||||||
|
{
|
||||||
|
if(files_list.contains(pv->project()->filePath()))
|
||||||
|
pv->project()->setFilePath(QString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Met a jour les booleens concernant l'etat des fenetres
|
/// Met a jour les booleens concernant l'etat des fenetres
|
||||||
void QETApp::fetchWindowStats(
|
void QETApp::fetchWindowStats(
|
||||||
const QList<QETDiagramEditor *> &diagrams,
|
const QList<QETDiagramEditor *> &diagrams,
|
||||||
|
|||||||
307
sources/qetapp.h
307
sources/qetapp.h
@@ -50,188 +50,195 @@ class RecentFiles;
|
|||||||
/**
|
/**
|
||||||
This class represents the QElectroTech application.
|
This class represents the QElectroTech application.
|
||||||
*/
|
*/
|
||||||
class QETApp : public QETSingleApplication {
|
class QETApp : public QETSingleApplication
|
||||||
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
// constructors, destructor
|
// constructors, destructor
|
||||||
public:
|
public:
|
||||||
QETApp(int &, char **);
|
QETApp(int &, char **);
|
||||||
~QETApp() override;
|
~QETApp() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QETApp(const QETApp &);
|
QETApp(const QETApp &);
|
||||||
|
|
||||||
// methods
|
// methods
|
||||||
public:
|
public:
|
||||||
static QETApp *instance();
|
static QETApp *instance();
|
||||||
void setLanguage(const QString &);
|
void setLanguage(const QString &);
|
||||||
static QString langFromSetting ();
|
static QString langFromSetting ();
|
||||||
void switchLayout(Qt::LayoutDirection);
|
void switchLayout(Qt::LayoutDirection);
|
||||||
static void printHelp();
|
static void printHelp();
|
||||||
static void printVersion();
|
static void printVersion();
|
||||||
static void printLicense();
|
static void printLicense();
|
||||||
|
|
||||||
static ElementsCollectionCache *collectionCache();
|
static ElementsCollectionCache *collectionCache();
|
||||||
static QStringList elementInfoKeys();
|
static QStringList elementInfoKeys();
|
||||||
static QString elementTranslatedInfoKey(const QString &);
|
static QString elementTranslatedInfoKey(const QString &);
|
||||||
static QString elementInfoToVar(const QString &info);
|
static QString elementInfoToVar(const QString &info);
|
||||||
|
|
||||||
static TitleBlockTemplatesFilesCollection *commonTitleBlockTemplatesCollection();
|
static TitleBlockTemplatesFilesCollection *commonTitleBlockTemplatesCollection();
|
||||||
static TitleBlockTemplatesFilesCollection *customTitleBlockTemplatesCollection();
|
static TitleBlockTemplatesFilesCollection *customTitleBlockTemplatesCollection();
|
||||||
static QList<TitleBlockTemplatesCollection *> availableTitleBlockTemplatesCollections();
|
static QList<TitleBlockTemplatesCollection *> availableTitleBlockTemplatesCollections();
|
||||||
static TitleBlockTemplatesCollection *titleBlockTemplatesCollection(const QString &);
|
static TitleBlockTemplatesCollection *titleBlockTemplatesCollection(const QString &);
|
||||||
|
|
||||||
static QString userName();
|
static QString userName();
|
||||||
static QString commonElementsDir();
|
static QString commonElementsDir();
|
||||||
static QString customElementsDir();
|
static QString customElementsDir();
|
||||||
static QString commonElementsDirN();
|
static QString commonElementsDirN();
|
||||||
static QString customElementsDirN();
|
static QString customElementsDirN();
|
||||||
static QString commonTitleBlockTemplatesDir();
|
static QString commonTitleBlockTemplatesDir();
|
||||||
static QString customTitleBlockTemplatesDir();
|
static QString customTitleBlockTemplatesDir();
|
||||||
static bool registerProject(QETProject *);
|
static bool registerProject(QETProject *);
|
||||||
static bool unregisterProject(QETProject *);
|
static bool unregisterProject(QETProject *);
|
||||||
static QMap<uint, QETProject *> registeredProjects();
|
static QMap<uint, QETProject *> registeredProjects();
|
||||||
static QETProject *project(const uint &);
|
static QETProject *project(const uint &);
|
||||||
static int projectId(const QETProject *);
|
static int projectId(const QETProject *);
|
||||||
static QString configDir();
|
static QString configDir();
|
||||||
static QString languagesPath();
|
static QString languagesPath();
|
||||||
static QString realPath(const QString &);
|
static QString realPath(const QString &);
|
||||||
static QString symbolicPath(const QString &);
|
static QString symbolicPath(const QString &);
|
||||||
static QStringList handledFileExtensions();
|
static QStringList handledFileExtensions();
|
||||||
static QStringList handledFiles(const QList<QUrl> &);
|
static QStringList handledFiles(const QList<QUrl> &);
|
||||||
static RecentFiles *projectsRecentFiles();
|
static RecentFiles *projectsRecentFiles();
|
||||||
static RecentFiles *elementsRecentFiles();
|
static RecentFiles *elementsRecentFiles();
|
||||||
|
|
||||||
#ifdef QET_ALLOW_OVERRIDE_CED_OPTION
|
#ifdef QET_ALLOW_OVERRIDE_CED_OPTION
|
||||||
public:
|
public:
|
||||||
static void overrideCommonElementsDir(const QString &);
|
static void overrideCommonElementsDir(const QString &);
|
||||||
private:
|
private:
|
||||||
static QString common_elements_dir; ///< Directory containing the common elements collection
|
static QString common_elements_dir; ///< Directory containing the common elements collection
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef QET_ALLOW_OVERRIDE_CTBTD_OPTION
|
#ifdef QET_ALLOW_OVERRIDE_CTBTD_OPTION
|
||||||
public:
|
public:
|
||||||
static void overrideCommonTitleBlockTemplatesDir(const QString &);
|
static void overrideCommonTitleBlockTemplatesDir(const QString &);
|
||||||
private:
|
private:
|
||||||
static QString common_tbt_dir_; ///< Directory containing the common title block templates collection
|
static QString common_tbt_dir_; ///< Directory containing the common title block templates collection
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef QET_ALLOW_OVERRIDE_CD_OPTION
|
#ifdef QET_ALLOW_OVERRIDE_CD_OPTION
|
||||||
public:
|
public:
|
||||||
static void overrideConfigDir(const QString &);
|
static void overrideConfigDir(const QString &);
|
||||||
private:
|
private:
|
||||||
static QString config_dir; ///< Directory containing the user configuration and the custom elements collection
|
static QString config_dir; ///< Directory containing the user configuration and the custom elements collection
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void overrideLangDir(const QString &);
|
static void overrideLangDir(const QString &);
|
||||||
static QString lang_dir; ///< Directory containing localization files.
|
static QString lang_dir; ///< Directory containing localization files.
|
||||||
static QFont diagramTextsFont(qreal = -1.0);
|
static QFont diagramTextsFont(qreal = -1.0);
|
||||||
static QFont diagramTextsItemFont(qreal = -1.0);
|
static QFont diagramTextsItemFont(qreal = -1.0);
|
||||||
static QFont foliolistTextsFont(qreal = -1.0);
|
static QFont foliolistTextsFont(qreal = -1.0);
|
||||||
static QETDiagramEditor *diagramEditorForFile(const QString &);
|
static QETDiagramEditor *diagramEditorForFile(const QString &);
|
||||||
static QETDiagramEditor *diagramEditorAncestorOf (const QWidget *child);
|
static QETDiagramEditor *diagramEditorAncestorOf (const QWidget *child);
|
||||||
static QList<QETDiagramEditor *> diagramEditors();
|
static QList<QETDiagramEditor *> diagramEditors();
|
||||||
static QList<QETElementEditor *> elementEditors();
|
static QList<QETElementEditor *> elementEditors();
|
||||||
static QList<QETElementEditor *> elementEditors(QETProject *);
|
static QList<QETElementEditor *> elementEditors(QETProject *);
|
||||||
static QList<QETTitleBlockTemplateEditor *> titleBlockTemplateEditors();
|
static QList<QETTitleBlockTemplateEditor *> titleBlockTemplateEditors();
|
||||||
static QList<QETTitleBlockTemplateEditor *> titleBlockTemplateEditors(QETProject *);
|
static QList<QETTitleBlockTemplateEditor *> titleBlockTemplateEditors(QETProject *);
|
||||||
static QTextOrientationSpinBoxWidget *createTextOrientationSpinBoxWidget();
|
static QTextOrientationSpinBoxWidget *createTextOrientationSpinBoxWidget();
|
||||||
static TitleBlockTemplate *defaultTitleBlockTemplate();
|
static TitleBlockTemplate *defaultTitleBlockTemplate();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
#ifdef Q_OS_DARWIN
|
#ifdef Q_OS_DARWIN
|
||||||
bool event(QEvent *);
|
bool event(QEvent *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
private:
|
private:
|
||||||
QTranslator qtTranslator;
|
QTranslator qtTranslator;
|
||||||
QTranslator qetTranslator;
|
QTranslator qetTranslator;
|
||||||
QSystemTrayIcon *qsti;
|
QSystemTrayIcon *m_qsti;
|
||||||
QSplashScreen *splash_screen_;
|
QSplashScreen *m_splash_screen;
|
||||||
QMenu *menu_systray;
|
QMenu *menu_systray;
|
||||||
QAction *quitter_qet;
|
QAction *quitter_qet;
|
||||||
QAction *reduce_appli;
|
QAction *reduce_appli;
|
||||||
QAction *restore_appli;
|
QAction *restore_appli;
|
||||||
QAction *reduce_diagrams;
|
QAction *reduce_diagrams;
|
||||||
QAction *restore_diagrams;
|
QAction *restore_diagrams;
|
||||||
QAction *reduce_elements;
|
QAction *reduce_elements;
|
||||||
QAction *restore_elements;
|
QAction *restore_elements;
|
||||||
QAction *reduce_templates;
|
QAction *reduce_templates;
|
||||||
QAction *restore_templates;
|
QAction *restore_templates;
|
||||||
QAction *new_diagram;
|
QAction *new_diagram;
|
||||||
QAction *new_element;
|
QAction *new_element;
|
||||||
QHash<QMainWindow *, QByteArray> window_geometries;
|
QHash<QMainWindow *, QByteArray> window_geometries;
|
||||||
QHash<QMainWindow *, QByteArray> window_states;
|
QHash<QMainWindow *, QByteArray> window_states;
|
||||||
bool every_editor_reduced;
|
bool every_editor_reduced;
|
||||||
bool every_diagram_reduced;
|
bool every_diagram_reduced;
|
||||||
bool every_diagram_visible;
|
bool every_diagram_visible;
|
||||||
bool every_element_reduced;
|
bool every_element_reduced;
|
||||||
bool every_element_visible;
|
bool every_element_visible;
|
||||||
bool every_template_reduced;
|
bool every_template_reduced;
|
||||||
bool every_template_visible;
|
bool every_template_visible;
|
||||||
QSignalMapper signal_map;
|
QSignalMapper signal_map;
|
||||||
QETArguments qet_arguments_; ///< Comand-line arguments parser
|
QETArguments qet_arguments_; ///< Comand-line arguments parser
|
||||||
bool non_interactive_execution_; ///< Whether the application will end without any user interaction
|
bool non_interactive_execution_; ///< Whether the application will end without any user interaction
|
||||||
QPalette initial_palette_; ///< System color palette
|
QPalette initial_palette_; ///< System color palette
|
||||||
|
|
||||||
static TitleBlockTemplatesFilesCollection *common_tbt_collection_;
|
static TitleBlockTemplatesFilesCollection *m_common_tbt_collection;
|
||||||
static TitleBlockTemplatesFilesCollection *custom_tbt_collection_;
|
static TitleBlockTemplatesFilesCollection *m_custom_tbt_collection;
|
||||||
static ElementsCollectionCache *collections_cache_;
|
static ElementsCollectionCache *collections_cache_;
|
||||||
static QMap<uint, QETProject *> registered_projects_;
|
static QMap<uint, QETProject *> registered_projects_;
|
||||||
static uint next_project_id;
|
static uint next_project_id;
|
||||||
static RecentFiles *projects_recent_files_;
|
static RecentFiles *m_projects_recent_files;
|
||||||
static RecentFiles *elements_recent_files_;
|
static RecentFiles *m_elements_recent_files;
|
||||||
static TitleBlockTemplate *default_titleblock_template_;
|
static TitleBlockTemplate *default_titleblock_template_;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void systray(QSystemTrayIcon::ActivationReason);
|
void systray(QSystemTrayIcon::ActivationReason);
|
||||||
void reduceEveryEditor();
|
void reduceEveryEditor();
|
||||||
void restoreEveryEditor();
|
void restoreEveryEditor();
|
||||||
void reduceDiagramEditors();
|
void reduceDiagramEditors();
|
||||||
void restoreDiagramEditors();
|
void restoreDiagramEditors();
|
||||||
void reduceElementEditors();
|
void reduceElementEditors();
|
||||||
void restoreElementEditors();
|
void restoreElementEditors();
|
||||||
void reduceTitleBlockTemplateEditors();
|
void reduceTitleBlockTemplateEditors();
|
||||||
void restoreTitleBlockTemplateEditors();
|
void restoreTitleBlockTemplateEditors();
|
||||||
void newDiagramEditor();
|
void newDiagramEditor();
|
||||||
void newElementEditor();
|
void newElementEditor();
|
||||||
bool closeEveryEditor();
|
bool closeEveryEditor();
|
||||||
void setMainWindowVisible(QMainWindow *, bool);
|
void setMainWindowVisible(QMainWindow *, bool);
|
||||||
void invertMainWindowVisibility(QWidget *);
|
void invertMainWindowVisibility(QWidget *);
|
||||||
void useSystemPalette(bool);
|
void useSystemPalette(bool);
|
||||||
void quitQET();
|
void quitQET();
|
||||||
void checkRemainingWindows();
|
void checkRemainingWindows();
|
||||||
void messageReceived(const QString &);
|
void messageReceived(const QString &);
|
||||||
void openFiles(const QETArguments &);
|
void openFiles(const QETArguments &);
|
||||||
void openProjectFiles(const QStringList &);
|
void openProjectFiles(const QStringList &);
|
||||||
void openElementFiles(const QStringList &);
|
void openElementFiles(const QStringList &);
|
||||||
void openElementLocations(const QList<ElementsLocation> &);
|
void openElementLocations(const QList<ElementsLocation> &);
|
||||||
void openTitleBlockTemplate(const TitleBlockTemplateLocation &, bool = false);
|
void openTitleBlockTemplate(const TitleBlockTemplateLocation &, bool = false);
|
||||||
void openTitleBlockTemplate(const QString &);
|
void openTitleBlockTemplate(const QString &);
|
||||||
void openTitleBlockTemplateFiles(const QStringList &);
|
void openTitleBlockTemplateFiles(const QStringList &);
|
||||||
void configureQET();
|
void configureQET();
|
||||||
void aboutQET();
|
void aboutQET();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void cleanup();
|
void cleanup();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template <class T> QList<T *> detectWindows() const;
|
template <class T> QList<T *> detectWindows() const;
|
||||||
template <class T> void setMainWindowsVisible(bool);
|
template <class T> void setMainWindowsVisible(bool);
|
||||||
QList<QWidget *> floatingToolbarsAndDocksForMainWindow(QMainWindow *) const;
|
QList<QWidget *> floatingToolbarsAndDocksForMainWindow(QMainWindow *) const;
|
||||||
void parseArguments();
|
void parseArguments();
|
||||||
void initSplashScreen();
|
void initSplashScreen();
|
||||||
void setSplashScreenStep(const QString & = QString());
|
void setSplashScreenStep(const QString & = QString());
|
||||||
void initLanguage();
|
void initLanguage();
|
||||||
void initStyle();
|
void initStyle();
|
||||||
void initConfiguration();
|
void initConfiguration();
|
||||||
void initSystemTray();
|
void initSystemTray();
|
||||||
void buildSystemTrayMenu();
|
void buildSystemTrayMenu();
|
||||||
void fetchWindowStats(
|
void checkBackupFiles();
|
||||||
const QList<QETDiagramEditor *> &,
|
void fetchWindowStats(
|
||||||
const QList<QETElementEditor *> &,
|
const QList<QETDiagramEditor *> &,
|
||||||
const QList<QETTitleBlockTemplateEditor *> &
|
const QList<QETElementEditor *> &,
|
||||||
);
|
const QList<QETTitleBlockTemplateEditor *> &
|
||||||
template <class T> void addWindowsListToMenu(QMenu *, const QList<T *> &);
|
);
|
||||||
static int projectIdFromString(const QString &);
|
template <class T> void addWindowsListToMenu(QMenu *, const QList<T *> &);
|
||||||
static QETProject *projectFromString(const QString &);
|
static int projectIdFromString(const QString &);
|
||||||
|
static QETProject *projectFromString(const QString &);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -32,9 +32,11 @@
|
|||||||
#include "numerotationcontextcommands.h"
|
#include "numerotationcontextcommands.h"
|
||||||
#include "assignvariables.h"
|
#include "assignvariables.h"
|
||||||
|
|
||||||
|
#include <QTimer>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
|
|
||||||
|
static int BACKUP_INTERVAL = 300000; //interval in ms of backup
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Constructeur par defaut - cree un schema contenant une collection
|
Constructeur par defaut - cree un schema contenant une collection
|
||||||
d'elements vide et un schema vide.
|
d'elements vide et un schema vide.
|
||||||
@@ -63,8 +65,26 @@ QETProject::QETProject(int diagrams, QObject *parent) :
|
|||||||
|
|
||||||
setupTitleBlockTemplatesCollection();
|
setupTitleBlockTemplatesCollection();
|
||||||
|
|
||||||
undo_stack_ = new QUndoStack();
|
m_undo_stack = new QUndoStack();
|
||||||
connect(undo_stack_, SIGNAL(cleanChanged(bool)), this, SLOT(undoStackChanged(bool)));
|
connect(m_undo_stack, SIGNAL(cleanChanged(bool)), this, SLOT(undoStackChanged(bool)));
|
||||||
|
|
||||||
|
m_save_backup_timer.setInterval(BACKUP_INTERVAL);
|
||||||
|
connect(&m_save_backup_timer, &QTimer::timeout, this, &QETProject::writeBackup);
|
||||||
|
m_save_backup_timer.start();
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
int autosave_interval = settings.value("diagrameditor/autosave-interval", 0).toInt();
|
||||||
|
if(autosave_interval > 0)
|
||||||
|
{
|
||||||
|
int ms = autosave_interval*60*1000;
|
||||||
|
m_autosave_timer.setInterval(ms);
|
||||||
|
connect(&m_autosave_timer, &QTimer::timeout, [this]()
|
||||||
|
{
|
||||||
|
if(!this->m_file_path.isEmpty())
|
||||||
|
this->write();
|
||||||
|
});
|
||||||
|
m_autosave_timer.start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -111,8 +131,27 @@ QETProject::QETProject(const QString &path, QObject *parent) :
|
|||||||
setReadOnly(true);
|
setReadOnly(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
undo_stack_ = new QUndoStack();
|
m_undo_stack = new QUndoStack();
|
||||||
connect(undo_stack_, SIGNAL(cleanChanged(bool)), this, SLOT(undoStackChanged(bool)));
|
connect(m_undo_stack, SIGNAL(cleanChanged(bool)), this, SLOT(undoStackChanged(bool)));
|
||||||
|
|
||||||
|
m_save_backup_timer.setInterval(BACKUP_INTERVAL);
|
||||||
|
connect(&m_save_backup_timer, &QTimer::timeout, this, &QETProject::writeBackup);
|
||||||
|
m_save_backup_timer.start();
|
||||||
|
writeBackup();
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
int autosave_interval = settings.value("diagrameditor/autosave-interval", 0).toInt();
|
||||||
|
if(autosave_interval > 0)
|
||||||
|
{
|
||||||
|
int ms = autosave_interval*60*1000;
|
||||||
|
m_autosave_timer.setInterval(ms);
|
||||||
|
connect(&m_autosave_timer, &QTimer::timeout, [this]()
|
||||||
|
{
|
||||||
|
if(!this->m_file_path.isEmpty())
|
||||||
|
this->write();
|
||||||
|
});
|
||||||
|
m_autosave_timer.start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -122,7 +161,18 @@ QETProject::QETProject(const QString &path, QObject *parent) :
|
|||||||
QETProject::~QETProject()
|
QETProject::~QETProject()
|
||||||
{
|
{
|
||||||
qDeleteAll(m_diagrams_list);
|
qDeleteAll(m_diagrams_list);
|
||||||
delete undo_stack_;
|
delete m_undo_stack;
|
||||||
|
|
||||||
|
//Project is closed without crash, we can safely remove the backup file.
|
||||||
|
if (!m_file_path.isEmpty())
|
||||||
|
{
|
||||||
|
QDir dir(QETApp::configDir() + "/backup");
|
||||||
|
if(!dir.exists())
|
||||||
|
return;
|
||||||
|
|
||||||
|
QString project_name = m_file_path.split("/").last();
|
||||||
|
dir.remove(project_name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -187,7 +237,7 @@ TitleBlockTemplatesProjectCollection *QETProject::embeddedTitleBlockTemplatesCol
|
|||||||
@return le chemin du fichier dans lequel ce projet est enregistre
|
@return le chemin du fichier dans lequel ce projet est enregistre
|
||||||
*/
|
*/
|
||||||
QString QETProject::filePath() {
|
QString QETProject::filePath() {
|
||||||
return(file_path_);
|
return(m_file_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -195,15 +245,15 @@ QString QETProject::filePath() {
|
|||||||
@param filepath Nouveau chemin de fichier
|
@param filepath Nouveau chemin de fichier
|
||||||
*/
|
*/
|
||||||
void QETProject::setFilePath(const QString &filepath) {
|
void QETProject::setFilePath(const QString &filepath) {
|
||||||
file_path_ = filepath;
|
m_file_path = filepath;
|
||||||
|
|
||||||
// le chemin a change : on reevalue la necessite du mode lecture seule
|
// le chemin a change : on reevalue la necessite du mode lecture seule
|
||||||
QFileInfo file_path_info(file_path_);
|
QFileInfo file_path_info(m_file_path);
|
||||||
if (file_path_info.isWritable()) {
|
if (file_path_info.isWritable()) {
|
||||||
setReadOnly(false);
|
setReadOnly(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
emit(projectFilePathChanged(this, file_path_));
|
emit(projectFilePathChanged(this, m_file_path));
|
||||||
emit(projectInformationsChanged(this));
|
emit(projectInformationsChanged(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,10 +264,10 @@ void QETProject::setFilePath(const QString &filepath) {
|
|||||||
*/
|
*/
|
||||||
QString QETProject::currentDir() const {
|
QString QETProject::currentDir() const {
|
||||||
QString current_directory;
|
QString current_directory;
|
||||||
if (file_path_.isEmpty()) {
|
if (m_file_path.isEmpty()) {
|
||||||
current_directory = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
|
current_directory = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
|
||||||
} else {
|
} else {
|
||||||
current_directory = QFileInfo(file_path_).absoluteDir().absolutePath();
|
current_directory = QFileInfo(m_file_path).absoluteDir().absolutePath();
|
||||||
}
|
}
|
||||||
return(current_directory);
|
return(current_directory);
|
||||||
}
|
}
|
||||||
@@ -240,14 +290,14 @@ QString QETProject::pathNameTitle() const {
|
|||||||
"Projet « %1 : %2»",
|
"Projet « %1 : %2»",
|
||||||
"displayed title for a ProjectView - %1 is the project title, -%2 is the project path"
|
"displayed title for a ProjectView - %1 is the project title, -%2 is the project path"
|
||||||
)
|
)
|
||||||
).arg(project_title_).arg (file_path_);
|
).arg(project_title_).arg (m_file_path);
|
||||||
} else if (!file_path_.isEmpty()) {
|
} else if (!m_file_path.isEmpty()) {
|
||||||
final_title = QString(
|
final_title = QString(
|
||||||
tr(
|
tr(
|
||||||
"Projet %1",
|
"Projet %1",
|
||||||
"displayed title for a title-less project - %1 is the file name"
|
"displayed title for a title-less project - %1 is the file name"
|
||||||
)
|
)
|
||||||
).arg(QFileInfo(file_path_).completeBaseName());
|
).arg(QFileInfo(m_file_path).completeBaseName());
|
||||||
} else {
|
} else {
|
||||||
final_title = QString(
|
final_title = QString(
|
||||||
tr(
|
tr(
|
||||||
@@ -800,12 +850,12 @@ bool QETProject::close() {
|
|||||||
QETResult QETProject::write()
|
QETResult QETProject::write()
|
||||||
{
|
{
|
||||||
// this operation requires a filepath
|
// this operation requires a filepath
|
||||||
if (file_path_.isEmpty())
|
if (m_file_path.isEmpty())
|
||||||
return(QString("unable to save project to file: no filepath was specified"));
|
return(QString("unable to save project to file: no filepath was specified"));
|
||||||
|
|
||||||
// if the project was opened read-only and the file is still non-writable, do not save the project
|
// if the project was opened read-only and the file is still non-writable, do not save the project
|
||||||
if (isReadOnly() && !QFileInfo(file_path_).isWritable())
|
if (isReadOnly() && !QFileInfo(m_file_path).isWritable())
|
||||||
return(QString("the file %1 was opened read-only and thus will not be written").arg(file_path_));
|
return(QString("the file %1 was opened read-only and thus will not be written").arg(m_file_path));
|
||||||
|
|
||||||
|
|
||||||
//Get the project in xml
|
//Get the project in xml
|
||||||
@@ -813,7 +863,7 @@ QETResult QETProject::write()
|
|||||||
xml_project.appendChild(xml_project.importNode(toXml().documentElement(), true));
|
xml_project.appendChild(xml_project.importNode(toXml().documentElement(), true));
|
||||||
|
|
||||||
QString error_message;
|
QString error_message;
|
||||||
if (!QET::writeXmlFile(xml_project, file_path_, &error_message)) return(error_message);
|
if (!QET::writeXmlFile(xml_project, m_file_path, &error_message)) return(error_message);
|
||||||
|
|
||||||
setModified(false);
|
setModified(false);
|
||||||
return(QETResult());
|
return(QETResult());
|
||||||
@@ -823,7 +873,7 @@ QETResult QETProject::write()
|
|||||||
@return true si le projet est en mode readonly, false sinon
|
@return true si le projet est en mode readonly, false sinon
|
||||||
*/
|
*/
|
||||||
bool QETProject::isReadOnly() const {
|
bool QETProject::isReadOnly() const {
|
||||||
return(read_only_ && read_only_file_path_ == file_path_);
|
return(read_only_ && read_only_file_path_ == m_file_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -836,7 +886,7 @@ void QETProject::setReadOnly(bool read_only)
|
|||||||
if (read_only_ != read_only)
|
if (read_only_ != read_only)
|
||||||
{
|
{
|
||||||
//keep the file to which this project is read-only
|
//keep the file to which this project is read-only
|
||||||
read_only_file_path_ = file_path_;
|
read_only_file_path_ = m_file_path;
|
||||||
read_only_ = read_only;
|
read_only_ = read_only;
|
||||||
emit(readOnlyChanged(this, read_only));
|
emit(readOnlyChanged(this, read_only));
|
||||||
}
|
}
|
||||||
@@ -1597,6 +1647,30 @@ NamesList QETProject::namesListForIntegrationCategory() {
|
|||||||
return(names);
|
return(names);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief QETProject::writeBackup
|
||||||
|
* Write a backup file of this project, in the case that QET crash
|
||||||
|
*/
|
||||||
|
void QETProject::writeBackup()
|
||||||
|
{
|
||||||
|
if(m_file_path.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
QDir dir(QETApp::configDir() + "/backup");
|
||||||
|
if(!dir.exists())
|
||||||
|
{
|
||||||
|
dir.cdUp();
|
||||||
|
dir.mkdir("backup");
|
||||||
|
dir.cd("backup");
|
||||||
|
}
|
||||||
|
|
||||||
|
QDomDocument xml_project;
|
||||||
|
xml_project.appendChild(xml_project.importNode(toXml().documentElement(), true));
|
||||||
|
|
||||||
|
QString project_name = m_file_path.split("/").last();
|
||||||
|
QET::writeXmlFile(xml_project, dir.absoluteFilePath(project_name));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@return true if project options (title, project-wide properties, settings
|
@return true if project options (title, project-wide properties, settings
|
||||||
for new diagrams, diagrams order...) were modified, false otherwise.
|
for new diagrams, diagrams order...) were modified, false otherwise.
|
||||||
@@ -1634,7 +1708,7 @@ void QETProject::setProjectProperties(const DiagramContext &context) {
|
|||||||
bool QETProject::projectWasModified() {
|
bool QETProject::projectWasModified() {
|
||||||
|
|
||||||
if ( projectOptionsWereModified() ||
|
if ( projectOptionsWereModified() ||
|
||||||
!undo_stack_ -> isClean() ||
|
!m_undo_stack -> isClean() ||
|
||||||
titleblocks_.templates().count() )
|
titleblocks_.templates().count() )
|
||||||
return(true);
|
return(true);
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ class MoveTitleBlockTemplatesHandler;
|
|||||||
class NumerotationContext;
|
class NumerotationContext;
|
||||||
class QUndoStack;
|
class QUndoStack;
|
||||||
class XmlElementCollection;
|
class XmlElementCollection;
|
||||||
|
class QTimer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This class represents a QET project. Typically saved as a .qet file, it
|
This class represents a QET project. Typically saved as a .qet file, it
|
||||||
@@ -55,7 +56,6 @@ class QETProject : public QObject
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QETProject(const QETProject &);
|
QETProject(const QETProject &);
|
||||||
void init ();
|
|
||||||
|
|
||||||
// enums
|
// enums
|
||||||
public:
|
public:
|
||||||
@@ -163,7 +163,7 @@ class QETProject : public QObject
|
|||||||
bool projectOptionsWereModified();
|
bool projectOptionsWereModified();
|
||||||
DiagramContext projectProperties();
|
DiagramContext projectProperties();
|
||||||
void setProjectProperties(const DiagramContext &);
|
void setProjectProperties(const DiagramContext &);
|
||||||
QUndoStack* undoStack() {return undo_stack_;}
|
QUndoStack* undoStack() {return m_undo_stack;}
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
Diagram *addNewDiagram();
|
Diagram *addNewDiagram();
|
||||||
@@ -204,7 +204,6 @@ class QETProject : public QObject
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void setupTitleBlockTemplatesCollection();
|
void setupTitleBlockTemplatesCollection();
|
||||||
|
|
||||||
void readProjectXml(QDomDocument &xml_project);
|
void readProjectXml(QDomDocument &xml_project);
|
||||||
void readDiagramsXml(QDomDocument &xml_project);
|
void readDiagramsXml(QDomDocument &xml_project);
|
||||||
void readElementsCollectionXml(QDomDocument &xml_project);
|
void readElementsCollectionXml(QDomDocument &xml_project);
|
||||||
@@ -215,11 +214,12 @@ class QETProject : public QObject
|
|||||||
void writeDefaultPropertiesXml(QDomElement &);
|
void writeDefaultPropertiesXml(QDomElement &);
|
||||||
void addDiagram(Diagram *);
|
void addDiagram(Diagram *);
|
||||||
NamesList namesListForIntegrationCategory();
|
NamesList namesListForIntegrationCategory();
|
||||||
|
void writeBackup();
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
private:
|
private:
|
||||||
/// File path this project is saved to
|
/// File path this project is saved to
|
||||||
QString file_path_;
|
QString m_file_path;
|
||||||
/// Current state of the project
|
/// Current state of the project
|
||||||
ProjectState state_;
|
ProjectState state_;
|
||||||
/// Diagrams carried by the project
|
/// Diagrams carried by the project
|
||||||
@@ -249,7 +249,7 @@ class QETProject : public QObject
|
|||||||
/// project-wide variables that will be made available to child diagrams
|
/// project-wide variables that will be made available to child diagrams
|
||||||
DiagramContext project_properties_;
|
DiagramContext project_properties_;
|
||||||
/// undo stack for this project
|
/// undo stack for this project
|
||||||
QUndoStack *undo_stack_;
|
QUndoStack *m_undo_stack;
|
||||||
/// Conductor auto numerotation
|
/// Conductor auto numerotation
|
||||||
QHash <QString, NumerotationContext> m_conductor_autonum;//Title and NumContext hash
|
QHash <QString, NumerotationContext> m_conductor_autonum;//Title and NumContext hash
|
||||||
QString m_current_conductor_autonum;
|
QString m_current_conductor_autonum;
|
||||||
@@ -264,6 +264,8 @@ class QETProject : public QObject
|
|||||||
XmlElementCollection *m_elements_collection;
|
XmlElementCollection *m_elements_collection;
|
||||||
bool m_freeze_new_elements;
|
bool m_freeze_new_elements;
|
||||||
bool m_freeze_new_conductors;
|
bool m_freeze_new_conductors;
|
||||||
|
QTimer m_save_backup_timer,
|
||||||
|
m_autosave_timer;
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(QETProject *)
|
Q_DECLARE_METATYPE(QETProject *)
|
||||||
|
|||||||
204
sources/ui/configpage/generalconfigurationpage.cpp
Normal file
204
sources/ui/configpage/generalconfigurationpage.cpp
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2006-2018 The QElectroTech Team
|
||||||
|
This file is part of QElectroTech.
|
||||||
|
|
||||||
|
QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "generalconfigurationpage.h"
|
||||||
|
#include "ui_generalconfigurationpage.h"
|
||||||
|
#include "qeticons.h"
|
||||||
|
#include "qetapp.h"
|
||||||
|
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QFontDialog>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GeneralConfigurationPage::GeneralConfigurationPage
|
||||||
|
* @param parent
|
||||||
|
*/
|
||||||
|
GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) :
|
||||||
|
ConfigPage(parent),
|
||||||
|
ui(new Ui::GeneralConfigurationPage)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
QSettings settings;
|
||||||
|
|
||||||
|
ui->m_use_system_color_cb->setChecked(settings.value("usesystemcolors", "true").toBool());
|
||||||
|
bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed";
|
||||||
|
if(tabbed)
|
||||||
|
ui->m_use_tab_mode_rb->setChecked(true);
|
||||||
|
else
|
||||||
|
ui->m_use_windows_mode_rb->setChecked(true);
|
||||||
|
ui->m_zoom_out_beyond_folio->setChecked(settings.value("diagrameditor/zoom-out-beyond-of-folio", false).toBool());
|
||||||
|
ui->m_use_gesture_trackpad->setChecked(settings.value("diagramview/gestures", false).toBool());
|
||||||
|
ui->m_save_label_paste->setChecked(settings.value("diagramcommands/erase-label-on-copy", true).toBool());
|
||||||
|
ui->m_use_folio_label->setChecked(settings.value("genericpanel/folio", true).toBool());
|
||||||
|
ui->m_export_terminal->setChecked(settings.value("nomenclature-exportlist", true).toBool());
|
||||||
|
ui->m_autosave_sb->setValue(settings.value("diagrameditor/autosave-interval", 0).toInt());
|
||||||
|
|
||||||
|
QString fontInfos = settings.value("diagramitemfont").toString() + " " +
|
||||||
|
settings.value("diagramitemsize").toString() + " (" +
|
||||||
|
settings.value("diagramitemstyle").toString() + ")";
|
||||||
|
ui->m_font_pb->setText(fontInfos);
|
||||||
|
|
||||||
|
QString foliolistfontInfos = settings.value("foliolistfont").toString() + " " +
|
||||||
|
settings.value("foliolistsize").toString() + " (" +
|
||||||
|
settings.value("folioliststyle").toString() + ")";
|
||||||
|
ui->m_folio_list_pb->setText(foliolistfontInfos);
|
||||||
|
|
||||||
|
ui->m_highlight_integrated_elements->setChecked(settings.value("diagrameditor/highlight-integrated-elements", true).toBool());
|
||||||
|
ui->m_default_elements_info->setPlainText(settings.value("elementeditor/default-informations", "").toString());
|
||||||
|
|
||||||
|
fillLang();
|
||||||
|
}
|
||||||
|
|
||||||
|
GeneralConfigurationPage::~GeneralConfigurationPage()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GeneralConfigurationPage::applyConf
|
||||||
|
* Write all configuration in settings file
|
||||||
|
*/
|
||||||
|
void GeneralConfigurationPage::applyConf()
|
||||||
|
{
|
||||||
|
QSettings settings;
|
||||||
|
|
||||||
|
bool was_using_system_colors = settings.value("usesystemcolors", "true").toBool();
|
||||||
|
bool must_use_system_colors = ui->m_use_system_color_cb->isChecked();
|
||||||
|
settings.setValue("usesystemcolors", must_use_system_colors);
|
||||||
|
if (was_using_system_colors != must_use_system_colors) {
|
||||||
|
QETApp::instance()->useSystemPalette(must_use_system_colors);
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.setValue("lang", ui->m_lang_cb->itemData(ui->m_lang_cb->currentIndex()).toString());
|
||||||
|
|
||||||
|
QString view_mode = ui->m_use_tab_mode_rb->isChecked() ? "tabbed" : "windowed";
|
||||||
|
settings.setValue("diagrameditor/viewmode", view_mode) ;
|
||||||
|
|
||||||
|
settings.setValue("diagrameditor/highlight-integrated-elements", ui->m_highlight_integrated_elements->isChecked());
|
||||||
|
settings.setValue("elementeditor/default-informations", ui->m_default_elements_info->toPlainText());
|
||||||
|
settings.setValue("diagramview/gestures", ui->m_use_gesture_trackpad->isChecked());
|
||||||
|
settings.setValue("diagramcommands/erase-label-on-copy", ui->m_save_label_paste->isChecked());
|
||||||
|
settings.setValue("diagrameditor/zoom-out-beyond-of-folio", ui->m_zoom_out_beyond_folio->isChecked());
|
||||||
|
settings.setValue("genericpanel/folio",ui->m_use_folio_label->isChecked());
|
||||||
|
settings.setValue("nomenclature/terminal-exportlist",ui->m_export_terminal->isChecked());
|
||||||
|
settings.setValue("diagrameditor/autosave-interval", ui->m_autosave_sb->value());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GeneralConfigurationPage::title
|
||||||
|
* @return The title of this page
|
||||||
|
*/
|
||||||
|
QString GeneralConfigurationPage::title() const {
|
||||||
|
return(tr("Général", "configuration page title"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GeneralConfigurationPage::icon
|
||||||
|
* @return The icon of this page
|
||||||
|
*/
|
||||||
|
QIcon GeneralConfigurationPage::icon() const {
|
||||||
|
return(QET::Icons::Settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GeneralConfigurationPage::fillLang
|
||||||
|
* fill all available lang
|
||||||
|
*/
|
||||||
|
void GeneralConfigurationPage::fillLang()
|
||||||
|
{
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::translation, tr("Système"), "system");
|
||||||
|
ui->m_lang_cb->insertSeparator(1);
|
||||||
|
|
||||||
|
// all lang available on lang directory
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::ar, tr("Arabe"), "ar");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::br, tr("Brézilien"), "pt_br");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::catalonia, tr("Catalan"), "ca");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::cs, tr("Tchèque"), "cs");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::de, tr("Allemand"), "de");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::da, tr("Danois"), "da");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::gr, tr("Grec"), "el");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::en, tr("Anglais"), "en");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::es, tr("Espagnol"), "es");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::fr, tr("Français"), "fr");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::hr, tr("Croate"), "hr");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::it, tr("Italien"), "it");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::pl, tr("Polonais"), "pl");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::pt, tr("Portugais"), "pt");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::ro, tr("Roumains"), "ro");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::ru, tr("Russe"), "ru");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::sl, tr("Slovène"), "sl");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::nl, tr("Pays-Bas"), "nl");
|
||||||
|
ui->m_lang_cb->addItem(QET::Icons::be, tr("Belgique-Flemish"), "be");
|
||||||
|
|
||||||
|
//set current index to the lang found in setting file
|
||||||
|
//if lang doesn't exist set to system
|
||||||
|
QSettings settings;
|
||||||
|
for (int i=0; i<ui->m_lang_cb->count(); i++)
|
||||||
|
{
|
||||||
|
if (ui->m_lang_cb->itemData(i).toString() == settings.value("lang").toString())
|
||||||
|
{
|
||||||
|
ui->m_lang_cb->setCurrentIndex(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ui->m_lang_cb->setCurrentIndex(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GeneralConfigurationPage::on_m_font_pb_clicked
|
||||||
|
* Apply font to config
|
||||||
|
*/
|
||||||
|
void GeneralConfigurationPage::on_m_font_pb_clicked()
|
||||||
|
{
|
||||||
|
bool ok;
|
||||||
|
QSettings settings;
|
||||||
|
QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
settings.setValue("diagramitemfont", font.family());
|
||||||
|
settings.setValue("diagramitemsize", font.pointSize());
|
||||||
|
settings.setValue("diagramitemweight", font.weight());
|
||||||
|
settings.setValue("diagramitemstyle", font.styleName());
|
||||||
|
QString fontInfos = settings.value("diagramitemfont").toString() + " " +
|
||||||
|
settings.value("diagramitemsize").toString() + " (" +
|
||||||
|
settings.value("diagramitemstyle").toString() + ")";
|
||||||
|
ui->m_font_pb->setText(fontInfos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GeneralConfigurationPage::on_m_folio_list_pb_clicked
|
||||||
|
* Apply font to summary pages
|
||||||
|
*/
|
||||||
|
void GeneralConfigurationPage::on_m_folio_list_pb_clicked()
|
||||||
|
{
|
||||||
|
bool ok;
|
||||||
|
QSettings settings;
|
||||||
|
QFont font = QFontDialog::getFont(&ok, QFont("Sans Serif", 9), this);
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
settings.setValue("foliolistfont", font.family());
|
||||||
|
settings.setValue("foliolistsize", font.pointSize());
|
||||||
|
settings.setValue("foliolistweight", font.weight());
|
||||||
|
settings.setValue("folioliststyle", font.styleName());
|
||||||
|
QString fontInfos = settings.value("foliolistfont").toString() + " " +
|
||||||
|
settings.value("foliolistsize").toString() + " (" +
|
||||||
|
settings.value("folioliststyle").toString() + ")";
|
||||||
|
ui->m_folio_list_pb->setText(fontInfos);
|
||||||
|
}
|
||||||
|
}
|
||||||
51
sources/ui/configpage/generalconfigurationpage.h
Normal file
51
sources/ui/configpage/generalconfigurationpage.h
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2006-2018 The QElectroTech Team
|
||||||
|
This file is part of QElectroTech.
|
||||||
|
|
||||||
|
QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef GENERALCONFIGURATIONPAGE_H
|
||||||
|
#define GENERALCONFIGURATIONPAGE_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include "configpage.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class GeneralConfigurationPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
class GeneralConfigurationPage : public ConfigPage
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit GeneralConfigurationPage(QWidget *parent = 0);
|
||||||
|
~GeneralConfigurationPage();
|
||||||
|
|
||||||
|
virtual void applyConf() override;
|
||||||
|
virtual QString title() const override;
|
||||||
|
virtual QIcon icon() const override;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_m_font_pb_clicked();
|
||||||
|
void on_m_folio_list_pb_clicked();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void fillLang();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::GeneralConfigurationPage *ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // GENERALCONFIGURATIONPAGE_H
|
||||||
229
sources/ui/configpage/generalconfigurationpage.ui
Normal file
229
sources/ui/configpage/generalconfigurationpage.ui
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>GeneralConfigurationPage</class>
|
||||||
|
<widget class="QWidget" name="GeneralConfigurationPage">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>827</width>
|
||||||
|
<height>662</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Général</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Line" name="line">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Apparence</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="m_use_system_color_cb">
|
||||||
|
<property name="text">
|
||||||
|
<string>Utiliser les couleurs du système</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
|
<property name="title">
|
||||||
|
<string>Projets</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="8" column="2">
|
||||||
|
<widget class="QPushButton" name="m_font_pb">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Interval de la sauvegarde automatique (appliqué au prochain lancement de QElectroTech)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="2">
|
||||||
|
<widget class="QPushButton" name="m_folio_list_pb">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QCheckBox" name="m_save_label_paste">
|
||||||
|
<property name="text">
|
||||||
|
<string>Ne pas conserver les labels des éléments lors des copier coller</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QRadioButton" name="m_use_tab_mode_rb">
|
||||||
|
<property name="text">
|
||||||
|
<string>Utilisé des onglets (appliqué au proc&hain lancement de QElectroTech)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QCheckBox" name="m_use_gesture_trackpad">
|
||||||
|
<property name="text">
|
||||||
|
<string>Utiliser les gestes du pavé tactile</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>Police des champs textes des pages sommaires</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Police des champs de texte</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QCheckBox" name="m_export_terminal">
|
||||||
|
<property name="text">
|
||||||
|
<string>Exporter les bornes dans la nomenclature</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="2">
|
||||||
|
<widget class="QSpinBox" name="m_autosave_sb">
|
||||||
|
<property name="frame">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="specialValueText">
|
||||||
|
<string>Désactivé</string>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string comment="minute"> min</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QRadioButton" name="m_use_windows_mode_rb">
|
||||||
|
<property name="text">
|
||||||
|
<string>Utiliser des fenêtres (appliqué au prochain lancement de &QElectroTech)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QCheckBox" name="m_zoom_out_beyond_folio">
|
||||||
|
<property name="text">
|
||||||
|
<string>Autoriser le dézoom au delà du folio</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QCheckBox" name="m_use_folio_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Utiliser les labels de folio à la place de leurs ID</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="1">
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
|
<property name="title">
|
||||||
|
<string>Gestion des éléments</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="m_highlight_integrated_elements">
|
||||||
|
<property name="text">
|
||||||
|
<string>Mettre en valeur dans le panel les éléments fraîchement intégrés</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Chaque élément embarque des informations sur ses auteurs, sa licence, ou tout autre renseignement que vous jugerez utile dans un champ libre.
|
||||||
|
Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments que vous créerez :</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTextEdit" name="m_default_elements_info"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_4">
|
||||||
|
<property name="title">
|
||||||
|
<string>Langue</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="m_lang_cb"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Appliqué au prochain lancement de QElectroTech</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
Reference in New Issue
Block a user