diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2023-04-18 20:47:44 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2023-04-18 20:47:44 +0900 |
commit | 425e16ad894fd23d7c5b061acffba6cd04a1b1db (patch) | |
tree | e1f794e07812bcd59a4b518747bf9dc5c2a5a163 /src | |
parent | 11451cea9db07b2a257297de57d76a8dbb7e3a5e (diff) | |
download | universal-indent-gui-tqt-425e16ad894fd23d7c5b061acffba6cd04a1b1db.tar.gz universal-indent-gui-tqt-425e16ad894fd23d7c5b061acffba6cd04a1b1db.zip |
Added code to load last open file or an example or an untitled file.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'src')
-rw-r--r-- | src/MainWindow.cpp | 393 | ||||
-rw-r--r-- | src/MainWindow.h | 57 | ||||
-rwxr-xr-x | src/MainWindowBase.ui | 3 |
3 files changed, 227 insertions, 226 deletions
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index a3480c7..ab3040d 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -37,6 +37,9 @@ #include <tqaction.h> #include <tqapplication.h> #include <tqcheckbox.h> +#include <tqcursor.h> +#include <tqfile.h> +#include <tqfileinfo.h> #include <tqlabel.h> #include <tqlocale.h> #include <tqmessagebox.h> @@ -44,6 +47,7 @@ #include <tqpopupmenu.h> #include <tqpushbutton.h> #include <tqstatusbar.h> +#include <tqtextcodec.h> #include <tqtranslator.h> ///-- #include <tqwidget.h> ///-- #include <tqstring.h> @@ -57,7 +61,6 @@ ///-- #include <tqcloseevent.h> ///-- #include <tqhelpevent.h> ///-- #include <tqtooltip.h> -///-- #include <tqtextcodec.h> ///-- #include <tqdate.h> ///-- #include <tqurl.h> ///-- #include <tqtdebug.h> @@ -87,7 +90,8 @@ 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_saveEncodedActionGroup(nullptr), m_highlighterActionGroup(nullptr), + m_documentModified(false) ///- _mainWindowForm(nullptr), _settings(nullptr) ///- m_highlighter(nullptr), _aboutDialogGraphicsView(nullptr), _settingsDialog(nullptr) ///- m_textEditVScrollBar(nullptr), _toolBarWidget(nullptr), _indentHandler(nullptr) @@ -131,21 +135,20 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- _settingsDialog = new UiGuiSettingsDialog(this, _settings); ///-- connect(actionShowSettings, SIGNAL(activated()), _settingsDialog, ///-- SLOT(showDialog())); -///-- -///-- // If a file that should be opened on start has been handed over to the constructor exists, load -///-- // it -///-- if (TQFile::exists(file2OpenOnStart)) -///-- { -///-- openSourceFileDialog(file2OpenOnStart); -///-- } -///-- // Otherwise load the last opened file, if this is enabled in the settings. -///-- else -///-- { -///-- loadLastOpenedFile(); -///-- } -///-- -///-- updateSourceView(); -///-- + + if (TQFile::exists(file2OpenOnStart)) + { + // If a file that should be opened on start exists, load it + openSourceFileDialog(file2OpenOnStart); + } + else + { + // Otherwise load the last opened file, if this is enabled in the settings. + loadLastOpenedFile(); + } + + updateSourceView(); + ///-- // Enable accept dropping of files. ///-- setAcceptDrops(true); } @@ -249,6 +252,8 @@ void MainWindow::initMainWindow() ///-- //connect( _settings, SIGNAL(recentlyOpenedListSize(int)), this, SLOT(updateRecentlyOpenedList()) ///-- // ); ///-- _settings->registerObjectSlot(this, "updateRecentlyOpenedList()", "recentlyOpenedListSize"); + + updateWindowTitle(); } /* @@ -455,7 +460,7 @@ void MainWindow::initIndenter() ///-- ///-- // Set this true, so the indenter is called at first program start ///-- _indentSettingsChanged = true; -///-- _previewToggled = true; +///-- m_previewToggled = true; ///-- ///-- // Handle if indenter parameter tool tips are enabled ///-- _settings->registerObjectProperty(actionIndenterParameterTooltipsEnabled, @@ -465,37 +470,37 @@ void MainWindow::initIndenter() ///-- _mainWindowForm->menuIndenter->addActions(_indentHandler->getIndenterMenuActions()); } -///-- /* -///-- \brief Tries to load the by \a filePath defined file and returns its content as TQString. -///-- -///-- If the file could not be loaded a error dialog will be shown. -///-- */ -///-- TQString MainWindow::loadFile(TQString filePath) -///-- { -///-- TQFile inSrcFile(filePath); -///-- TQString fileContent = ""; -///-- -///-- if (!inSrcFile.open(TQFile::ReadOnly | TQFile::Text)) -///-- { -///-- TQMessageBox::warning(NULL, tr("Error opening file"), tr( -///-- "Cannot read the file ") + "\"" + filePath + "\"."); -///-- } -///-- else -///-- { -///-- TQTextStream inSrcStrm(&inSrcFile); -///-- TQApplication::setOverrideCursor(TQt::WaitCursor); -///-- inSrcStrm.setCodec(TQTextCodec::codecForName(m_currentEncoding.toAscii())); -///-- fileContent = inSrcStrm.readAll(); -///-- TQApplication::restoreOverrideCursor(); -///-- inSrcFile.close(); -///-- -///-- TQFileInfo fileInfo(filePath); -///-- _currentSourceFileExtension = fileInfo.suffix(); -///-- int indexOfHighlighter = _highlighter->setLexerForExtension(_currentSourceFileExtension); +/* + \brief Tries to load the by \a filePath defined file and returns its content as TQString. + + If the file could not be loaded a error dialog will be shown. + */ +TQString MainWindow::loadFile(const TQString &filePath) +{ + TQFile inSrcFile(filePath); + TQString fileContent = ""; + + if (!inSrcFile.open(IO_ReadOnly | IO_Translate)) + { + TQMessageBox::warning(nullptr, tr("Error opening file"), + tr("Cannot read the file ") + "\"" + filePath + "\"."); + } + else + { + TQTextStream inSrcStream(&inSrcFile); + TQApplication::setOverrideCursor(TQt::WaitCursor); + inSrcStream.setCodec(TQTextCodec::codecForName(m_currentEncoding.ascii())); + fileContent = inSrcStream.read(); + TQApplication::restoreOverrideCursor(); + inSrcFile.close(); + + TQFileInfo fileInfo(filePath); + m_currentSourceFileExtension = fileInfo.extension(false); +///-- int indexOfHighlighter = _highlighter->setLexerForExtension(m_currentSourceFileExtension); ///-- m_highlighterActionGroup->actions().at(indexOfHighlighter)->setChecked(true); -///-- } -///-- return fileContent; -///-- } + } + return fileContent; +} /* \brief Calls the source file open dialog to load a source file for the formatting preview. @@ -518,32 +523,32 @@ void MainWindow::openSourceFileDialog(TQString fileName) ///-- if (fileName.isEmpty()) ///-- { ///-- fileName = TQFileDialog::getOpenFileName(this, tr( -///-- "Choose source code file"), _currentSourceFile, fileExtensions); +///-- "Choose source code file"), m_currentSourceFile, fileExtensions); ///-- } ///-- ///-- if (fileName != "") ///-- { -///-- _currentSourceFile = fileName; +///-- m_currentSourceFile = fileName; ///-- TQFileInfo fileInfo(fileName); -///-- _currentSourceFileExtension = fileInfo.suffix(); +///-- m_currentSourceFileExtension = fileInfo.suffix(); ///-- ///-- openedSourceFileContent = loadFile(fileName); -///-- _sourceFileContent = openedSourceFileContent; +///-- m_sourceFileContent = openedSourceFileContent; ///-- if (m_toolBarWidget->cbLivePreview->isChecked()) ///-- { ///-- callIndenter(); ///-- } ///-- m_sourceCodeChanged = true; -///-- _previewToggled = true; +///-- m_previewToggled = true; ///-- updateSourceView(); ///-- updateWindowTitle(); ///-- updateRecentlyOpenedList(); ///-- _textEditLastScrollPos = 0; ///-- m_textEditVScrollBar->setValue(_textEditLastScrollPos); ///-- -///-- _savedSourceContent = openedSourceFileContent; +///-- m_savedSourceContent = openedSourceFileContent; ///-- m_qSciSourceCodeEditor->setModified(false); -///-- setWindowModified(false); +///-- m_documentModified = false; ///-- } } @@ -560,7 +565,7 @@ bool MainWindow::saveasSourceFileDialog(TQAction *chosenEncodingAction) ///-- //TQString openedSourceFileContent = openFileDialog( tr("Choose source code file"), "./", ///-- // fileExtensions ); ///-- TQString fileName = TQFileDialog::getSaveFileName(this, tr( -///-- "Save source code file"), _currentSourceFile, fileExtensions); +///-- "Save source code file"), m_currentSourceFile, fileExtensions); ///-- ///-- // Saving has been canceled if the filename is empty ///-- if (fileName.isEmpty()) @@ -568,9 +573,9 @@ bool MainWindow::saveasSourceFileDialog(TQAction *chosenEncodingAction) ///-- return false; ///-- } ///-- -///-- _savedSourceContent = m_qSciSourceCodeEditor->text(); +///-- m_savedSourceContent = m_qSciSourceCodeEditor->text(); ///-- -///-- _currentSourceFile = fileName; +///-- m_currentSourceFile = fileName; ///-- TQFile::remove(fileName); ///-- TQFile outSrcFile(fileName); ///-- outSrcFile.open(TQFile::ReadWrite | TQFile::Text); @@ -586,16 +591,16 @@ bool MainWindow::saveasSourceFileDialog(TQAction *chosenEncodingAction) ///-- } ///-- TQTextStream outSrcStrm(&outSrcFile); ///-- outSrcStrm.setCodec(TQTextCodec::codecForName(encoding.toAscii())); -///-- outSrcStrm << _savedSourceContent; +///-- outSrcStrm << m_savedSourceContent; ///-- outSrcFile.close(); ///-- ///-- TQFileInfo fileInfo(fileName); -///-- _currentSourceFileExtension = fileInfo.suffix(); +///-- m_currentSourceFileExtension = fileInfo.suffix(); ///-- ///-- m_qSciSourceCodeEditor->setModified(false); -///-- setWindowModified(false); +///-- m_documentModified = false; ///-- -///-- updateWindowTitle(); + updateWindowTitle(); return true; } @@ -606,26 +611,26 @@ bool MainWindow::saveasSourceFileDialog(TQAction *chosenEncodingAction) */ bool MainWindow::saveSourceFile() { -///-- if (_currentSourceFile.isEmpty()) +///-- if (m_currentSourceFile.isEmpty()) ///-- { ///-- return saveasSourceFileDialog(); ///-- } ///-- else ///-- { -///-- TQFile::remove(_currentSourceFile); -///-- TQFile outSrcFile(_currentSourceFile); -///-- _savedSourceContent = m_qSciSourceCodeEditor->text(); +///-- 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 << _savedSourceContent; +///-- outSrcStrm << m_savedSourceContent; ///-- outSrcFile.close(); ///-- ///-- m_qSciSourceCodeEditor->setModified(false); -///-- setWindowModified(false); +///-- m_documentModified = false; ///-- } return true; } @@ -650,42 +655,40 @@ bool MainWindow::saveSourceFile() ///-- ///-- return fileContent; ///-- } -///-- -///-- /* -///-- \brief Updates the displaying of the source code. -///-- -///-- Updates the text edit field, which is showing the loaded, and if preview is enabled formatted, source code. -///-- Reassigns the line numbers and in case of switch between preview and none preview keeps the text field -///-- at the same line number. -///-- */ -///-- void MainWindow::updateSourceView() -///-- { + +/* + \brief Updates the displaying of the source code. + + Updates the text edit field, which is showing the loaded, and if preview is enabled formatted, source code. + Reassigns the line numbers and in case of switch between preview and none preview keeps the text field + at the same line number. + */ +void MainWindow::updateSourceView() +{ ///-- _textEditLastScrollPos = m_textEditVScrollBar->value(); -///-- -///-- if (m_toolBarWidget->cbLivePreview->isChecked()) -///-- { -///-- _sourceViewContent = _sourceFormattedContent; -///-- } -///-- else -///-- { -///-- _sourceViewContent = _sourceFileContent; -///-- } -///-- -///-- if (_previewToggled) -///-- { -///-- disconnect(m_qSciSourceCodeEditor, SIGNAL(textChanged()), this, -///-- SLOT(sourceCodeChangedHelperSlot())); -///-- bool textIsModified = isWindowModified(); -///-- m_qSciSourceCodeEditor->setText(_sourceViewContent); -///-- setWindowModified(textIsModified); -///-- _previewToggled = false; -///-- connect(m_qSciSourceCodeEditor, SIGNAL(textChanged()), this, -///-- SLOT(sourceCodeChangedHelperSlot())); -///-- } -///-- + + if (m_toolBarWidget->cbLivePreview->isOn()) + { + m_sourceViewContent = m_sourceFormattedContent; + } + else + { + m_sourceViewContent = m_sourceFileContent; + } + + if (m_previewToggled) + { + disconnect(m_qSciSourceCodeEditor, SIGNAL(textChanged()), + this, SLOT(sourceCodeChangedHelperSlot())); + m_qSciSourceCodeEditor->setText(m_sourceViewContent); + m_previewToggled = false; + connect(m_qSciSourceCodeEditor, SIGNAL(textChanged()), + this, SLOT(sourceCodeChangedHelperSlot())); + } + ///-- m_textEditVScrollBar->setValue(_textEditLastScrollPos); -///-- } -///-- +} + ///-- /* ///-- \brief Calls the selected indenter with the currently loaded source code to retrieve the formatted source code. ///-- @@ -694,8 +697,8 @@ bool MainWindow::saveSourceFile() ///-- void MainWindow::callIndenter() ///-- { ///-- TQApplication::setOverrideCursor(TQCursor(TQt::WaitCursor)); -///-- _sourceFormattedContent = _indentHandler->callIndenter(_sourceFileContent, -///-- _currentSourceFileExtension); +///-- m_sourceFormattedContent = _indentHandler->callIndenter(m_sourceFileContent, +///-- m_currentSourceFileExtension); ///-- //updateSourceView(); ///-- TQApplication::restoreOverrideCursor(); ///-- } @@ -713,7 +716,7 @@ void MainWindow::turnHighlightOnOff(bool turnOn) ///-- { ///-- _highlighter->turnHighlightOff(); ///-- } -///-- _previewToggled = true; +///-- m_previewToggled = true; ///-- updateSourceView(); } @@ -738,17 +741,17 @@ void MainWindow::sourceCodeChangedSlot() ///-- m_sourceCodeChanged = true; ///-- ///-- // Get the content text of the text editor. -///-- _sourceFileContent = m_qSciSourceCodeEditor->text(); +///-- m_sourceFileContent = m_qSciSourceCodeEditor->text(); ///-- ///-- // Get the position of the cursor in the unindented text. -///-- if (_sourceFileContent.isEmpty()) +///-- if (m_sourceFileContent.isEmpty()) ///-- { ///-- // Add this line feed, because AStyle has problems with a totally emtpy file. -///-- _sourceFileContent += "\n"; +///-- m_sourceFileContent += "\n"; ///-- cursorPosAbsolut = 0; ///-- cursorPos = 0; ///-- cursorLine = 0; -///-- enteredCharacter = _sourceFileContent.at(cursorPosAbsolut); +///-- enteredCharacter = m_sourceFileContent.at(cursorPosAbsolut); ///-- } ///-- else ///-- { @@ -763,14 +766,14 @@ void MainWindow::sourceCodeChangedSlot() ///-- { ///-- cursorPos--; ///-- } -///-- enteredCharacter = _sourceFileContent.at(cursorPosAbsolut); +///-- enteredCharacter = m_sourceFileContent.at(cursorPosAbsolut); ///-- } ///-- ///-- // Call the indenter to reformat the text. ///-- if (m_toolBarWidget->cbLivePreview->isChecked()) ///-- { ///-- callIndenter(); -///-- _previewToggled = true; +///-- m_previewToggled = true; ///-- } ///-- ///-- // Update the text editor. @@ -859,15 +862,15 @@ void MainWindow::sourceCodeChangedSlot() ///-- m_sourceCodeChanged = false; ///-- } ///-- -///-- if (_savedSourceContent == m_qSciSourceCodeEditor->text()) +///-- if (m_savedSourceContent == m_qSciSourceCodeEditor->text()) ///-- { ///-- m_qSciSourceCodeEditor->setModified(false); -///-- setWindowModified(false); +///-- m_documentModified = false; ///-- } ///-- else ///-- { ///-- m_qSciSourceCodeEditor->setModified(true); // Has no effect according to TQScintilla docs. -///-- setWindowModified(true); +///-- m_documentModified = true; ///-- } ///-- ///-- // Could set cursor this way and use normal linear search in text instead of columns and rows. @@ -891,7 +894,7 @@ void MainWindow::sourceCodeChangedSlot() ///-- if (m_toolBarWidget->cbLivePreview->isChecked()) ///-- { ///-- callIndenter(); -///-- _previewToggled = true; +///-- m_previewToggled = true; ///-- ///-- updateSourceView(); ///-- if (m_sourceCodeChanged) @@ -912,15 +915,15 @@ void MainWindow::sourceCodeChangedSlot() ///-- updateSourceView(); ///-- } ///-- -///-- if (_savedSourceContent == m_qSciSourceCodeEditor->text()) +///-- if (m_savedSourceContent == m_qSciSourceCodeEditor->text()) ///-- { ///-- m_qSciSourceCodeEditor->setModified(false); -///-- setWindowModified(false); +///-- m_documentModified = false; ///-- } ///-- else ///-- { ///-- m_qSciSourceCodeEditor->setModified(true); // Has no effect according to TQScintilla docs. -///-- setWindowModified(true); +///-- m_documentModified = true; ///-- } ///-- } @@ -932,7 +935,7 @@ void MainWindow::sourceCodeChangedSlot() */ void MainWindow::previewTurnedOnOff(bool turnOn) { -///-- _previewToggled = true; +///-- m_previewToggled = true; ///-- ///-- int cursorLine, cursorPos; ///-- m_qSciSourceCodeEditor->getCursorPosition(&cursorLine, &cursorPos); @@ -955,26 +958,26 @@ void MainWindow::previewTurnedOnOff(bool turnOn) ///-- } ///-- _indentSettingsChanged = false; ///-- -///-- if (_savedSourceContent == m_qSciSourceCodeEditor->text()) +///-- if (m_savedSourceContent == m_qSciSourceCodeEditor->text()) ///-- { ///-- m_qSciSourceCodeEditor->setModified(false); -///-- setWindowModified(false); +///-- m_documentModified = false; ///-- } ///-- else ///-- { ///-- m_qSciSourceCodeEditor->setModified(true); -///-- setWindowModified(true); +///-- m_documentModified = true; ///-- } -///-- } -///-- -///-- /* -///-- \brief This slot updates the main window title to show the currently opened -///-- source code filename. -///-- */ -///-- void MainWindow::updateWindowTitle() -///-- { -///-- this->setWindowTitle("UniversalIndentGUI " + TQString( -///-- PROGRAM_VERSION_STRING) + " [*]" + _currentSourceFile); +} + +/* + \brief This slot updates the main window title to show the currently opened + source code filename. + */ +void MainWindow::updateWindowTitle() +{ + setCaption("UniversalIndentGUI (TQt) " + TQString(PROGRAM_VERSION_STRING) + + " [*] " + m_currentSourceFile); } /* @@ -984,7 +987,7 @@ void MainWindow::exportToPDF() { ///-- TQString fileExtensions = tr("PDF Document") + " (*.pdf)"; ///-- -///-- TQString fileName = _currentSourceFile; +///-- TQString fileName = m_currentSourceFile; ///-- TQFileInfo fileInfo(fileName); ///-- TQString fileExtension = fileInfo.suffix(); ///-- @@ -1008,7 +1011,7 @@ void MainWindow::exportToHTML() { ///-- TQString fileExtensions = tr("HTML Document") + " (*.html)"; ///-- -///-- TQString fileName = _currentSourceFile; +///-- TQString fileName = m_currentSourceFile; ///-- TQFileInfo fileInfo(fileName); ///-- TQString fileExtension = fileInfo.suffix(); ///-- @@ -1034,60 +1037,60 @@ void MainWindow::exportToHTML() ///-- } } -///-- /* -///-- \brief Loads the last opened file if this option is enabled in the _settings. -///-- -///-- If the file does not exist, the default example file is tried to be loaded. If even that -///-- fails a very small code example is shown. -///-- If the setting for opening the last file is disabled, the editor is empty on startup. -///-- */ -///-- void MainWindow::loadLastOpenedFile() -///-- { -///-- // Get setting for last opened source code file. -///-- _loadLastSourceCodeFileOnStartup = -///-- _settings->getValueByName("loadLastSourceCodeFileOnStartup").toBool(); -///-- -///-- // Only load last source code file if set to do so -///-- if (_loadLastSourceCodeFileOnStartup) -///-- { -///-- // From the list of last opened files get the first one. -///-- _currentSourceFile = -///-- _settings->getValueByName("lastSourceCodeFile").toString().split("|").first(); -///-- -///-- // If source file exist load it. -///-- if (TQFile::exists(_currentSourceFile)) -///-- { -///-- TQFileInfo fileInfo(_currentSourceFile); -///-- _currentSourceFile = fileInfo.absoluteFilePath(); -///-- _sourceFileContent = loadFile(_currentSourceFile); -///-- } -///-- // If the last opened source code file does not exist, try to load the default example.cpp file. -///-- else if (TQFile::exists(SettingsPaths::getIndenterPath() + "/example.cpp")) -///-- { -///-- TQFileInfo fileInfo(SettingsPaths::getIndenterPath() + "/example.cpp"); -///-- _currentSourceFile = fileInfo.absoluteFilePath(); -///-- _sourceFileContent = loadFile(_currentSourceFile); -///-- } -///-- // If neither the example source code file exists show some small code example. -///-- else -///-- { -///-- _currentSourceFile = "untitled.cpp"; -///-- _currentSourceFileExtension = "cpp"; -///-- _sourceFileContent = "if(x==\"y\"){x=z;}"; -///-- } -///-- } -///-- // if last opened source file should not be loaded make some default _settings. -///-- else -///-- { -///-- _currentSourceFile = "untitled.cpp"; -///-- _currentSourceFileExtension = "cpp"; -///-- _sourceFileContent = ""; -///-- } -///-- _savedSourceContent = _sourceFileContent; -///-- -///-- // Update the mainwindow title to show the name of the loaded source code file. -///-- updateWindowTitle(); -///-- } +/* + \brief Loads the last opened file if this option is enabled in the settings. + + If the file does not exist, the default example file is tried to be loaded. + If even that fails, a very small code example is shown. + If the setting for opening the last file is disabled, the editor is empty on startup. +*/ +void MainWindow::loadLastOpenedFile() +{ + // Get setting for last opened source code file. + m_loadLastSourceCodeFileOnStartup = + m_settings->getValueByName("LoadLastOpenedFileOnStartup").toBool(); + + // Only load last source code file if set to do so + if (m_loadLastSourceCodeFileOnStartup) + { + // From the list of last opened files get the first one. + TQString sourceFiles = m_settings->getValueByName("LastOpenedFiles").toString(); + m_currentSourceFile = TQStringList::split("|", sourceFiles).first(); + + if (TQFile::exists(m_currentSourceFile)) + { + // If source file exist load it. + TQFileInfo fileInfo(m_currentSourceFile); + m_currentSourceFile = fileInfo.absFilePath(); + m_sourceFileContent = loadFile(m_currentSourceFile); + } + else if (TQFile::exists(SettingsPaths::getIndenterPath() + "/example.cpp")) + { + // If the last opened source code file does not exist, try to load the default example.cpp file. + TQFileInfo fileInfo(SettingsPaths::getIndenterPath() + "/example.cpp"); + m_currentSourceFile = fileInfo.absFilePath(); + m_sourceFileContent = loadFile(m_currentSourceFile); + } + else + { + // If neither the example source code file exists show some small code example. + m_currentSourceFile = "untitled.cpp"; + m_currentSourceFileExtension = "cpp"; + m_sourceFileContent = "if(x==\"y\"){x=z;}"; + } + } + else + { + // if last opened source file should not be loaded make some default settings. + m_currentSourceFile = "untitled.cpp"; + m_currentSourceFileExtension = "cpp"; + m_sourceFileContent = ""; + } + m_savedSourceContent = m_sourceFileContent; + + // Update the mainwindow title to show the name of the loaded source code file. + updateWindowTitle(); +} /* \brief Saves the m_settings for the main application to the file "UniversalIndentGUI.ini". @@ -1290,13 +1293,13 @@ void MainWindow::encodingChanged(TQAction *encodingAction) { ///-- if (maybeSave()) ///-- { -///-- TQFile inSrcFile(_currentSourceFile); +///-- 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 ") + "\"" + _currentSourceFile + "\"."); +///-- "Cannot read the file ") + "\"" + m_currentSourceFile + "\"."); ///-- } ///-- else ///-- { @@ -1449,7 +1452,7 @@ void MainWindow::updateRecentlyOpenedList() ///-- _mainWindowForm->menuRecently_Opened_Files->actions(); ///-- ///-- // Check if the currently open file is in the list of recently opened. -///-- int indexOfCurrentFile = recentlyOpenedList.indexOf(_currentSourceFile); +///-- int indexOfCurrentFile = recentlyOpenedList.indexOf(m_currentSourceFile); ///-- ///-- // If it is in the list of recently opened files and not at the first position, move it to the ///-- // first pos. @@ -1459,12 +1462,12 @@ void MainWindow::updateRecentlyOpenedList() ///-- recentlyOpenedActionList.move(indexOfCurrentFile, 0); ///-- } ///-- // Put the current file at the first position if it not already is and is not empty. -///-- else if (indexOfCurrentFile == -1 && !_currentSourceFile.isEmpty()) +///-- else if (indexOfCurrentFile == -1 && !m_currentSourceFile.isEmpty()) ///-- { -///-- recentlyOpenedList.insert(0, _currentSourceFile); +///-- recentlyOpenedList.insert(0, m_currentSourceFile); ///-- TQAction *recentlyOpenedAction = new TQAction(TQFileInfo( -///-- _currentSourceFile).fileName(), _mainWindowForm->menuRecently_Opened_Files); -///-- recentlyOpenedAction->setStatusTip(_currentSourceFile); +///-- m_currentSourceFile).fileName(), _mainWindowForm->menuRecently_Opened_Files); +///-- recentlyOpenedAction->setStatusTip(m_currentSourceFile); ///-- recentlyOpenedActionList.insert(0, recentlyOpenedAction); ///-- } ///-- diff --git a/src/MainWindow.h b/src/MainWindow.h index d00e141..773c1ec 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -58,7 +58,7 @@ class MainWindow : public MainWindowBase bool saveasSourceFileDialog(TQAction *chosenEncodingAction = NULL); void saveAsOtherEncoding(TQAction *chosenEncodingAction); ///-- void callIndenter(); -///-- void updateSourceView(); + void updateSourceView(); void turnHighlightOnOff(bool turnOn); void setWhiteSpaceVisibility(bool visible); void sourceCodeChangedHelperSlot(); @@ -75,12 +75,12 @@ class MainWindow : public MainWindowBase void clearRecentlyOpenedList(); void showAboutDialog(); void setStatusBarCursorPosInfo(int line, int column); -///-- + private: -///-- TQString loadFile(TQString filePath); + TQString loadFile(const TQString &filePath); ///-- TQString openFileDialog(TQString dialogHeaderStr, TQString startPath, TQString fileMaskStr); -///-- void updateWindowTitle(); -///-- void loadLastOpenedFile(); + void updateWindowTitle(); + void loadLastOpenedFile(); void saveSettings(); bool maybeSave(); void createEncodingMenu(); @@ -94,41 +94,42 @@ class MainWindow : public MainWindowBase ///-- void changeEvent(TQEvent *event); ///-- void dragEnterEvent(TQDragEnterEvent *event); ///-- void dropEvent(TQDropEvent *event); -///-- + TQextScintilla *m_qSciSourceCodeEditor; UiGuiSettings *m_settings; -///-- - TQString m_currentEncoding; -///-- TQString _sourceFileContent; -///-- TQString _sourceFormattedContent; -///-- TQString _sourceViewContent; + + TQString m_currentEncoding; + TQString m_sourceFileContent; + TQString m_sourceFormattedContent; + TQString m_sourceViewContent; ///-- UiGuiHighlighter *m_highlighter; ///-- TQScrollBar *m_textEditVScrollBar; - AboutDialog *m_aboutDialog; + AboutDialog *m_aboutDialog; ///-- AboutDialogGraphicsView *_aboutDialogGraphicsView; ///-- UiGuiSettingsDialog *_settingsDialog; int m_actionClearRecentlyOpenedListId; ///-- int _textEditLastScrollPos; ///-- int _currentIndenterID; - int m_oldLinesNumber; -///-- bool _loadLastSourceCodeFileOnStartup; -///-- TQString _currentSourceFile; -///-- TQString _currentSourceFileExtension; -///-- TQString _savedSourceContent; - TQActionGroup *m_encodingActionGroup; - TQActionGroup *m_saveEncodedActionGroup; - TQActionGroup *m_highlighterActionGroup; - TQTranslator *m_uiGuiTranslator; - TQTranslator *m_qTranslator; -///-- - bool m_sourceCodeChanged; + int m_oldLinesNumber; + bool m_loadLastSourceCodeFileOnStartup; + TQString m_currentSourceFile; + TQString m_currentSourceFileExtension; + TQString m_savedSourceContent; + TQActionGroup *m_encodingActionGroup; + TQActionGroup *m_saveEncodedActionGroup; + TQActionGroup *m_highlighterActionGroup; + TQTranslator *m_uiGuiTranslator; + TQTranslator *m_qTranslator; + + bool m_sourceCodeChanged; ///-- bool _indentSettingsChanged; -///-- bool _previewToggled; - TQStringList m_encodingsList; + bool m_previewToggled; + bool m_documentModified; + TQStringList m_encodingsList; - ToolBarWidget *m_toolBarWidget; + ToolBarWidget *m_toolBarWidget; ///-- IndentHandler *_indentHandler; - TQLabel *m_textEditLineColumnInfoLabel; + TQLabel *m_textEditLineColumnInfoLabel; }; #endif // MAINWINDOW_H diff --git a/src/MainWindowBase.ui b/src/MainWindowBase.ui index 676b6f1..6b55170 100755 --- a/src/MainWindowBase.ui +++ b/src/MainWindowBase.ui @@ -13,9 +13,6 @@ <height>633</height> </rect> </property> - <property name="caption"> - <string>UniversalIndentGUI (TQt)</string> - </property> <hbox> <property name="name"> <cstring>centralWidget</cstring> |