From 8cf9d368afdf5ad275253ecb839c77e2933ac53f Mon Sep 17 00:00:00 2001 From: cemycc Date: Wed, 27 Jul 2011 01:01:00 +0300 Subject: [PATCH] Changed: #1307 Added the base files for phrase editor and new method to save the editor type --- .../translation_manager/CMakeLists.txt | 1 + .../translation_manager/editor_phrase.cpp.txt | 53 ++++++++++++++++++ .../translation_manager/editor_phrase.h.txt | 48 ++++++++++++++++ .../translation_manager/editor_worksheet.cpp | 1 + .../translation_manager_constants.h | 3 + .../translation_manager_editor.h | 6 +- .../translation_manager_main_window.cpp | 56 +++++++++++++------ 7 files changed, 150 insertions(+), 18 deletions(-) create mode 100644 code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.cpp.txt create mode 100644 code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.h.txt diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/CMakeLists.txt b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/CMakeLists.txt index 7e7da7e99..0f520c9d8 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/CMakeLists.txt +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/CMakeLists.txt @@ -16,6 +16,7 @@ SET(OVQT_PLUG_TRANSLATION_MANAGER_HDR translation_manager_plugin.h source_selection.h ftp_selection.h editor_worksheet.h + editor_phrase.h extract_new_sheet_names.h extract_bot_names.h) diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.cpp.txt b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.cpp.txt new file mode 100644 index 000000000..83d360d8a --- /dev/null +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.cpp.txt @@ -0,0 +1,53 @@ +// Translation Manager Plugin - OVQT Plugin +// Copyright (C) 2010 Winch Gate Property Limited +// Copyright (C) 2011 Emanuel Costea +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program 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 Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +// Qt includes +#include +#include +#include +#include + +// Project includes +#include "editor_phrase.h" +#include "translation_manager_constants.h" + +using namespace std; + +namespace Plugin { + +void CEditorPhrase::open(QString filename) +{ + +} + +void CEditorPhrase::activateWindow() +{ + +} + +void CEditorPhrase::save() +{ + +} + +void CEditorPhrase::saveAs(QString filename) +{ + +} + + +} \ No newline at end of file diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.h.txt b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.h.txt new file mode 100644 index 000000000..539314eaf --- /dev/null +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.h.txt @@ -0,0 +1,48 @@ +// Translation Manager Plugin - OVQT Plugin +// Copyright (C) 2010 Winch Gate Property Limited +// Copyright (C) 2011 Emanuel Costea +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program 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 Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +#ifndef EDITOR_PHRASE_H +#define EDITOR_PHRASE_H + +// Qt includes +#include +#include +#include +#include +#include +#include + +// Project includes +#include "translation_manager_editor.h" + +namespace Plugin { + +class CEditorPhrase : public CEditor +{ + Q_OBJECT +public: + CEditorPhrase(QMdiArea* parent) : CEditor(parent) {} + CEditorPhrase() : CEditor() {} + void open(QString filename); + void save(); + void saveAs(QString filename); + void activateWindow(); +}; + +} + +#endif /* EDITOR_PHRASE_H */ \ No newline at end of file diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_worksheet.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_worksheet.cpp index 5323ded1a..2c7261805 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_worksheet.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_worksheet.cpp @@ -93,6 +93,7 @@ void CEditorWorksheet::open(QString filename) setCurrentFile(filename); setAttribute(Qt::WA_DeleteOnClose); setWidget(table_editor); + editor_type = Constants::ED_SHEET; table_editor->resizeColumnsToContents(); table_editor->resizeRowsToContents(); // set editor signals diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_constants.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_constants.h index b6bdc8315..3cb66181b 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_constants.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_constants.h @@ -12,6 +12,9 @@ namespace Plugin { namespace Constants { + const int ED_SHEET = 1; + const int ED_PHRASE = 2; + const char * const WK_BOTNAMES = "bot_names_wk.txt"; const char * const WK_ITEM = "item_words_wk.txt"; const char * const WK_CREATURE = "creature_words_wk.txt"; diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_editor.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_editor.h index ff947b1d1..767dd90de 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_editor.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_editor.h @@ -31,7 +31,7 @@ Q_OBJECT protected: QUndoStack* current_stack; QString current_file; - int editor_type; + int editor_type; public: CEditor(QMdiArea* parent) : QMdiSubWindow(parent) {} CEditor() : QMdiSubWindow() {} @@ -40,6 +40,10 @@ public: virtual void saveAs(QString filename) =0; virtual void activateWindow() =0; public: + int eType() + { + return editor_type; + } QString subWindowFilePath() { return current_file; diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.cpp index 52e423156..e6fa9508a 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.cpp +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.cpp @@ -206,6 +206,10 @@ void CMainWindow::open() editor->activateWindow(); return; } + #ifndef QT_NO_CURSOR + QApplication::setOverrideCursor(Qt::WaitCursor); + #endif + // sheet editor if(isWorksheetEditor(file_name)) { CEditorWorksheet *new_window = new CEditorWorksheet(_ui.mdiArea); @@ -213,6 +217,9 @@ void CMainWindow::open() new_window->open(file_name); new_window->activateWindow(); } + #ifndef QT_NO_CURSOR + QApplication::restoreOverrideCursor(); + #endif } } @@ -241,11 +248,13 @@ void CMainWindow::save() if(_ui.mdiArea->subWindowList().size() > 0) { CEditor* current_window = qobject_cast(_ui.mdiArea->currentSubWindow()); - - if(QString(current_window->widget()->metaObject()->className()) == "QTableWidget") // Sheet Editor - { - current_window->save(); - } + #ifndef QT_NO_CURSOR + QApplication::setOverrideCursor(Qt::WaitCursor); + #endif + current_window->save(); + #ifndef QT_NO_CURSOR + QApplication::restoreOverrideCursor(); + #endif } } @@ -258,13 +267,15 @@ void CMainWindow::saveAs() } if (!file_name.isEmpty()) - { - CEditor* current_window = qobject_cast(_ui.mdiArea->currentSubWindow()); - if(QString(current_window->widget()->metaObject()->className()) == "QTableWidget") // Sheet Editor - { - current_window->saveAs(file_name); - } - + { + CEditor* current_window = qobject_cast(_ui.mdiArea->currentSubWindow()); + #ifndef QT_NO_CURSOR + QApplication::setOverrideCursor(Qt::WaitCursor); + #endif + current_window->saveAs(file_name); + #ifndef QT_NO_CURSOR + QApplication::restoreOverrideCursor(); + #endif } } @@ -341,14 +352,19 @@ void CMainWindow::extractWords(QString typeq) builderP.PrimFilter.push_back("indoors_*.primitive"); isSheet = false; } - + #ifndef QT_NO_CURSOR + QApplication::setOverrideCursor(Qt::WaitCursor); + #endif if(isSheet) { editor_window->extractWords(editor_window->windowFilePath(), column_name, builderS); } else { initializeSettings(false); editor_window->extractWords(editor_window->windowFilePath(), column_name, builderP); - } + } + #ifndef QT_NO_CURSOR + QApplication::restoreOverrideCursor(); + #endif } } @@ -371,8 +387,14 @@ void CMainWindow::extractBotNames() QString file_path = editor_window->windowFilePath(); } else return; } + #ifndef QT_NO_CURSOR + QApplication::setOverrideCursor(Qt::WaitCursor); + #endif initializeSettings(true); - editor_window->extractBotNames(convertQStringList(filters), level_design_path.toStdString(), ligoConfig); + editor_window->extractBotNames(convertQStringList(filters), level_design_path.toStdString(), ligoConfig); + #ifndef QT_NO_CURSOR + QApplication::restoreOverrideCursor(); + #endif } } @@ -392,7 +414,7 @@ void CMainWindow::mergeSingleFile() return; } - if(QString(editor_window->widget()->metaObject()->className()) != "QTableWidget") // Sheet Editor + if(editor_window->eType() != Constants::ED_SHEET) // Sheet Editor { QErrorMessage error; error.showMessage(QString("Please open or activate the window with a sheet file.")); @@ -500,7 +522,7 @@ CEditorWorksheet *CMainWindow::getEditorByWorksheetType(const QString &type) Q_FOREACH(QMdiSubWindow *subWindow, _ui.mdiArea->subWindowList()) { CEditor *currentEditor = qobject_cast(subWindow); - if(QString(currentEditor->widget()->metaObject()->className()) == "QTableWidget") + if(currentEditor->eType() == Constants::ED_SHEET) { CEditorWorksheet *editor = qobject_cast(currentEditor); if(type != NULL) {