|
|
|
@ -89,9 +89,9 @@
|
|
|
|
|
MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) :
|
|
|
|
|
MainWindowBase(parent), m_aboutDialog(nullptr), m_qSciSourceCodeEditor(nullptr),
|
|
|
|
|
m_qTranslator(nullptr), m_uiGuiTranslator(nullptr), m_textEditLineColumnInfoLabel(nullptr),
|
|
|
|
|
m_oldLinesNumber(0), m_encodingsList(), m_encodingActionGroup(nullptr),
|
|
|
|
|
m_saveEncodedActionGroup(nullptr), m_highlighterActionGroup(nullptr),
|
|
|
|
|
m_documentModified(false), m_previewToggled(true)
|
|
|
|
|
m_oldLinesNumber(0), m_openEncodingActions(), m_saveEncodingActions(),
|
|
|
|
|
m_encodingActionGroup(nullptr), m_saveEncodedActionGroup(nullptr),
|
|
|
|
|
m_highlighterActionGroup(nullptr), m_documentModified(false), m_previewToggled(true)
|
|
|
|
|
///- _mainWindowForm(nullptr), _settings(nullptr)
|
|
|
|
|
///- m_highlighter(nullptr), _aboutDialogGraphicsView(nullptr), _settingsDialog(nullptr)
|
|
|
|
|
///- m_textEditVScrollBar(nullptr), _toolBarWidget(nullptr), _indentHandler(nullptr)
|
|
|
|
@ -516,9 +516,7 @@ void MainWindow::openSourceFileDialog(const TQString &fileName)
|
|
|
|
|
TQString fileExtensions = "*.h *.c *.cpp *.*"; // Remove this line when the indenter is available
|
|
|
|
|
///-- TQString fileExtensions = tr("Supported by indenter") + " (" +
|
|
|
|
|
///-- _indentHandler->getPossibleIndenterFileExtensions() + ");;" + tr("All files") + " (*.*)";
|
|
|
|
|
///--
|
|
|
|
|
///-- //TQString openedSourceFileContent = openFileDialog( tr("Choose source code file"), "./",
|
|
|
|
|
///-- // fileExtensions );
|
|
|
|
|
|
|
|
|
|
TQString fileToOpen = fileName;
|
|
|
|
|
if (fileToOpen.isEmpty())
|
|
|
|
|
{
|
|
|
|
@ -558,48 +556,48 @@ void MainWindow::openSourceFileDialog(const TQString &fileName)
|
|
|
|
|
*/
|
|
|
|
|
bool MainWindow::saveasSourceFileDialog(TQAction *chosenEncodingAction)
|
|
|
|
|
{
|
|
|
|
|
///-- TQString encoding;
|
|
|
|
|
///-- TQString fileExtensions = tr("Supported by indenter") + " (" +
|
|
|
|
|
///-- _indentHandler->getPossibleIndenterFileExtensions() + ");;" + tr("All files") + " (*.*)";
|
|
|
|
|
///--
|
|
|
|
|
///-- //TQString openedSourceFileContent = openFileDialog( tr("Choose source code file"), "./",
|
|
|
|
|
///-- // fileExtensions );
|
|
|
|
|
///-- TQString fileName = TQFileDialog::getSaveFileName(this, tr(
|
|
|
|
|
///-- "Save source code file"), m_currentSourceFile, fileExtensions);
|
|
|
|
|
///--
|
|
|
|
|
///-- // Saving has been canceled if the filename is empty
|
|
|
|
|
///-- if (fileName.isEmpty())
|
|
|
|
|
///-- {
|
|
|
|
|
///-- return false;
|
|
|
|
|
///-- }
|
|
|
|
|
///--
|
|
|
|
|
///-- m_savedSourceContent = m_qSciSourceCodeEditor->text();
|
|
|
|
|
///--
|
|
|
|
|
///-- m_currentSourceFile = fileName;
|
|
|
|
|
///-- TQFile::remove(fileName);
|
|
|
|
|
///-- TQFile outSrcFile(fileName);
|
|
|
|
|
///-- outSrcFile.open(TQFile::ReadWrite | TQFile::Text);
|
|
|
|
|
///--
|
|
|
|
|
///-- // Get current encoding.
|
|
|
|
|
///-- if (chosenEncodingAction != NULL)
|
|
|
|
|
///-- {
|
|
|
|
|
///-- encoding = chosenEncodingAction->text();
|
|
|
|
|
///-- }
|
|
|
|
|
///-- else
|
|
|
|
|
///-- {
|
|
|
|
|
///-- encoding = m_encodingActionGroup->checkedAction()->text();
|
|
|
|
|
///-- }
|
|
|
|
|
///-- TQTextStream outSrcStrm(&outSrcFile);
|
|
|
|
|
///-- outSrcStrm.setCodec(TQTextCodec::codecForName(encoding.toAscii()));
|
|
|
|
|
///-- outSrcStrm << m_savedSourceContent;
|
|
|
|
|
///-- outSrcFile.close();
|
|
|
|
|
///--
|
|
|
|
|
///-- TQFileInfo fileInfo(fileName);
|
|
|
|
|
///-- m_currentSourceFileExtension = fileInfo.suffix();
|
|
|
|
|
///--
|
|
|
|
|
///-- m_qSciSourceCodeEditor->setModified(false);
|
|
|
|
|
///-- m_documentModified = false;
|
|
|
|
|
///--
|
|
|
|
|
TQString fileExtensions = "*.h *.c *.cpp *.*"; // Remove this line when the indenter is available
|
|
|
|
|
//--- TQString fileExtensions = tr("Supported by indenter") + " (" +
|
|
|
|
|
//--- _indentHandler->getPossibleIndenterFileExtensions() + ");;" + tr("All files") + " (*.*)";
|
|
|
|
|
|
|
|
|
|
TQString fileName = TQFileDialog::getSaveFileName(m_currentSourceFile, fileExtensions, this, nullptr,
|
|
|
|
|
tr("Save source code file"));
|
|
|
|
|
|
|
|
|
|
// Saving has been canceled if the filename is empty
|
|
|
|
|
if (fileName.isEmpty())
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_savedSourceContent = m_qSciSourceCodeEditor->text();
|
|
|
|
|
|
|
|
|
|
m_currentSourceFile = fileName;
|
|
|
|
|
TQFile::remove(fileName);
|
|
|
|
|
TQFile outSrcFile(fileName);
|
|
|
|
|
outSrcFile.open(IO_ReadWrite | IO_Translate);
|
|
|
|
|
|
|
|
|
|
// Get current encoding.
|
|
|
|
|
TQString encoding;
|
|
|
|
|
if (chosenEncodingAction)
|
|
|
|
|
{
|
|
|
|
|
encoding = chosenEncodingAction->text();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
encoding = m_currentEncoding;
|
|
|
|
|
}
|
|
|
|
|
TQTextStream outSrcStrm(&outSrcFile);
|
|
|
|
|
outSrcStrm.setCodec(TQTextCodec::codecForName(encoding.ascii()));
|
|
|
|
|
outSrcStrm << m_savedSourceContent;
|
|
|
|
|
outSrcFile.close();
|
|
|
|
|
|
|
|
|
|
TQFileInfo fileInfo(fileName);
|
|
|
|
|
m_currentSourceFileExtension = fileInfo.extension(false);
|
|
|
|
|
|
|
|
|
|
m_qSciSourceCodeEditor->setModified(false);
|
|
|
|
|
m_documentModified = false;
|
|
|
|
|
|
|
|
|
|
updateRecentlyOpenedList();
|
|
|
|
|
updateWindowTitle();
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
@ -611,51 +609,30 @@ bool MainWindow::saveasSourceFileDialog(TQAction *chosenEncodingAction)
|
|
|
|
|
*/
|
|
|
|
|
bool MainWindow::saveSourceFile()
|
|
|
|
|
{
|
|
|
|
|
///-- if (m_currentSourceFile.isEmpty())
|
|
|
|
|
///-- {
|
|
|
|
|
///-- return saveasSourceFileDialog();
|
|
|
|
|
///-- }
|
|
|
|
|
///-- else
|
|
|
|
|
///-- {
|
|
|
|
|
///-- TQFile::remove(m_currentSourceFile);
|
|
|
|
|
///-- TQFile outSrcFile(m_currentSourceFile);
|
|
|
|
|
///-- m_savedSourceContent = m_qSciSourceCodeEditor->text();
|
|
|
|
|
///-- outSrcFile.open(TQFile::ReadWrite | TQFile::Text);
|
|
|
|
|
///--
|
|
|
|
|
///-- // Get current encoding.
|
|
|
|
|
///-- TQString m_currentEncoding = m_encodingActionGroup->checkedAction()->text();
|
|
|
|
|
///-- TQTextStream outSrcStrm(&outSrcFile);
|
|
|
|
|
///-- outSrcStrm.setCodec(TQTextCodec::codecForName(m_currentEncoding.toAscii()));
|
|
|
|
|
///-- outSrcStrm << m_savedSourceContent;
|
|
|
|
|
///-- outSrcFile.close();
|
|
|
|
|
///--
|
|
|
|
|
///-- m_qSciSourceCodeEditor->setModified(false);
|
|
|
|
|
///-- m_documentModified = false;
|
|
|
|
|
///-- }
|
|
|
|
|
if (m_currentSourceFile.isEmpty())
|
|
|
|
|
{
|
|
|
|
|
return saveasSourceFileDialog();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
TQFile::remove(m_currentSourceFile);
|
|
|
|
|
TQFile outSrcFile(m_currentSourceFile);
|
|
|
|
|
m_savedSourceContent = m_qSciSourceCodeEditor->text();
|
|
|
|
|
outSrcFile.open(IO_ReadWrite | IO_Translate);
|
|
|
|
|
|
|
|
|
|
// Get current encoding.
|
|
|
|
|
TQTextStream outSrcStrm(&outSrcFile);
|
|
|
|
|
outSrcStrm.setCodec(TQTextCodec::codecForName(m_currentEncoding.ascii()));
|
|
|
|
|
outSrcStrm << m_savedSourceContent;
|
|
|
|
|
outSrcFile.close();
|
|
|
|
|
|
|
|
|
|
m_qSciSourceCodeEditor->setModified(false);
|
|
|
|
|
m_documentModified = false;
|
|
|
|
|
}
|
|
|
|
|
updateWindowTitle();
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///-- /*
|
|
|
|
|
///-- \brief Shows a file open dialog.
|
|
|
|
|
///--
|
|
|
|
|
///-- Shows a file open dialog with the title \a dialogHeaderStr starting in the directory \a startPath
|
|
|
|
|
///-- and with a file mask defined by \a fileMaskStr. Returns the contents of the file as TQString.
|
|
|
|
|
///-- */
|
|
|
|
|
///-- TQString MainWindow::openFileDialog(TQString dialogHeaderStr, TQString startPath,
|
|
|
|
|
///-- TQString fileMaskStr)
|
|
|
|
|
///-- {
|
|
|
|
|
///-- TQString fileContent = "";
|
|
|
|
|
///--
|
|
|
|
|
///-- TQString fileName = TQFileDialog::getOpenFileName(NULL, dialogHeaderStr, startPath, fileMaskStr);
|
|
|
|
|
///--
|
|
|
|
|
///-- if (fileName != "")
|
|
|
|
|
///-- {
|
|
|
|
|
///-- fileContent = loadFile(fileName);
|
|
|
|
|
///-- }
|
|
|
|
|
///--
|
|
|
|
|
///-- return fileContent;
|
|
|
|
|
///-- }
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
\brief Updates the displaying of the source code.
|
|
|
|
|
|
|
|
|
@ -1224,17 +1201,17 @@ void MainWindow::languageChanged(int languageIndex)
|
|
|
|
|
*/
|
|
|
|
|
void MainWindow::createEncodingMenu()
|
|
|
|
|
{
|
|
|
|
|
m_encodingsList << "UTF-8" << "UTF-16" << "UTF-16BE" << "UTF-16LE" <<
|
|
|
|
|
"Apple Roman" << "Big5" << "Big5-HKSCS" << "EUC-JP" << "EUC-KR" << "GB18030-0" <<
|
|
|
|
|
"IBM 850" << "IBM 866" << "IBM 874" << "ISO 2022-JP" << "ISO 8859-1" << "ISO 8859-13" <<
|
|
|
|
|
"Iscii-Bng" << "JIS X 0201" << "JIS X 0208" << "KOI8-R" << "KOI8-U" << "MuleLao-1" <<
|
|
|
|
|
TQStringList encodingsList;
|
|
|
|
|
encodingsList << "UTF-8" << "ISO-10646-UCS-2" << "Apple Roman" << "Big5" << "Big5-HKSCS" << "CP 874" <<
|
|
|
|
|
"EUC-JP" << "EUC-KR" << "GB18030-0" << "IBM 850" << "IBM 866" << "ISO 2022-JP" <<
|
|
|
|
|
"ISO 8859-1" << "ISO 8859-13" << "Iscii-Bng" << "KOI8-R" << "KOI8-U" << "MuleLao-1" <<
|
|
|
|
|
"ROMAN8" << "Shift-JIS" << "TIS-620" << "TSCII" << "Windows-1250" << "WINSAMI2";
|
|
|
|
|
|
|
|
|
|
m_encodingActionGroup = new TQActionGroup(this);
|
|
|
|
|
m_saveEncodedActionGroup = new TQActionGroup(this);
|
|
|
|
|
|
|
|
|
|
// Loop for each available encoding
|
|
|
|
|
for(const TQString &encodingName : m_encodingsList)
|
|
|
|
|
for(const TQString &encodingName : encodingsList)
|
|
|
|
|
{
|
|
|
|
|
// Create actions for the "reopen" menu
|
|
|
|
|
TQAction *encodingAction = new TQAction(m_encodingActionGroup);
|
|
|
|
@ -1247,6 +1224,7 @@ void MainWindow::createEncodingMenu()
|
|
|
|
|
{
|
|
|
|
|
encodingAction->setOn(true);
|
|
|
|
|
}
|
|
|
|
|
m_openEncodingActions.append(encodingAction);
|
|
|
|
|
|
|
|
|
|
// Create actions for the "save as encoded" menu
|
|
|
|
|
encodingAction = new TQAction(m_saveEncodedActionGroup);
|
|
|
|
@ -1254,6 +1232,8 @@ void MainWindow::createEncodingMenu()
|
|
|
|
|
encodingAction->setStatusTip(tr(
|
|
|
|
|
"Save the currently opened source code file by using the text encoding scheme ") +
|
|
|
|
|
encodingName);
|
|
|
|
|
encodingAction->setToggleAction(true);
|
|
|
|
|
m_saveEncodingActions.append(encodingAction);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_encodingActionGroup->addTo(popupMenuEncoding);
|
|
|
|
@ -1273,20 +1253,20 @@ void MainWindow::createEncodingMenu()
|
|
|
|
|
*/
|
|
|
|
|
void MainWindow::saveAsOtherEncoding(TQAction *chosenEncodingAction)
|
|
|
|
|
{
|
|
|
|
|
///-- bool fileWasSaved = saveasSourceFileDialog(chosenEncodingAction);
|
|
|
|
|
///--
|
|
|
|
|
///-- // If the file was save with another encoding, change the selected encoding in the reopen menu.
|
|
|
|
|
///-- if (fileWasSaved)
|
|
|
|
|
///-- {
|
|
|
|
|
///-- foreach(TQAction * action, m_encodingActionGroup->actions())
|
|
|
|
|
///-- {
|
|
|
|
|
///-- if (action->text() == chosenEncodingAction->text())
|
|
|
|
|
///-- {
|
|
|
|
|
///-- action->setChecked(true);
|
|
|
|
|
///-- return;
|
|
|
|
|
///-- }
|
|
|
|
|
///-- }
|
|
|
|
|
///-- }
|
|
|
|
|
bool fileWasSaved = saveasSourceFileDialog(chosenEncodingAction);
|
|
|
|
|
|
|
|
|
|
// If the file was save with another encoding, change the selected encoding in the reopen menu.
|
|
|
|
|
if (fileWasSaved)
|
|
|
|
|
{
|
|
|
|
|
for (TQAction *action : m_openEncodingActions)
|
|
|
|
|
{
|
|
|
|
|
if (action->text() == chosenEncodingAction->text())
|
|
|
|
|
{
|
|
|
|
|
action->setOn(true);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -1294,30 +1274,31 @@ void MainWindow::saveAsOtherEncoding(TQAction *chosenEncodingAction)
|
|
|
|
|
*/
|
|
|
|
|
void MainWindow::encodingChanged(TQAction *encodingAction)
|
|
|
|
|
{
|
|
|
|
|
///-- if (maybeSave())
|
|
|
|
|
///-- {
|
|
|
|
|
///-- TQFile inSrcFile(m_currentSourceFile);
|
|
|
|
|
///-- TQString fileContent = "";
|
|
|
|
|
///--
|
|
|
|
|
///-- if (!inSrcFile.open(TQFile::ReadOnly | TQFile::Text))
|
|
|
|
|
///-- {
|
|
|
|
|
///-- TQMessageBox::warning(NULL, tr("Error opening file"), tr(
|
|
|
|
|
///-- "Cannot read the file ") + "\"" + m_currentSourceFile + "\".");
|
|
|
|
|
///-- }
|
|
|
|
|
///-- else
|
|
|
|
|
///-- {
|
|
|
|
|
///-- TQTextStream inSrcStrm(&inSrcFile);
|
|
|
|
|
///-- TQApplication::setOverrideCursor(TQt::WaitCursor);
|
|
|
|
|
///-- TQString encodingName = encodingAction->text();
|
|
|
|
|
///-- m_currentEncoding = encodingName;
|
|
|
|
|
///-- inSrcStrm.setCodec(TQTextCodec::codecForName(encodingName.toAscii()));
|
|
|
|
|
///-- fileContent = inSrcStrm.readAll();
|
|
|
|
|
///-- TQApplication::restoreOverrideCursor();
|
|
|
|
|
///-- inSrcFile.close();
|
|
|
|
|
///-- m_qSciSourceCodeEditor->setText(fileContent);
|
|
|
|
|
///-- m_qSciSourceCodeEditor->setModified(false);
|
|
|
|
|
///-- }
|
|
|
|
|
///-- }
|
|
|
|
|
m_currentEncoding = encodingAction ? encodingAction->text() : TQString::null;
|
|
|
|
|
if (maybeSave())
|
|
|
|
|
{
|
|
|
|
|
TQFile inSrcFile(m_currentSourceFile);
|
|
|
|
|
TQString fileContent = "";
|
|
|
|
|
|
|
|
|
|
if (!inSrcFile.open(IO_ReadOnly | IO_Translate))
|
|
|
|
|
{
|
|
|
|
|
TQMessageBox::warning(NULL, tr("Error opening file"), tr(
|
|
|
|
|
"Cannot read the file ") + "\"" + m_currentSourceFile + "\".");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
TQTextStream inSrcStrm(&inSrcFile);
|
|
|
|
|
TQApplication::setOverrideCursor(TQt::WaitCursor);
|
|
|
|
|
TQString encodingName = encodingAction->text();
|
|
|
|
|
m_currentEncoding = encodingName;
|
|
|
|
|
inSrcStrm.setCodec(TQTextCodec::codecForName(encodingName.ascii()));
|
|
|
|
|
fileContent = inSrcStrm.read();
|
|
|
|
|
TQApplication::restoreOverrideCursor();
|
|
|
|
|
inSrcFile.close();
|
|
|
|
|
m_qSciSourceCodeEditor->setText(fileContent);
|
|
|
|
|
m_qSciSourceCodeEditor->setModified(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|