From 76ff8f3837856bdeadd6a859c4cad82faf49e74d Mon Sep 17 00:00:00 2001 From: cemycc Date: Sat, 25 Jun 2011 16:42:45 +0300 Subject: [PATCH] Changed: #1307 Added editor for worksheet files. --- .../translation_manager_main_window.cpp | 122 +++++++++++++----- .../translation_manager_main_window.h | 34 ++++- .../translation_manager_main_window.ui | 57 ++++++++ 3 files changed, 183 insertions(+), 30 deletions(-) create mode 100644 code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.ui 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 159e80e04..5dedd7c70 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 @@ -18,6 +18,9 @@ #include "translation_manager_main_window.h" // Project system includes #include "../core/icore.h" +#include "../core/core_constants.h" +#include "../core/imenu_manager.h" +#include "../../extension_system/iplugin_spec.h" // Qt includes #include #include @@ -27,10 +30,14 @@ #include #include #include +#include #include #include #include #include +#include +#include + struct TEntryInfo { string SheetName; @@ -48,19 +55,97 @@ CMainWindow::CMainWindow(QWidget *parent) { _ui.setupUi(this); - _toolMenu = new QMenu(tr("Primitives"), _ui.toolBar); - _ui.toolBar->addAction(_toolMenu->menuAction()); - - QAction *extractBotNames = _toolMenu->addAction(tr("Extract bot names")); - extractBotNames->setStatusTip(tr("Extract bot names from primitives")); - connect(extractBotNames, SIGNAL(triggered()), this, SLOT(extractBotNames())); - - readSettings(); + createToolbar(); m_undoStack = new QUndoStack(this); } +void CMainWindow::createToolbar() +{ + // Tools menu + Core::IMenuManager *menuManager = Core::ICore::instance()->menuManager(); + QMenu *translationManagerMenu = new QMenu("Translation Manager"); + QAction *extractBotNamesAct = translationManagerMenu->addAction("Extract bot names"); + extractBotNamesAct->setStatusTip(tr("Extract bot names from primitives")); + QMenu *toolMenu = menuManager->menu(Core::Constants::M_TOOLS); + toolMenu->addMenu(translationManagerMenu); + + + // File menu + //QAction *action = menuManager->action(Core::Constants::NEW); + //_ui.toolBar->addAction(action); + openAct = menuManager->action(Core::Constants::OPEN); + _ui.toolBar->addAction(openAct); + connect(openAct, SIGNAL(triggered()), this, SLOT(open())); + + saveAct = menuManager->action(Core::Constants::SAVE); + _ui.toolBar->addAction(saveAct); + connect(saveAct, SIGNAL(triggered()), this, SLOT(save())); + //action = menuManager->action(Core::Constants::SAVE_AS); + //_ui.toolBar->addAction(action); + +} + +void CMainWindow::open() +{ + QString file_name = QFileDialog::getOpenFileName(this); + if (!file_name.isEmpty()) + { + STRING_MANAGER::TWorksheet wk_file; + if(loadExcelSheet(file_name.toStdString(), wk_file, true) == true) + { + QTableWidget *wk_table = new QTableWidget(); + wk_table->setToolTip(file_name); + wk_table->setWindowFilePath(file_name); + wk_table->setColumnCount(wk_file.ColCount); + wk_table->setRowCount(wk_file.size() - 1); + // read columns name + for(unsigned int i = 0; i < wk_file.ColCount; i++) + { + QTableWidgetItem *col = new QTableWidgetItem(); + ucstring col_name = wk_file.getData(0, i); + col->setText(tr(col_name.toString().c_str())); + + wk_table->setHorizontalHeaderItem(i, col); + } + // read rows + for(unsigned int i = 1; i < wk_file.size(); i++) + { + for(unsigned int j = 0; j < wk_file.ColCount; j++) + { + QTableWidgetItem *row = new QTableWidgetItem(); + ucstring row_value = wk_file.getData(i, j); + row->setText(tr(row_value.toString().c_str())); + + wk_table->setItem(i - 1, j, row); + } + } + QMdiSubWindow *sub_window = new QMdiSubWindow(_ui.mdiArea); + sub_window->setWidget(wk_table); + wk_table->resizeColumnsToContents(); + wk_table->resizeRowsToContents(); + wk_table->showMaximized(); + sub_window->activateWindow(); + //_ui.mdiArea->addSubWindow(sub_window); + // set editor signals + connect(wk_table, SIGNAL(cellChanged(int,int) ), this, SLOT(sheetEditorChanged(int,int))); + } + } + +} + +void CMainWindow::sheetEditorChanged(int, int) +{ + saveAct->setEnabled(true); +} + +void CMainWindow::save() +{ + QMdiSubWindow *current_window = _ui.mdiArea->currentSubWindow(); + +} + void CMainWindow::readSettings() { QSettings *settings = Core::ICore::instance()->settings(); @@ -87,28 +172,7 @@ void CMainWindow::extractBotNames() { if(verifySettings() == true) { - // int extract_bot_names = extractBotNamesAll(config_paths, ligo_path, translation_path, work_path); - - QGridLayout* mainLayout = new QGridLayout(); - - - - //contentsWindow->setAllowedAreas(Qt::LeftDockWidgetArea); - - - QListWidget *listWidget = new QListWidget(this); - mainLayout->addWidget(QListWidget); - - - - QTableWidget *tableWidget = new QTableWidget(this); - - tableWidget->setRowCount(10); - tableWidget->setColumnCount(5); - - mainLayout->addWidget(QTableWidget); - setCentralWidget(tableWidget); } } diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.h b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.h index 4e90c6088..863145bc5 100644 --- a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.h +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.h @@ -22,6 +22,12 @@ // Project includes #include "../core/icore_listener.h" +// Nel includes +#include "nel/misc/types_nl.h" +#include "nel/misc/sheet_id.h" +#include "nel/misc/path.h" +#include "nel/misc/diff_tool.h" + // Qt includes #include #include @@ -29,6 +35,8 @@ #include #include #include +#include + #include "ui_translation_manager_main_window.h" #include @@ -49,7 +57,10 @@ public: QUndoStack *m_undoStack; private: Ui::CMainWindow _ui; - QMenu *_toolMenu; + // actions + QAction *openAct; + QAction *saveAct; + // config map > config_paths; list languages; string ligo_path; @@ -57,12 +68,18 @@ private: string work_path; private Q_SLOTS: void extractBotNames(); + void open(); + void save(); + void sheetEditorChanged(int, int); private: void compareBotNames(); bool verifySettings(); void readSettings(); + void createMenus(); + void createToolbar(); list convertQStringList(QStringList listq); + }; class CCoreListener : public Core::ICoreListener @@ -75,6 +92,21 @@ public: virtual bool closeMainWindow() const; }; +class CMdiSubWindow : public QMdiSubWindow +{ + private: + int window_type; + public: + int getWType() + { + return window_type; + } + void setWType(int nType) + { + window_type = nType; + } +}; + } // namespace Plugin #endif // SIMPLE_VIEWER_H diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.ui b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.ui new file mode 100644 index 000000000..395574415 --- /dev/null +++ b/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.ui @@ -0,0 +1,57 @@ + + + CMainWindow + + + + 0 + 0 + 883 + 576 + + + + MainWindow + + + + + + + + 0 + 0 + + + + Qt::Horizontal + + + + true + + + + + + + + + + + + + + toolBar + + + TopToolBarArea + + + false + + + + + +