Changed: #1307 Added extract_bot_names
--HG-- branch : gsoc2011-translationovqt
This commit is contained in:
parent
624cb70813
commit
32c07d0b62
11 changed files with 302 additions and 529 deletions
|
@ -10,11 +10,11 @@ SET(OVQT_EXT_SYS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin.
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h)
|
||||
|
||||
SET(OVQT_PLUG_TRANSLATION_MANAGER_HDR translation_manager_plugin.h
|
||||
qnel_widget.h
|
||||
simple_viewer.h
|
||||
translation_manager_main_window.h
|
||||
translation_manager_settings_page.h)
|
||||
|
||||
SET(OVQT_PLUG_TRANSLATION_MANAGER_UIS translation_manager_settings_page.ui)
|
||||
SET(OVQT_PLUG_TRANSLATION_MANAGER_UIS translation_manager_settings_page.ui
|
||||
translation_manager_main_window.ui)
|
||||
|
||||
SET(QT_USE_QTGUI TRUE)
|
||||
SET(QT_USE_QTOPENGL TRUE)
|
||||
|
|
|
@ -145,6 +145,15 @@ set<string> GenericNames;
|
|||
map<string, TEntryInfo> SimpleNames;
|
||||
set<string> Functions;
|
||||
|
||||
set<string> getGenericNames()
|
||||
{
|
||||
return GenericNames;
|
||||
}
|
||||
|
||||
map<string, TEntryInfo> getSimpleNames()
|
||||
{
|
||||
return SimpleNames;
|
||||
}
|
||||
|
||||
string removeAndStoreFunction(const std::string &fullName)
|
||||
{
|
||||
|
@ -221,40 +230,6 @@ void addSimpleName(const std::string &name, const std::string &sheetName)
|
|||
|
||||
int extractBotNamesAll(map<string,list<string> > config_paths, string ligo_class_file, string trans_path, string work_path)
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// read the parameters
|
||||
/*for (int i=2; i<argc; ++i)
|
||||
{
|
||||
string s = argv[i];
|
||||
if (s == "-r")
|
||||
{
|
||||
// active remove mode
|
||||
RemoveOlds = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
nlwarning("Unknow option '%s'", argv[i]);
|
||||
return -1;
|
||||
}
|
||||
} */
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// read the configuration file
|
||||
//CConfigFile cf;
|
||||
|
||||
//cf.load("bin/translation_tools.cfg");
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// read the vars
|
||||
//CConfigFile::CVar &paths = cf.getVar("Paths");
|
||||
//CConfigFile::CVar &filtersVar = cf.getVar("Filters");
|
||||
//CConfigFile::CVar &ligoClassFile= cf.getVar("LigoClassFile");
|
||||
//CConfigFile::CVar &georgesPaths= cf.getVar("GeorgesPaths");
|
||||
//CConfigFile::CVar &pathNoRecurse= cf.getVar("PathsNoRecurse");
|
||||
//CConfigFile::CVar &workBotNamesFile= cf.getVar("WorkBotNamesFile");
|
||||
//CConfigFile::CVar &transBotNamesFile= cf.getVar("TransBotNamesFile");
|
||||
//CConfigFile::CVar &workTitleFile= cf.getVar("WorkTitleFile");
|
||||
|
||||
for (std::list<string>::iterator it = config_paths["paths"].begin(); it != config_paths["paths"].end(); ++it)
|
||||
{
|
||||
CPath::addSearchPath(*it, true, false);
|
||||
|
@ -269,7 +244,6 @@ int extractBotNamesAll(map<string,list<string> > config_paths, string ligo_class
|
|||
Filters.push_back(*it);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// init the sheets
|
||||
CSheetId::init(false);
|
||||
|
@ -451,26 +425,62 @@ int extractBotNamesAll(map<string,list<string> > config_paths, string ligo_class
|
|||
}
|
||||
else
|
||||
{
|
||||
TEntryInfo ei;
|
||||
addSimpleName(removeAndStoreFunction(name), sheetStr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// step 2 : load the reference file
|
||||
|
||||
nlinfo("Looking for missing translation:");
|
||||
|
||||
string work_path_file = work_path + "/bot_names.txt";
|
||||
string trans_path_file = trans_path + "/bot_names.txt";
|
||||
string title_path_file = work_path + "/title_words_wk.txt";
|
||||
|
||||
TWorksheet botNames;
|
||||
if (!CFile::fileExists(work_path_file) || !loadExcelSheet(work_path_file, botNames))
|
||||
{
|
||||
botNames.resize(botNames.size() + 1);
|
||||
botNames.insertColumn(botNames.ColCount);
|
||||
botNames.setData(0,botNames.ColCount - 1,ucstring("bot name"));
|
||||
botNames.insertColumn(botNames.ColCount);
|
||||
botNames.setData(0,botNames.ColCount - 1,ucstring("translated name"));
|
||||
botNames.insertColumn(botNames.ColCount);
|
||||
botNames.setData(0,botNames.ColCount - 1,ucstring("sheet_name"));
|
||||
}
|
||||
|
||||
TWorksheet botNames;
|
||||
loadExcelSheet(work_path, botNames, true);
|
||||
TWorksheet transBotNames;
|
||||
loadExcelSheet(trans_path, transBotNames, true);
|
||||
TWorksheet transBotNames;
|
||||
if (!CFile::fileExists(trans_path_file) || !loadExcelSheet(trans_path_file, transBotNames))
|
||||
{
|
||||
transBotNames.resize(transBotNames.size() + 1);
|
||||
transBotNames.insertColumn(transBotNames.ColCount);
|
||||
transBotNames.setData(0,transBotNames.ColCount - 1,ucstring("*HASH_VALUE"));
|
||||
transBotNames.insertColumn(transBotNames.ColCount);
|
||||
transBotNames.setData(0,transBotNames.ColCount - 1,ucstring("bot name"));
|
||||
transBotNames.insertColumn(transBotNames.ColCount);
|
||||
transBotNames.setData(0,transBotNames.ColCount - 1,ucstring("translated name"));
|
||||
transBotNames.insertColumn(transBotNames.ColCount);
|
||||
transBotNames.setData(0,transBotNames.ColCount - 1,ucstring("sheet_name"));
|
||||
}
|
||||
|
||||
TWorksheet fcts;
|
||||
loadExcelSheet(work_path, fcts, true);
|
||||
TWorksheet fcts;
|
||||
if (!CFile::fileExists(title_path_file) || !loadExcelSheet(title_path_file, fcts))
|
||||
{
|
||||
fcts.resize(fcts.size() + 1);
|
||||
fcts.insertColumn(fcts.ColCount);
|
||||
fcts.setData(0,fcts.ColCount - 1,ucstring("title_id"));
|
||||
fcts.insertColumn(fcts.ColCount);
|
||||
fcts.setData(0,fcts.ColCount - 1,ucstring("name"));
|
||||
fcts.insertColumn(fcts.ColCount);
|
||||
fcts.setData(0,fcts.ColCount - 1,ucstring("women_name"));
|
||||
}
|
||||
|
||||
loadExcelSheet(work_path_file, botNames, true);
|
||||
loadExcelSheet(trans_path_file, transBotNames, true);
|
||||
loadExcelSheet(title_path_file, fcts, true);
|
||||
|
||||
// add missing element
|
||||
|
||||
|
@ -482,9 +492,9 @@ int extractBotNamesAll(map<string,list<string> > config_paths, string ligo_class
|
|||
nlverify(botNames.findId(botIdCol));
|
||||
uint transIdCol;
|
||||
nlverify(transBotNames.findId(transIdCol));
|
||||
uint fctsIdCol;
|
||||
uint fctsIdCol;
|
||||
nlverify(fcts.findId(fctsIdCol));
|
||||
|
||||
|
||||
// special treatment to add the sheet_name col
|
||||
{
|
||||
uint sheetCol;
|
||||
|
@ -743,14 +753,13 @@ int extractBotNamesAll(map<string,list<string> > config_paths, string ligo_class
|
|||
nlinfo("Adding %u new generic name", nbAddGenericName);
|
||||
nlinfo("Adding %u new function name", nbAddFunction);
|
||||
|
||||
// saving the modified files
|
||||
|
||||
// saving the modified files
|
||||
ucstring s = prepareExcelSheet(botNames);
|
||||
CI18N::writeTextFile(work_path, s, false);
|
||||
CI18N::writeTextFile(work_path_file, s, false);
|
||||
s = prepareExcelSheet(transBotNames);
|
||||
CI18N::writeTextFile(trans_path, s, false);
|
||||
CI18N::writeTextFile(trans_path_file, s, false);
|
||||
s = prepareExcelSheet(fcts);
|
||||
CI18N::writeTextFile(work_path, s, false);
|
||||
CI18N::writeTextFile(title_path_file, s, false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,197 +0,0 @@
|
|||
// Object Viewer Qt - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
// Copyright (C) 2011 Dzmitry Kamiahin <dnk-88@tut.by>
|
||||
//
|
||||
// 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "qnel_widget.h"
|
||||
|
||||
// STL includes
|
||||
|
||||
// Qt includes
|
||||
#include <QtCore/QTimer>
|
||||
#include <QtGui/QResizeEvent>
|
||||
|
||||
// NeL includes
|
||||
#include <nel/misc/event_server.h>
|
||||
#include <nel/misc/debug.h>
|
||||
#include <nel/3d/u_driver.h>
|
||||
#include <nel/3d/driver_user.h>
|
||||
|
||||
namespace NLQT
|
||||
{
|
||||
|
||||
QNLWidget::QNLWidget(QWidget *parent)
|
||||
: QNeLWidget(parent),
|
||||
m_driver(NULL),
|
||||
m_initialized(false),
|
||||
m_interval(25)
|
||||
{
|
||||
setMouseTracking(true);
|
||||
setFocusPolicy(Qt::StrongFocus);
|
||||
|
||||
init();
|
||||
#ifdef Q_OS_LINUX
|
||||
makeCurrent();
|
||||
#endif
|
||||
m_mainTimer = new QTimer(this);
|
||||
connect(m_mainTimer, SIGNAL(timeout()), this, SLOT(updateRender()));
|
||||
}
|
||||
|
||||
QNLWidget::~QNLWidget()
|
||||
{
|
||||
release();
|
||||
}
|
||||
|
||||
void QNLWidget::init()
|
||||
{
|
||||
// create the driver
|
||||
m_driver = NL3D::UDriver::createDriver(NULL, false, NULL);
|
||||
nlassert(m_driver);
|
||||
|
||||
// initialize the nel 3d viewport
|
||||
m_driver->setDisplay((nlWindow)winId(), NL3D::UDriver::CMode(width(), height(), 32));
|
||||
|
||||
// set the cache size for the font manager(in bytes)
|
||||
m_driver->setFontManagerMaxMemory(2097152);
|
||||
|
||||
m_initialized = true;
|
||||
}
|
||||
|
||||
void QNLWidget::release()
|
||||
{
|
||||
m_mainTimer->stop();
|
||||
delete m_mainTimer;
|
||||
if (m_initialized)
|
||||
{
|
||||
m_driver->release();
|
||||
delete m_driver;
|
||||
m_driver = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void QNLWidget::setInterval(int msec)
|
||||
{
|
||||
m_interval = msec;
|
||||
m_mainTimer->setInterval(msec);
|
||||
}
|
||||
|
||||
void QNLWidget::setBackgroundColor(NLMISC::CRGBA backgroundColor)
|
||||
{
|
||||
m_backgroundColor = backgroundColor;
|
||||
}
|
||||
|
||||
void QNLWidget::updateRender()
|
||||
{
|
||||
if (isVisible())
|
||||
{
|
||||
if (m_initialized)
|
||||
m_driver->EventServer.pump();
|
||||
Q_EMIT updateData();
|
||||
|
||||
// Calc FPS
|
||||
static sint64 lastTime = NLMISC::CTime::getPerformanceTime ();
|
||||
sint64 newTime = NLMISC::CTime::getPerformanceTime ();
|
||||
m_fps = float(1.0 / NLMISC::CTime::ticksToSecond (newTime-lastTime));
|
||||
lastTime = newTime;
|
||||
|
||||
if (m_initialized && !m_driver->isLost())
|
||||
{
|
||||
//_driver->activate();
|
||||
m_driver->clearBuffers(m_backgroundColor);
|
||||
Q_EMIT updatePreRender();
|
||||
|
||||
Q_EMIT updatePostRender();
|
||||
// swap 3d buffers
|
||||
m_driver->swapBuffers();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QNLWidget::showEvent(QShowEvent *showEvent)
|
||||
{
|
||||
QWidget::showEvent(showEvent);
|
||||
m_driver->activate();
|
||||
m_mainTimer->start(m_interval);
|
||||
}
|
||||
|
||||
void QNLWidget::hideEvent(QHideEvent *hideEvent)
|
||||
{
|
||||
m_mainTimer->stop();
|
||||
QWidget::hideEvent(hideEvent);
|
||||
}
|
||||
|
||||
#if defined(NL_OS_WINDOWS)
|
||||
|
||||
typedef bool (*winProc)(NL3D::IDriver *driver, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
bool QNLWidget::winEvent(MSG *message, long *result)
|
||||
{
|
||||
if (m_driver && m_driver->isActive())
|
||||
{
|
||||
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser *>(m_driver)->getDriver();
|
||||
if (driver)
|
||||
{
|
||||
winProc proc = (winProc)driver->getWindowProc();
|
||||
return proc(driver, message->hwnd, message->message, message->wParam, message->lParam);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#elif defined(NL_OS_MAC)
|
||||
|
||||
typedef bool (*cocoaProc)(NL3D::IDriver *, const void *e);
|
||||
|
||||
bool QNLWidget::macEvent(EventHandlerCallRef caller, EventRef event)
|
||||
{
|
||||
if(caller)
|
||||
nlerror("You are using QtCarbon! Only QtCocoa supported, please upgrade Qt");
|
||||
|
||||
if (m_driver && m_driver->isActive())
|
||||
{
|
||||
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser *>(m_driver)->getDriver();
|
||||
if (driver)
|
||||
{
|
||||
cocoaProc proc = (cocoaProc)driver->getWindowProc();
|
||||
return proc(driver, event);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#elif defined(NL_OS_UNIX)
|
||||
|
||||
typedef bool (*x11Proc)(NL3D::IDriver *drv, XEvent *e);
|
||||
|
||||
bool QNLWidget::x11Event(XEvent *event)
|
||||
{
|
||||
if (m_driver && m_driver->isActive())
|
||||
{
|
||||
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser *>(m_driver)->getDriver();
|
||||
if (driver)
|
||||
{
|
||||
x11Proc proc = (x11Proc)driver->getWindowProc();
|
||||
return proc(driver, event);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
} /* namespace NLQT */
|
||||
|
|
@ -1,130 +0,0 @@
|
|||
// Object Viewer Qt - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
// Copyright (C) 2011 Dzmitry Kamiahin <dnk-88@tut.by>
|
||||
//
|
||||
// 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef QNEL_WIDGET_H
|
||||
#define QNEL_WIDGET_H
|
||||
|
||||
// NeL includes
|
||||
#include <nel/misc/types_nl.h>
|
||||
#include <nel/misc/rgba.h>
|
||||
#include <nel/misc/event_emitter.h>
|
||||
|
||||
// Qt includes
|
||||
#include <QtOpenGL/QGLWidget>
|
||||
#include <QtGui/QWidget>
|
||||
|
||||
class QAction;
|
||||
|
||||
/* TODO every platform should use QWidget */
|
||||
#if defined(NL_OS_WINDOWS)
|
||||
typedef QWidget QNeLWidget;
|
||||
#elif defined(NL_OS_MAC)
|
||||
typedef QWidget QNeLWidget;
|
||||
#elif defined(NL_OS_UNIX)
|
||||
typedef QGLWidget QNeLWidget;
|
||||
#endif // NL_OS_UNIX
|
||||
|
||||
namespace NL3D
|
||||
{
|
||||
class UDriver;
|
||||
class UScene;
|
||||
}
|
||||
|
||||
namespace NLQT
|
||||
{
|
||||
|
||||
/**
|
||||
@class QNLWidget
|
||||
@brief Responsible for interaction between Qt and NeL.
|
||||
@details Automatically begins to update the render if the widget is visible
|
||||
or suspends the updating of render if the widget is hidden.
|
||||
*/
|
||||
class QNLWidget : public QNeLWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QNLWidget(QWidget *parent);
|
||||
virtual ~QNLWidget();
|
||||
|
||||
/// Set the update interval renderer
|
||||
void setInterval(int msec);
|
||||
|
||||
/// Set the background color.
|
||||
void setBackgroundColor(NLMISC::CRGBA backgroundColor);
|
||||
|
||||
float fps() const
|
||||
{
|
||||
return m_fps;
|
||||
}
|
||||
|
||||
inline NLMISC::CRGBA backgroundColor() const
|
||||
{
|
||||
return m_backgroundColor;
|
||||
}
|
||||
|
||||
NL3D::UDriver *driver() const
|
||||
{
|
||||
return m_driver;
|
||||
}
|
||||
|
||||
virtual QPaintEngine* paintEngine() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
Q_SIGNALS:
|
||||
void updateData();
|
||||
void updatePreRender();
|
||||
void updatePostRender();
|
||||
|
||||
private Q_SLOTS:
|
||||
void updateRender();
|
||||
|
||||
protected:
|
||||
virtual void showEvent(QShowEvent *showEvent);
|
||||
virtual void hideEvent(QHideEvent *hideEvent);
|
||||
|
||||
#if defined(NL_OS_WINDOWS)
|
||||
virtual bool winEvent(MSG *message, long *result);
|
||||
#elif defined(NL_OS_MAC)
|
||||
virtual bool macEvent(EventHandlerCallRef caller, EventRef event);
|
||||
#elif defined(NL_OS_UNIX)
|
||||
virtual bool x11Event(XEvent *event);
|
||||
#endif
|
||||
|
||||
private:
|
||||
void init();
|
||||
void release();
|
||||
|
||||
QNLWidget(const QNLWidget &);
|
||||
QNLWidget &operator=(const QNLWidget &);
|
||||
|
||||
NL3D::UDriver *m_driver;
|
||||
NLMISC::CRGBA m_backgroundColor;
|
||||
|
||||
QTimer *m_mainTimer;
|
||||
|
||||
bool m_initialized;
|
||||
int m_interval;
|
||||
float m_fps;
|
||||
|
||||
}; /* class QNLWidget */
|
||||
|
||||
} /* namespace NLQT */
|
||||
|
||||
|
||||
#endif // QNEL_WIDGET_H
|
|
@ -1,56 +0,0 @@
|
|||
// Object Viewer Qt - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
// Copyright (C) 2011 Dzmitry Kamiahin <dnk-88@tut.by>
|
||||
//
|
||||
// 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "simple_viewer.h"
|
||||
|
||||
// Qt includes
|
||||
#include <QtGui/QWidget>
|
||||
#include <QtGui/QGridLayout>
|
||||
#include <QtGui/QMessageBox>
|
||||
|
||||
// NeL includes
|
||||
|
||||
// Project includes
|
||||
|
||||
namespace Plugin
|
||||
{
|
||||
|
||||
CSimpleViewer::CSimpleViewer(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
QGridLayout *gridLayout = new QGridLayout(this);
|
||||
gridLayout->setObjectName(QString::fromUtf8("gridLayoutSimpleViewer"));
|
||||
gridLayout->setContentsMargins(0, 0, 0, 0);
|
||||
NLQT::QNLWidget *_nelWidget = new NLQT::QNLWidget(this);
|
||||
gridLayout->addWidget(_nelWidget, 0, 0, 1, 1);
|
||||
|
||||
m_undoStack = new QUndoStack(this);
|
||||
}
|
||||
|
||||
bool CCoreListener::closeMainWindow() const
|
||||
{
|
||||
int ret = QMessageBox::question(0, tr("Example close event hook"),
|
||||
tr("Do you want to close window?"),
|
||||
QMessageBox::Yes | QMessageBox::No);
|
||||
|
||||
if (ret == QMessageBox::Yes)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
} /* namespace Plugin */
|
|
@ -0,0 +1,169 @@
|
|||
// Object Viewer Qt - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
// Copyright (C) 2011 Dzmitry Kamiahin <dnk-88@tut.by>
|
||||
//
|
||||
// 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "translation_manager_main_window.h"
|
||||
// Project system includes
|
||||
#include "../core/icore.h"
|
||||
// Qt includes
|
||||
#include <QtGui/QWidget>
|
||||
#include <QtGui/QMessageBox>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QTextEdit>
|
||||
#include <QtCore/QSettings>
|
||||
#include <QtGui/QErrorMessage>
|
||||
#include <QtCore/QSignalMapper>
|
||||
#include <QtGui/QTableWidget>
|
||||
#include <QtGui/QListWidget>
|
||||
#include <QtGui/QDockWidget>
|
||||
#include <QtCore/QSize>
|
||||
#include <QtGui/QGridLayout>
|
||||
struct TEntryInfo
|
||||
{
|
||||
string SheetName;
|
||||
};
|
||||
|
||||
set<string> getGenericNames();
|
||||
map<string, TEntryInfo> getSimpleNames();
|
||||
int extractBotNamesAll(map<string,list<string> > config_paths, string ligo_class_file, string trans_path, string work_path);
|
||||
|
||||
namespace Plugin
|
||||
{
|
||||
|
||||
CMainWindow::CMainWindow(QWidget *parent)
|
||||
: QMainWindow(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();
|
||||
m_undoStack = new QUndoStack(this);
|
||||
}
|
||||
|
||||
void CMainWindow::readSettings()
|
||||
{
|
||||
QSettings *settings = Core::ICore::instance()->settings();
|
||||
settings->beginGroup("translationmanager");
|
||||
|
||||
list<string> paths = convertQStringList(settings->value("paths").toStringList()); /* paths */
|
||||
config_paths["paths"] = paths;
|
||||
list<string> pathsR = convertQStringList(settings->value("pathsR").toStringList()); /* pathsR */
|
||||
config_paths["pathsR"] = pathsR;
|
||||
list<string> georges = convertQStringList(settings->value("georges").toStringList()); /* georges */
|
||||
config_paths["georges"] = georges;
|
||||
list<string> filters = convertQStringList(settings->value("filters").toStringList()); /* filters */
|
||||
config_paths["filters"] = filters;
|
||||
|
||||
languages = convertQStringList(settings->value("trlanguages").toStringList()); /* languages */
|
||||
ligo_path = settings->value("ligo").toString().toStdString();
|
||||
translation_path = settings->value("translation").toString().toStdString();
|
||||
work_path = settings->value("work").toString().toStdString();
|
||||
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool CMainWindow::verifySettings()
|
||||
{
|
||||
bool count_errors = false;
|
||||
|
||||
QSettings *settings = Core::ICore::instance()->settings();
|
||||
settings->beginGroup("translationmanager");
|
||||
|
||||
if(settings->value("paths").toList().count() == 0
|
||||
|| settings->value("pathsR").toList().count() == 0
|
||||
|| settings->value("georges").toList().count() == 0
|
||||
|| settings->value("filters").toList().count() == 0)
|
||||
{
|
||||
QErrorMessage error_settings;
|
||||
error_settings.showMessage("Please write all the paths on the settings dialog.");
|
||||
error_settings.exec();
|
||||
count_errors = true;
|
||||
}
|
||||
|
||||
if((settings->value("ligo").toString().isEmpty()
|
||||
|| settings->value("translation").toString().isEmpty()
|
||||
|| settings->value("work").toString().isEmpty()
|
||||
|| settings->value("trlanguages").toList().count() == 0)
|
||||
&& count_errors == false)
|
||||
{
|
||||
QErrorMessage error_settings;
|
||||
error_settings.showMessage("Please write the paths for ligo, translation and work files and the languages on the settings dialog." + settings->value("trlanguages").toString());
|
||||
error_settings.exec();
|
||||
count_errors = true;
|
||||
}
|
||||
|
||||
settings->endGroup();
|
||||
|
||||
return !count_errors;
|
||||
|
||||
}
|
||||
|
||||
list<string> CMainWindow::convertQStringList(QStringList listq)
|
||||
{
|
||||
std::list<std::string> stdlist;
|
||||
|
||||
Q_FOREACH(QString text, listq)
|
||||
{
|
||||
stdlist.push_back(text.toStdString());
|
||||
}
|
||||
|
||||
return stdlist;
|
||||
}
|
||||
|
||||
bool CCoreListener::closeMainWindow() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
} /* namespace Plugin */
|
|
@ -16,29 +16,53 @@
|
|||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
#ifndef SIMPLE_VIEWER_H
|
||||
#define SIMPLE_VIEWER_H
|
||||
#ifndef MAIN_WINDOW_H
|
||||
#define MAIN_WINDOW_H
|
||||
|
||||
// Project includes
|
||||
#include "qnel_widget.h"
|
||||
#include "../core/icore_listener.h"
|
||||
|
||||
// Qt includes
|
||||
#include <QtCore/QObject>
|
||||
#include <QtGui/QUndoStack>
|
||||
#include <QtGui/QMainWindow>
|
||||
#include <QtGui/QGridLayout>
|
||||
#include <QtGui/QTabWidget>
|
||||
#include <QtGui/QMenu>
|
||||
|
||||
#include "ui_translation_manager_main_window.h"
|
||||
#include <set>
|
||||
|
||||
class QWidget;
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace Plugin
|
||||
{
|
||||
|
||||
class CSimpleViewer : public QWidget
|
||||
class CMainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CSimpleViewer(QWidget *parent = 0);
|
||||
virtual ~CSimpleViewer() {}
|
||||
|
||||
QUndoStack *m_undoStack;
|
||||
CMainWindow(QWidget *parent = 0);
|
||||
virtual ~CMainWindow() {}
|
||||
QUndoStack *m_undoStack;
|
||||
private:
|
||||
Ui::CMainWindow _ui;
|
||||
QMenu *_toolMenu;
|
||||
map<string, list<string> > config_paths;
|
||||
list<string> languages;
|
||||
string ligo_path;
|
||||
string translation_path;
|
||||
string work_path;
|
||||
private Q_SLOTS:
|
||||
void extractBotNames();
|
||||
private:
|
||||
void compareBotNames();
|
||||
bool verifySettings();
|
||||
void readSettings();
|
||||
list<string> convertQStringList(QStringList listq);
|
||||
|
||||
};
|
||||
|
||||
class CCoreListener : public Core::ICoreListener
|
|
@ -1,7 +1,7 @@
|
|||
// Project includes
|
||||
#include "translation_manager_plugin.h"
|
||||
#include "translation_manager_settings_page.h"
|
||||
#include "simple_viewer.h"
|
||||
#include "translation_manager_main_window.h"
|
||||
// Project system includes
|
||||
#include "../core/icore.h"
|
||||
#include "../core/core_constants.h"
|
||||
|
@ -14,13 +14,12 @@
|
|||
// Qt includes
|
||||
#include <QtCore/QObject>
|
||||
#include <QtGui/QMessageBox>
|
||||
#include <QtGui/QErrorMessage>
|
||||
#include <QtGui/QMainWindow>
|
||||
#include <QtGui/QMenu>
|
||||
#include <QtGui/QAction>
|
||||
#include <QtGui/QMenuBar>
|
||||
|
||||
int extractBotNamesAll(map<string,list<string> > config_paths, string ligo_class_file, string trans_path, string work_path);
|
||||
|
||||
namespace Plugin
|
||||
{
|
||||
TranslationManagerPlugin::~TranslationManagerPlugin()
|
||||
|
@ -41,6 +40,7 @@ bool TranslationManagerPlugin::initialize(ExtensionSystem::IPluginManager *plugi
|
|||
addAutoReleasedObject(new CTranslationManagerSettingsPage(this));
|
||||
addAutoReleasedObject(new CTranslationManagerContext(this));
|
||||
addAutoReleasedObject(new CCoreListener(this));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -56,39 +56,6 @@ void TranslationManagerPlugin::extensionsInitialized()
|
|||
QAction *aboutQtAction = menuManager->action(Core::Constants::ABOUT_QT);
|
||||
helpMenu->addSeparator();
|
||||
helpMenu->insertAction(aboutQtAction, aboutTManPlugin);
|
||||
QMenu *transMenu = menuManager->menuBar()->addMenu("Translation Manager");
|
||||
// Words extraction
|
||||
QAction *botnamesAct = new QAction("Extract bot_names", this);
|
||||
connect(botnamesAct, SIGNAL(triggered()), this, SLOT(extractBotNames()));
|
||||
transMenu->addAction(botnamesAct);
|
||||
}
|
||||
|
||||
void TranslationManagerPlugin::extractBotNames()
|
||||
{
|
||||
// prepare the config paths
|
||||
list<string> paths,pathsR, georges, filters, languages;
|
||||
string ligo, translation, work;
|
||||
map<string, list<string> > config_paths;
|
||||
|
||||
QSettings *settings = Core::ICore::instance()->settings();
|
||||
settings->beginGroup("translationmanager");
|
||||
|
||||
paths = ConvertQStringList(settings->value("paths").toStringList()); /* paths */
|
||||
config_paths["paths"] = paths;
|
||||
pathsR = ConvertQStringList(settings->value("pathsR").toStringList()); /* pathsR */
|
||||
config_paths["pathsR"] = pathsR;
|
||||
georges = ConvertQStringList(settings->value("georges").toStringList()); /* georges */
|
||||
config_paths["georges"] = georges;
|
||||
filters = ConvertQStringList(settings->value("filters").toStringList()); /* filters */
|
||||
config_paths["filters"] = filters;
|
||||
languages = ConvertQStringList(settings->value("languages").toStringList()); /* languages */
|
||||
ligo = settings->value("ligo").toString().toStdString();
|
||||
translation = settings->value("translation").toString().toStdString();
|
||||
work = settings->value("work").toString().toStdString();
|
||||
settings->endGroup();
|
||||
|
||||
extractBotNamesAll(config_paths, ligo, translation, work);
|
||||
|
||||
}
|
||||
|
||||
void TranslationManagerPlugin::setNelContext(NLMISC::INelContext *nelContext)
|
||||
|
@ -101,17 +68,6 @@ void TranslationManagerPlugin::setNelContext(NLMISC::INelContext *nelContext)
|
|||
_LibContext = new NLMISC::CLibraryContext(*nelContext);
|
||||
}
|
||||
|
||||
list<string> TranslationManagerPlugin::ConvertQStringList(QStringList listq)
|
||||
{
|
||||
std::list<std::string> stdlist;
|
||||
Q_FOREACH(QString text, listq)
|
||||
{
|
||||
stdlist.push_back(text.toStdString());
|
||||
}
|
||||
|
||||
return stdlist;
|
||||
}
|
||||
|
||||
QString TranslationManagerPlugin::name() const
|
||||
{
|
||||
return "Translation Manager";
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
// Project includes
|
||||
#include "../../extension_system/iplugin.h"
|
||||
#include "../core/icontext.h"
|
||||
#include "simple_viewer.h"
|
||||
#include "translation_manager_main_window.h"
|
||||
|
||||
// NeL includes
|
||||
#include "nel/misc/app_context.h"
|
||||
|
@ -28,12 +28,13 @@ class IPluginSpec;
|
|||
namespace Plugin
|
||||
{
|
||||
|
||||
class CTranslationManagerContext;
|
||||
|
||||
class TranslationManagerPlugin : public QObject, public ExtensionSystem::IPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(ExtensionSystem::IPlugin)
|
||||
public:
|
||||
|
||||
virtual ~TranslationManagerPlugin();
|
||||
|
||||
bool initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString);
|
||||
|
@ -58,11 +59,6 @@ protected:
|
|||
private:
|
||||
ExtensionSystem::IPluginManager *_plugMan;
|
||||
QList<QObject *> _autoReleaseObjects;
|
||||
list<string> ConvertQStringList(QStringList list);
|
||||
|
||||
|
||||
private Q_SLOTS:
|
||||
void extractBotNames();
|
||||
};
|
||||
|
||||
class CTranslationManagerContext: public Core::IContext
|
||||
|
@ -71,7 +67,7 @@ class CTranslationManagerContext: public Core::IContext
|
|||
public:
|
||||
CTranslationManagerContext(QObject *parent = 0): IContext(parent)
|
||||
{
|
||||
m_simpleViewer = new CSimpleViewer();
|
||||
m_MainWindow = new CMainWindow();
|
||||
}
|
||||
|
||||
virtual ~CTranslationManagerContext() {}
|
||||
|
@ -90,18 +86,18 @@ public:
|
|||
}
|
||||
virtual QWidget *widget()
|
||||
{
|
||||
return m_simpleViewer;
|
||||
return m_MainWindow;
|
||||
}
|
||||
virtual QUndoStack *undoStack()
|
||||
{
|
||||
return m_simpleViewer->m_undoStack;
|
||||
return m_MainWindow->m_undoStack;
|
||||
}
|
||||
virtual void open()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
CSimpleViewer *m_simpleViewer;
|
||||
CMainWindow *m_MainWindow;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ QWidget *CTranslationManagerSettingsPage::createPage(QWidget *parent)
|
|||
{
|
||||
_currentPage = new QWidget(parent);
|
||||
_ui.setupUi(_currentPage);
|
||||
readSettings();
|
||||
readSettings();
|
||||
connect(_ui.paths_add, SIGNAL(clicked()), this, SLOT(pathAdd()));
|
||||
connect(_ui.paths_del, SIGNAL(clicked()), this, SLOT(pathDel()));
|
||||
connect(_ui.pathsR_add, SIGNAL(clicked()), this, SLOT(pathRAdd()));
|
||||
|
@ -79,8 +79,8 @@ QWidget *CTranslationManagerSettingsPage::createPage(QWidget *parent)
|
|||
connect(_ui.filter_del, SIGNAL(clicked()), this, SLOT(filterDel()));
|
||||
connect(_ui.lang_add, SIGNAL(clicked()), this, SLOT(languageAdd()));
|
||||
connect(_ui.lang_del, SIGNAL(clicked()), this, SLOT(languageDel()));
|
||||
connect(_ui.translation_add, SIGNAL(clicked()), this, SLOT(translationAdd()));
|
||||
connect(_ui.work_add, SIGNAL(clicked()), this, SLOT(workAdd()));
|
||||
connect(_ui.translation_add, SIGNAL(clicked()), this, SLOT(translationAdd()));
|
||||
connect(_ui.work_add, SIGNAL(clicked()), this, SLOT(workAdd()));
|
||||
|
||||
return _currentPage;
|
||||
}
|
||||
|
@ -218,13 +218,13 @@ void CTranslationManagerSettingsPage::readSettings()
|
|||
pathsR = settings->value("pathsR").toStringList(); /* pathsR */
|
||||
georges = settings->value("georges").toStringList(); /* georges */
|
||||
filters = settings->value("filters").toStringList(); /* filters */
|
||||
languages = settings->value("languages").toStringList(); /* languages */
|
||||
languages = settings->value("trlanguages").toStringList(); /* languages */
|
||||
ligo = settings->value("ligo").toString();
|
||||
translation = settings->value("translation").toString();
|
||||
work = settings->value("work").toString();
|
||||
|
||||
settings->endGroup();
|
||||
/* paths */
|
||||
// paths
|
||||
Q_FOREACH(QString path, paths)
|
||||
{
|
||||
QListWidgetItem *newItem = new QListWidgetItem;
|
||||
|
@ -232,7 +232,7 @@ void CTranslationManagerSettingsPage::readSettings()
|
|||
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||
_ui.paths_list->addItem(newItem);
|
||||
}
|
||||
/* pathsR */
|
||||
// pathsR
|
||||
Q_FOREACH(QString pathR, pathsR)
|
||||
{
|
||||
QListWidgetItem *newItem = new QListWidgetItem;
|
||||
|
@ -240,7 +240,7 @@ void CTranslationManagerSettingsPage::readSettings()
|
|||
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||
_ui.pathsR_list->addItem(newItem);
|
||||
}
|
||||
/* georges */
|
||||
// georges
|
||||
Q_FOREACH(QString george, georges)
|
||||
{
|
||||
QListWidgetItem *newItem = new QListWidgetItem;
|
||||
|
@ -248,7 +248,7 @@ void CTranslationManagerSettingsPage::readSettings()
|
|||
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||
_ui.georges_list->addItem(newItem);
|
||||
}
|
||||
/* filter */
|
||||
// filter
|
||||
Q_FOREACH(QString filter, filters)
|
||||
{
|
||||
QListWidgetItem *newItem = new QListWidgetItem;
|
||||
|
@ -256,7 +256,7 @@ void CTranslationManagerSettingsPage::readSettings()
|
|||
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||
_ui.filter_list->addItem(newItem);
|
||||
}
|
||||
/* languages */
|
||||
// languages
|
||||
Q_FOREACH(QString lang, languages)
|
||||
{
|
||||
QListWidgetItem *newItem = new QListWidgetItem;
|
||||
|
@ -264,11 +264,11 @@ void CTranslationManagerSettingsPage::readSettings()
|
|||
newItem->setFlags(Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||
_ui.lang_list->addItem(newItem);
|
||||
}
|
||||
/* ligo */
|
||||
// ligo
|
||||
_ui.ligo_edit->setText(ligo);
|
||||
/* translation */
|
||||
// translation
|
||||
_ui.translation_edit->setText(translation);
|
||||
/* work */
|
||||
// work
|
||||
_ui.work_edit->setText(work);
|
||||
|
||||
}
|
||||
|
@ -277,25 +277,26 @@ void CTranslationManagerSettingsPage::writeSettings()
|
|||
{
|
||||
QStringList paths, pathsR, georges, filters, languages;
|
||||
QString ligo, translation, work;
|
||||
/* paths */
|
||||
// paths
|
||||
for (int i = 0; i < _ui.paths_list->count(); ++i)
|
||||
paths << _ui.paths_list->item(i)->text();
|
||||
/* pathsR */
|
||||
// pathsR
|
||||
for (int i = 0; i < _ui.pathsR_list->count(); ++i)
|
||||
pathsR << _ui.pathsR_list->item(i)->text();
|
||||
/* georges */
|
||||
// georges
|
||||
for (int i = 0; i < _ui.georges_list->count(); ++i)
|
||||
georges << _ui.georges_list->item(i)->text();
|
||||
/* filters */
|
||||
// filters
|
||||
for (int i = 0; i < _ui.filter_list->count(); ++i)
|
||||
filters << _ui.filter_list->item(i)->text();
|
||||
/* languages */
|
||||
// languages
|
||||
for (int i = 0; i < _ui.lang_list->count(); ++i)
|
||||
languages << _ui.lang_list->item(i)->text();
|
||||
/* ligo path */
|
||||
// ligo path
|
||||
ligo = _ui.ligo_edit->text();
|
||||
/* translations path*/
|
||||
// translations path
|
||||
translation = _ui.translation_edit->text();
|
||||
// work path
|
||||
work = _ui.work_edit->text();
|
||||
|
||||
QSettings *settings = Core::ICore::instance()->settings();
|
||||
|
@ -304,11 +305,12 @@ void CTranslationManagerSettingsPage::writeSettings()
|
|||
settings->setValue("pathsR", pathsR);
|
||||
settings->setValue("georges", georges);
|
||||
settings->setValue("filters", filters);
|
||||
settings->setValue("languages", languages);
|
||||
settings->setValue("trlanguages", languages);
|
||||
settings->setValue("ligo", ligo);
|
||||
settings->setValue("translation", translation);
|
||||
settings->setValue("work", work);
|
||||
settings->endGroup();
|
||||
settings->sync();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>490</width>
|
||||
<height>482</height>
|
||||
<height>496</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -214,9 +214,9 @@
|
|||
<property name="geometry">
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>230</y>
|
||||
<width>450</width>
|
||||
<height>201</height>
|
||||
<y>190</y>
|
||||
<width>454</width>
|
||||
<height>161</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
|
@ -280,7 +280,7 @@
|
|||
<x>9</x>
|
||||
<y>10</y>
|
||||
<width>211</width>
|
||||
<height>221</height>
|
||||
<height>181</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
|
@ -333,7 +333,7 @@
|
|||
<x>240</x>
|
||||
<y>10</y>
|
||||
<width>221</width>
|
||||
<height>221</height>
|
||||
<height>181</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
|
|
Loading…
Reference in a new issue