diff --git a/data/i18n/paysages_fr.ts b/data/i18n/paysages_fr.ts index bd7663e..0676517 100644 --- a/data/i18n/paysages_fr.ts +++ b/data/i18n/paysages_fr.ts @@ -1429,7 +1429,7 @@ Maintenir Ctrl : Plus rapide Terrain editor - + Editeur de terrain @@ -1472,67 +1472,77 @@ Maintenir Ctrl : Plus rapide Altitude relative de la couche d'eau - + Go to textures to add small height displacements (rocks...) Aller aux textures pour ajouter des détails (roches...) - + Result preview Prévisualisation du résultat - + Render preview Rendu rapide - + Explore in 3D Explorer en 3D - + Actions Actions - + Revert modifications Annuler les modifications - + Apply modifications Valider les modifications - + Memory used by sculpted data: %1 Mémoire utilisée par les zones sculptées : %1 - + No manual scuplting done Aucune zone n'a été sculptée - + + No displacement textures + Aucune texture de détail + + + + Maximal displacement : %1% of total height + Déplacement maximal par textures : %1% du dénivelé total + + + Paysages 3D - Base noise edition Paysages 3D - Edition de la forme de base - + You have manual modifications on this terrain, regenerating base noise may produce weird results. Vous avez des modifications manuelles sur le terrain, modifier la forme de base peut produire des discontinuités. - + Keep my changes anyway Garder mes changements - + Erase my changes Effacer mes changements @@ -1766,87 +1776,87 @@ rapide (F5) Caméra - + Do you want to start a new scenery ? Any unsaved changes will be lost. Voulez-vous commencer un nouveau paysage ? Les modifications non sauvegardées seront perdues. - + Paysages 3D - New scenery Paysages 3D - Nouvelle scène - + Paysages 3D - Choose a file to save the scenery Paysages 3D - Choisissez un fichier pour enregistrer la scène - - + + Paysages 3D Scenery (*.p3d) Scène Paysages 3D (*.p3d) - - + + Paysages 3D - File saving error Paysages 3D - Erreur d'enregistrement - + Can't write specified file : %1 Impossible d'écrire dans le fichier : %1 - + Unexpected error while saving file : %1 Erreur inconnue durant l'enregistrement : %1 - + Do you want to load a scenery from file ? Any unsaved changes will be lost. Voulez-vous charger une scène ? Les modifications non sauvegardées seront perdues. - + Paysages 3D - Load scenery Paysages 3D - Charger une scène - + Paysages 3D - Choose a scenery file to load Paysages 3D - Choisissez un fichier de scène à charger - - - - + + + + Paysages 3D - File loading error Paysages 3D - Erreur de chargement - + Can't read specified file : %1 Impossible de lire le fichier : %1 - + This file doesn't look like a Paysages 3D file : %1 Le fichier ne semble pas être au format Paysages 3D : %1 - + This file was created with an incompatible Paysages 3D version : %1 Le fichier a été créé avec une version incompatible de Paysages 3D : %1 - + Unexpected error while loading file : %1 Erreur inconnue lors du chargement : %1 - + A 3D landscape editing and rendering software. Authors : @@ -1981,7 +1991,7 @@ GLib - http://www.gtk.org - + Paysages 3D Paysages 3D diff --git a/src/editing/common/freeformhelper.cpp b/src/editing/common/freeformhelper.cpp index 6905475..8d05b89 100644 --- a/src/editing/common/freeformhelper.cpp +++ b/src/editing/common/freeformhelper.cpp @@ -66,6 +66,7 @@ bool FreeFormHelper::eventFilter(QObject* object, QEvent* event) void FreeFormHelper::startManaging() { _form_widget->installEventFilter(this); + connect(MainWindow::instance(), SIGNAL(refreshed()), this, SLOT(processGlobalRefresh())); connect(this, SIGNAL(needLocalRefreshing()), _form_widget, SLOT(refreshFromLocalData())); connect(this, SIGNAL(needGlobalRefreshing()), _form_widget, SLOT(refreshFromFellowData())); @@ -73,9 +74,7 @@ void FreeFormHelper::startManaging() connect(this, SIGNAL(needCommitting()), _form_widget, SLOT(commitLocalDataToScenery())); connect(this, SIGNAL(needAlterRenderer(Renderer*)), _form_widget, SLOT(alterRenderer(Renderer*))); - emit needLocalRefreshing(); - emit needGlobalRefreshing(); - emit needReverting(); + processGlobalRefresh(); } void FreeFormHelper::addPreview(BasePreview* preview, PreviewRenderer* renderer) @@ -197,11 +196,7 @@ void FreeFormHelper::openDialog(QDialog* dialog) void FreeFormHelper::gotoMainTab(int position) { - QWidget* window = _form_widget->window(); - if (window->inherits("MainWindow")) - { - ((MainWindow*)window)->openTab(position); - } + MainWindow::instance()->openTab(position); } void FreeFormHelper::processDataChange() @@ -224,6 +219,13 @@ void FreeFormHelper::processDataChange() emit needLocalRefreshing(); } +void FreeFormHelper::processGlobalRefresh() +{ + emit needGlobalRefreshing(); + + processRevertClicked(); +} + void FreeFormHelper::processRevertClicked() { emit needReverting(); @@ -261,15 +263,7 @@ void FreeFormHelper::processApplyClicked() { emit needCommitting(); - _data_changed = false; - if (_button_apply) - { - _button_apply->setEnabled(false); - } - if (_button_revert) - { - _button_revert->setEnabled(false); - } + MainWindow::instance()->refreshAll(); } void FreeFormHelper::processExploreClicked() diff --git a/src/editing/common/freeformhelper.h b/src/editing/common/freeformhelper.h index 0933a24..5eb0383 100644 --- a/src/editing/common/freeformhelper.h +++ b/src/editing/common/freeformhelper.h @@ -53,6 +53,7 @@ signals: public slots: void processDataChange(); + void processGlobalRefresh(); void processRevertClicked(); void processApplyClicked(); void processExploreClicked(); diff --git a/src/editing/common/mainwindow.cpp b/src/editing/common/mainwindow.cpp index 2af1fda..7339129 100644 --- a/src/editing/common/mainwindow.cpp +++ b/src/editing/common/mainwindow.cpp @@ -28,6 +28,8 @@ #include "rendering/scenery.h" #include "tools.h" +MainWindow* MainWindow::_instance = NULL; + int main(int argc, char** argv) { MainWindow* window; @@ -78,10 +80,11 @@ int main(int argc, char** argv) return result; } -MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), +MainWindow::MainWindow() : + QMainWindow(), ui(new Ui::MainWindow) { + _instance = this; ui->setupUi(this); BaseForm* form; @@ -155,7 +158,6 @@ void MainWindow::refreshAll() { _forms[i]->revertConfig(); } - // TODO Refresh free forms // Refresh preview OSD CameraDefinition* camera = cameraCreateDefinition(); @@ -166,6 +168,8 @@ void MainWindow::refreshAll() item->drawCamera(camera); item->setToolTip(QString(tr("Camera"))); cameraDeleteDefinition(camera); + + emit refreshed(); } void MainWindow::openTab(int position) diff --git a/src/editing/common/mainwindow.h b/src/editing/common/mainwindow.h index ac715b3..4bdf527 100644 --- a/src/editing/common/mainwindow.h +++ b/src/editing/common/mainwindow.h @@ -12,19 +12,27 @@ namespace Ui { class MainWindow; } +class MainWindow; + class MainWindow : public QMainWindow { Q_OBJECT public: - explicit MainWindow(QWidget *parent = 0); + MainWindow(); ~MainWindow(); virtual bool event(QEvent* event); + static inline MainWindow* instance() + { + return _instance; + } static void guiSaveCallback(PackStream* stream, void* data); static void guiLoadCallback(PackStream* stream, void* data); +protected: + public slots: void refreshAll(); @@ -42,7 +50,11 @@ public slots: void explore3D(); +signals: + void refreshed(); + private: + static MainWindow* _instance; Ui::MainWindow *ui; void guiSave(PackStream* stream);