Changed: #1307 Added Phrase editor files and base functions
This commit is contained in:
parent
8cf9d368af
commit
82e45b6d63
8 changed files with 158 additions and 66 deletions
|
@ -0,0 +1,116 @@
|
||||||
|
// Translation Manager Plugin - OVQT Plugin <http://dev.ryzom.com/projects/nel/>
|
||||||
|
// Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
// Copyright (C) 2011 Emanuel Costea <cemycc@gmail.com>
|
||||||
|
//
|
||||||
|
// 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/>.
|
||||||
|
|
||||||
|
// Nel includes
|
||||||
|
#include "nel/misc/path.h"
|
||||||
|
#include "nel/misc/diff_tool.h"
|
||||||
|
|
||||||
|
// Qt includes
|
||||||
|
#include <QtGui/QErrorMessage>
|
||||||
|
#include <QtCore/qfileinfo.h>
|
||||||
|
#include <QtGui/QMessageBox>
|
||||||
|
#include <QtGui/QCloseEvent>
|
||||||
|
|
||||||
|
// Project includes
|
||||||
|
#include "editor_phrase.h"
|
||||||
|
#include "translation_manager_constants.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
namespace Plugin {
|
||||||
|
|
||||||
|
void CEditorPhrase::open(QString filename)
|
||||||
|
{
|
||||||
|
vector<STRING_MANAGER::TPhrase> phrases;
|
||||||
|
if(readPhraseFile(filename.toStdString(), phrases, false))
|
||||||
|
{
|
||||||
|
text_edit = new QTextEdit();
|
||||||
|
// read the file content
|
||||||
|
QFile file(filename);
|
||||||
|
QTextStream in(&file);
|
||||||
|
// set the file content to the text edit
|
||||||
|
QString content = in.readAll();
|
||||||
|
text_edit->setText(content);
|
||||||
|
// window settings
|
||||||
|
setCurrentFile(filename);
|
||||||
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
setWidget(text_edit);
|
||||||
|
editor_type = Constants::ED_PHRASE;
|
||||||
|
current_file = filename;
|
||||||
|
} else {
|
||||||
|
QErrorMessage error;
|
||||||
|
error.showMessage("This file is not a phrase file.");
|
||||||
|
error.exec();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CEditorPhrase::activateWindow()
|
||||||
|
{
|
||||||
|
showMaximized();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CEditorPhrase::save()
|
||||||
|
{
|
||||||
|
QFile file(current_file);
|
||||||
|
QTextStream out(&file);
|
||||||
|
out<<text_edit->toPlainText();
|
||||||
|
setCurrentFile(current_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CEditorPhrase::saveAs(QString filename)
|
||||||
|
{
|
||||||
|
QFile file(filename);
|
||||||
|
QTextStream out(&file);
|
||||||
|
out<<text_edit->toPlainText();
|
||||||
|
current_file = filename;
|
||||||
|
setCurrentFile(current_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CEditorPhrase::closeEvent(QCloseEvent *event)
|
||||||
|
{
|
||||||
|
if(isWindowModified())
|
||||||
|
{
|
||||||
|
QMessageBox msgBox;
|
||||||
|
msgBox.setText("The document has been modified.");
|
||||||
|
msgBox.setInformativeText("Do you want to save your changes?");
|
||||||
|
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
|
||||||
|
msgBox.setDefaultButton(QMessageBox::Save);
|
||||||
|
int ret = msgBox.exec();
|
||||||
|
switch (ret)
|
||||||
|
{
|
||||||
|
case QMessageBox::Save:
|
||||||
|
save();
|
||||||
|
event->accept();
|
||||||
|
close();
|
||||||
|
break;
|
||||||
|
case QMessageBox::Discard:
|
||||||
|
event->accept();
|
||||||
|
close();
|
||||||
|
break;
|
||||||
|
case QMessageBox::Cancel:
|
||||||
|
event->ignore();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
event->accept();
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,53 +0,0 @@
|
||||||
// Translation Manager Plugin - OVQT Plugin <http://dev.ryzom.com/projects/nel/>
|
|
||||||
// Copyright (C) 2010 Winch Gate Property Limited
|
|
||||||
// Copyright (C) 2011 Emanuel Costea <cemycc@gmail.com>
|
|
||||||
//
|
|
||||||
// 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/>.
|
|
||||||
|
|
||||||
// Qt includes
|
|
||||||
#include <QtGui/QErrorMessage>
|
|
||||||
#include <QtCore/qfileinfo.h>
|
|
||||||
#include <QtGui/QMessageBox>
|
|
||||||
#include <QtGui/QCloseEvent>
|
|
||||||
|
|
||||||
// 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)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -20,11 +20,14 @@
|
||||||
|
|
||||||
// Qt includes
|
// Qt includes
|
||||||
#include <QtCore/QObject>
|
#include <QtCore/QObject>
|
||||||
|
#include <QtCore/QFile>
|
||||||
|
#include <QtCore/QTextStream>
|
||||||
#include <QtGui/QWidget>
|
#include <QtGui/QWidget>
|
||||||
#include <QtGui/QMdiArea>
|
#include <QtGui/QMdiArea>
|
||||||
#include <QtGui/QMdiSubWindow>
|
#include <QtGui/QMdiSubWindow>
|
||||||
#include <QtGui/QUndoCommand>
|
#include <QtGui/QUndoCommand>
|
||||||
#include <QtGui/QUndoStack>
|
#include <QtGui/QUndoStack>
|
||||||
|
#include <QtGui/QTextEdit>
|
||||||
|
|
||||||
// Project includes
|
// Project includes
|
||||||
#include "translation_manager_editor.h"
|
#include "translation_manager_editor.h"
|
||||||
|
@ -34,6 +37,8 @@ namespace Plugin {
|
||||||
class CEditorPhrase : public CEditor
|
class CEditorPhrase : public CEditor
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
private:
|
||||||
|
QTextEdit *text_edit;
|
||||||
public:
|
public:
|
||||||
CEditorPhrase(QMdiArea* parent) : CEditor(parent) {}
|
CEditorPhrase(QMdiArea* parent) : CEditor(parent) {}
|
||||||
CEditorPhrase() : CEditor() {}
|
CEditorPhrase() : CEditor() {}
|
||||||
|
@ -41,6 +46,7 @@ public:
|
||||||
void save();
|
void save();
|
||||||
void saveAs(QString filename);
|
void saveAs(QString filename);
|
||||||
void activateWindow();
|
void activateWindow();
|
||||||
|
void closeEvent(QCloseEvent *event);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
|
@ -202,6 +202,7 @@ void CEditorWorksheet::saveAs(QString filename)
|
||||||
}
|
}
|
||||||
ucstring s = prepareExcelSheet(new_file);
|
ucstring s = prepareExcelSheet(new_file);
|
||||||
NLMISC::CI18N::writeTextFile(filename.toStdString(), s, false);
|
NLMISC::CI18N::writeTextFile(filename.toStdString(), s, false);
|
||||||
|
current_file = filename;
|
||||||
setCurrentFile(filename);
|
setCurrentFile(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -484,15 +485,6 @@ void CEditorWorksheet::mergeWorksheetFile(QString filename)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEditorWorksheet::setCurrentFile(QString filename)
|
|
||||||
{
|
|
||||||
QFileInfo *file = new QFileInfo(filename);
|
|
||||||
current_file = file->canonicalFilePath();
|
|
||||||
setWindowModified(false);
|
|
||||||
setWindowTitle(file->fileName() + "[*]");
|
|
||||||
setWindowFilePath(current_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CEditorWorksheet::closeEvent(QCloseEvent *event)
|
void CEditorWorksheet::closeEvent(QCloseEvent *event)
|
||||||
{
|
{
|
||||||
if(isWindowModified())
|
if(isWindowModified())
|
||||||
|
|
|
@ -65,8 +65,6 @@ private Q_SLOTS:
|
||||||
void worksheetEditorChanged(QTableWidgetItem * item);
|
void worksheetEditorChanged(QTableWidgetItem * item);
|
||||||
void insertRow();
|
void insertRow();
|
||||||
void deleteRow();
|
void deleteRow();
|
||||||
private:
|
|
||||||
void setCurrentFile(QString filename);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include <QtGui/QMdiArea>
|
#include <QtGui/QMdiArea>
|
||||||
#include <QtGui/QMdiSubWindow>
|
#include <QtGui/QMdiSubWindow>
|
||||||
#include <QtGui/QUndoStack>
|
#include <QtGui/QUndoStack>
|
||||||
|
#include <QtCore/QFileInfo>
|
||||||
|
|
||||||
namespace Plugin {
|
namespace Plugin {
|
||||||
|
|
||||||
|
@ -52,6 +53,15 @@ public:
|
||||||
{
|
{
|
||||||
current_stack = stack;
|
current_stack = stack;
|
||||||
}
|
}
|
||||||
|
void setCurrentFile(QString filename)
|
||||||
|
{
|
||||||
|
QFileInfo *file = new QFileInfo(filename);
|
||||||
|
current_file = file->canonicalFilePath();
|
||||||
|
setWindowModified(false);
|
||||||
|
setWindowTitle(file->fileName() + "[*]");
|
||||||
|
setWindowFilePath(current_file);
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -217,6 +217,14 @@ void CMainWindow::open()
|
||||||
new_window->open(file_name);
|
new_window->open(file_name);
|
||||||
new_window->activateWindow();
|
new_window->activateWindow();
|
||||||
}
|
}
|
||||||
|
// phrase editor
|
||||||
|
if(isPhraseEditor(file_name))
|
||||||
|
{
|
||||||
|
CEditorPhrase *new_window = new CEditorPhrase(_ui.mdiArea);
|
||||||
|
new_window->setUndoStack(m_undoStack);
|
||||||
|
new_window->open(file_name);
|
||||||
|
new_window->activateWindow();
|
||||||
|
}
|
||||||
#ifndef QT_NO_CURSOR
|
#ifndef QT_NO_CURSOR
|
||||||
QApplication::restoreOverrideCursor();
|
QApplication::restoreOverrideCursor();
|
||||||
#endif
|
#endif
|
||||||
|
@ -559,12 +567,26 @@ bool CMainWindow::isWorksheetEditor(QString filename)
|
||||||
STRING_MANAGER::TWorksheet wk_file;
|
STRING_MANAGER::TWorksheet wk_file;
|
||||||
if(loadExcelSheet(filename.toStdString(), wk_file, true) == true)
|
if(loadExcelSheet(filename.toStdString(), wk_file, true) == true)
|
||||||
{
|
{
|
||||||
return true;
|
if(wk_file.ColCount > 1)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CMainWindow::isPhraseEditor(QString filename)
|
||||||
|
{
|
||||||
|
vector<STRING_MANAGER::TPhrase> phrases;
|
||||||
|
if(readPhraseFile(filename.toStdString(), phrases, false))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool CCoreListener::closeMainWindow() const
|
bool CCoreListener::closeMainWindow() const
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
#include "ui_translation_manager_main_window.h"
|
#include "ui_translation_manager_main_window.h"
|
||||||
#include <set>
|
#include <set>
|
||||||
#include "editor_worksheet.h"
|
#include "editor_worksheet.h"
|
||||||
|
#include "editor_phrase.h"
|
||||||
|
|
||||||
class QWidget;
|
class QWidget;
|
||||||
|
|
||||||
|
@ -101,7 +102,7 @@ private:
|
||||||
// Worksheet specific functions
|
// Worksheet specific functions
|
||||||
CEditorWorksheet* getEditorByWorksheetType(const QString &type);
|
CEditorWorksheet* getEditorByWorksheetType(const QString &type);
|
||||||
bool isWorksheetEditor(QString filename);
|
bool isWorksheetEditor(QString filename);
|
||||||
|
bool isPhraseEditor(QString filename);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue