diff options
-rw-r--r-- | icons/CMakeLists.txt | 1 | ||||
-rwxr-xr-x | icons/document-properties.png | bin | 1115 -> 0 bytes | |||
-rw-r--r-- | src/CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/MainWindow.cpp | 8 | ||||
-rwxr-xr-x | src/MainWindowBase.ui | 16 | ||||
-rw-r--r-- | src/debugging/TSLogger.cpp | 301 | ||||
-rw-r--r-- | src/debugging/TSLogger.h | 72 | ||||
-rwxr-xr-x | src/debugging/TSLoggerDialog.ui | 142 | ||||
-rwxr-xr-x | src/main.cpp | 20 |
9 files changed, 5 insertions, 562 deletions
diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt index 0739cd4..50abe3b 100644 --- a/icons/CMakeLists.txt +++ b/icons/CMakeLists.txt @@ -3,7 +3,6 @@ install( accessories-text-editor.png applications-system.png document-open.png - document-properties.png document-save.png document-save-as.png edit-clear.png diff --git a/icons/document-properties.png b/icons/document-properties.png Binary files differdeleted file mode 100755 index fa697db..0000000 --- a/icons/document-properties.png +++ /dev/null diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 85b8358..64f9e9a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -18,15 +18,13 @@ link_directories( ) -##### other data ################################ - - ##### tdeio_appinfo (module) ####################### set( target universal-indent-gui-tqt ) set( ${target}_SRCS # completed + AboutDialogBase.ui MainWindowBase.ui ToolBarWidget.ui @@ -36,10 +34,9 @@ set( ${target}_SRCS UiGuiErrorMessage.cpp UiGuiHighlighter.cpp UiGuiIniFileParser.cpp - UiGuiSettings.cpp + UiGuiSettings.cpp # ongoing - AboutDialogBase.ui UiGuiSettingsDialogBase.ui AboutDialog.cpp diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index b5aed4c..14c10dd 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -20,8 +20,6 @@ #include "config.h" #include "MainWindow.h" -///-- #include "debugging/TSLogger.h" - #include "stdlib.h" #include "AboutDialog.h" @@ -57,8 +55,6 @@ #include <tqextscintilla.h> ///-- #include <Qsci/qsciprinter.h> -///-- using namespace tschweitzer; - /* \brief Main window of UniversalIndentGUI-tqt @@ -174,7 +170,6 @@ void MainWindow::initMainWindow() actionIndenterParameterTooltipsEnabled->setIconSet(TQPixmap(ICONS_PATH + "tooltip.png")); actionShowSettings->setIconSet(TQPixmap(ICONS_PATH + "preferences-system.png")); // - Help menu - actionShowLog->setIconSet(TQPixmap(ICONS_PATH + "document-properties.png")); actionAboutUniversalIndentGUITQt->setIconSet(TQPixmap(ICONS_PATH + "info.png")); // Menu ids m_actionClearRecentlyOpenedListId = popupMenuRecentlyOpenedFiles->idAt( @@ -245,9 +240,6 @@ void MainWindow::initMainWindow() connect(m_settings, TQ_SIGNAL(indenterParameterTooltipsEnabled(bool)), this, TQ_SLOT(setIndenterParameterTooltips(bool))); -///-- connect(actionShowLog, TQ_SIGNAL(activated()), -///-- debugging::TSLogger::getInstance(), TQ_SLOT(show())); - // Init the menu for selecting one of the recently opened files. initRecentlyOpenedList(); updateRecentlyOpenedList(); diff --git a/src/MainWindowBase.ui b/src/MainWindowBase.ui index 720e8aa..087352e 100755 --- a/src/MainWindowBase.ui +++ b/src/MainWindowBase.ui @@ -65,8 +65,6 @@ <action name="actionShowSettings"/> </item> <item text="&Help" name="menuHelp"> - <action name="actionShowLog"/> - <separator/> <action name="actionAboutUniversalIndentGUITQt"/> </item> </menubar> @@ -399,20 +397,6 @@ </action> <action> <property name="name"> - <cstring>actionShowLog</cstring> - </property> - <property name="text"> - <string>Show Log</string> - </property> - <property name="toolTip"> - <string>Displays logging information.</string> - </property> - <property name="statusTip"> - <string>Displays logging info about the currently running UiGUI application.</string> - </property> - </action> - <action> - <property name="name"> <cstring>actionAboutUniversalIndentGUITQt</cstring> </property> <property name="text"> diff --git a/src/debugging/TSLogger.cpp b/src/debugging/TSLogger.cpp deleted file mode 100644 index a64ccfb..0000000 --- a/src/debugging/TSLogger.cpp +++ /dev/null @@ -1,301 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006-2012 by Thomas Schweitzer * - * thomas-schweitzer(at)arcor.de * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2.0 as * - * published by the Free Software Foundation. * - * * - * 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program in the file LICENSE.GPL; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#include "TSLogger.h" -#include "ui_TSLoggerDialog.h" - -#include "SettingsPaths.h" - -#include <tqdatetime.h> -#include <tqfile.h> -#include <tqfileinfo.h> -#include <tqurl.h> -#include <tqtextstream.h> -#include <tqdesktopservices.h> -#include <tqmessagebox.h> - -#include <ctime> - -using namespace tschweitzer; -using namespace tschweitzer::debugging; - -TSLogger*TSLogger::m_instance = NULL; - -/*! - \class TSLogger - \brief This class handles any kind of data logging, for debugging and whatever purpose. - - Beneath being able of displaying a dialog window containing all log messages of the - current session, a log file in the systems temporary directory is used. Its name - is "UiGUI_log.html". - - Setting a verbose level allows to only write messages that have the selected minimum - priority to the log. - */ - -/*! - \brief Returns the only existing instance of TSLogger. If the instance doesn't exist, it will be created. - */ -TSLogger* TSLogger::getInstance(int verboseLevel) -{ - if (m_instance == NULL) - { - m_instance = new TSLogger(verboseLevel); - } - - return m_instance; -} - -/*! - \brief Returns the only existing instance of TSLogger. If the instance doesn't exist, it will be created. - */ -TSLogger* TSLogger::getInstance() -{ -#ifdef _DEBUG - return TSLogger::getInstance(TQtDebugMsg); -#else - return TSLogger::getInstance(TQtWarningMsg); -#endif -} - -/*! - \brief Initializes the dialog and sets the path to the log file in the systems temporary directory. - Sets the default verbose level to warning level. - */ -TSLogger::TSLogger(int verboseLevel) : - TQDialog() -{ - m_TSLoggerDialogForm = new Ui::TSLoggerDialog(); - m_TSLoggerDialogForm->setupUi(this); -#ifdef _DEBUG - m_verboseLevel = TQtDebugMsg; -#else - m_verboseLevel = TQtMsgType(verboseLevel); -#endif - - m_logFileInitState = NOTINITIALZED; - - connect(m_TSLoggerDialogForm->openLogFileFolderToolButton, TQ_SIGNAL(clicked()), this, - TQ_SLOT(openLogFileFolder())); - - // Make the main application not to wait for the logging window to close. - setAttribute(TQt::WA_QuitOnClose, false); -} - -/*! - \brief Logs all incoming messages \a msg to the dialogs text edit and to the log file. - - Only messages whos \a type have a higher priority than the set verbose level are logged. - */ -void TSLogger::messageHandler(TQtMsgType type, const char *msg) -{ - if (m_instance == NULL) - { - m_instance = TSLogger::getInstance(); - } - - /* - TQMessageBox messageBox; - TQString messageBoxText = TQString::fromUtf8( msg ); - messageBox.setText( messageBoxText ); - messageBox.setWindowModality( TQt::ApplicationModal ); - messageBox.exec(); - */ - - // Only log messages that have a higher or equal priority than set with the verbose level. - if (type < m_instance->m_verboseLevel) - { - return; - } - - // Init log message with prepended date and time. - TQString message = TQDateTime::currentDateTime().toString(); - - // Depending on the TQtMsgType prepend a different colored Debug, Warning, Critical or Fatal. - switch (type) - { - case TQtDebugMsg: - { - message += " <span style=\"font-weight:bold; color:black;\">Debug:</span> "; - break; - } - - case TQtWarningMsg: - { - message += " <span style=\"font-weight:bold; color:gold;\">Warning:</span> "; - break; - } - - case TQtCriticalMsg: - { - message += "<span style=\"font-weight:bold; color:red;\">Critical:</span> "; - break; - } - - case TQtFatalMsg: - { - message += " <span style=\"font-weight:bold; color:#D60000;\">Fatal:</span> "; - } - - // This one is no TQt message type, but can be used to send info messages to the log - // by calling TSLogger::messageHandler() directly. - case TSLoggerInfoMsg: - { - message += " <span style=\"font-weight:bold; color:darkgray;\">Info:</span> "; - break; - } - } - - // Append the to UTF-8 back converted message parameter. - message += TQString::fromUtf8(msg) + "<br/>\n"; - - // Write the message to the log windows text edit. - m_instance->m_TSLoggerDialogForm->logTextEdit->append(message); - - // Write/append the log message to the log file. - m_instance->writeToLogFile(message); - - // In case of a fatal error abort the application. - if (type == TQtFatalMsg) - { - abort(); - } -} - -/*! - \brief Calling this the verbose level can be set in a range from 0 to 3 - which is equal to debug, warning, critical and fatal priority. - */ -void TSLogger::setVerboseLevel(int level) -{ - if (level < 0) - { - m_verboseLevel = TQtDebugMsg; - } - if (level > 3) - { - m_verboseLevel = TQtFatalMsg; - } - else - { - m_verboseLevel = TQtMsgType(level); - } -} - -/*! - \brief Deletes the existing m_instance of TSLogger. - */ -void TSLogger::deleteInstance() -{ - if (m_instance != NULL) - { - delete m_instance; - m_instance = NULL; - } -} - -/*! - \brief Opens the folder that contains the created log file with the name "UiGUI_log.html". - */ -void TSLogger::openLogFileFolder() -{ - TQDesktopServices::openUrl(TQFileInfo(m_logFile).absolutePath()); -} - -/*! - \brief Writes the \a message to the used log file. - */ -void TSLogger::writeToLogFile(const TQString &message) -{ - // If the file where all logging messages should go to isn't initilized yet, do that now. - if (m_logFileInitState == NOTINITIALZED) - { - m_logFileInitState = INITIALIZING; - - // On different systems it may be that "TQDir::tempPath()" ends with a "/" or not. So check - // this. - // Remove any trailing slashes. - TQString tempPath = TQFileInfo(SettingsPaths::getTempPath()).absolutePath(); - while (tempPath.right(1) == "/") - { - tempPath.chop(1); - } - - // To make the temporary log file invulnerable against file symbolic link hacks - // append the current date and time up to milliseconds to its name and a random character. - TQString logFileName = "UiGUI_log_" + TQDateTime::currentDateTime().toString("yyyyMMdd"); - logFileName += "-" + TQDateTime::currentDateTime().toString("hhmmsszzz"); - // By random decide whether to append a number or an upper or lower case character. - qsrand(time(NULL)); - unsigned char randomChar; - switch (qrand() % 3) - { - // Append a number from 0 to 9. - case 0: - { - randomChar = qrand() % 10 + '0'; - break; - } - - // Append a upper case characer between A and Z. - case 1: - { - randomChar = qrand() % 26 + 'A'; - break; - } - - // Append a lower case characer between a and z. - default: - { - randomChar = qrand() % 26 + 'a'; - break; - } - } - logFileName += "_" + TQString(randomChar) + ".html"; - - m_logFile.setFileName(tempPath + "/" + logFileName); - - // Set the tooltip of the open log file folder button to show the unique name of the log file. - m_TSLoggerDialogForm->openLogFileFolderToolButton->setToolTip( - m_TSLoggerDialogForm->openLogFileFolderToolButton->toolTip() + " (" + logFileName + ")"); - - m_logFileInitState = INITIALZED; - } - - // Add the message to the message queue. - m_messageQueue << message; - - // If the logging file is initialzed, write all messages contained in the message queue into the - // file. - if (m_logFileInitState == INITIALZED) - { - // Write/append the log message to the log file. - if (m_logFile.open(TQIODevice::WriteOnly | TQIODevice::Text | TQIODevice::Append)) - { - TQTextStream out(&m_logFile); - - while (!m_messageQueue.isEmpty()) - { - out << m_messageQueue.takeFirst() << "\n"; - } - - m_logFile.close(); - } - } -} diff --git a/src/debugging/TSLogger.h b/src/debugging/TSLogger.h deleted file mode 100644 index 0e20214..0000000 --- a/src/debugging/TSLogger.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006-2012 by Thomas Schweitzer * - * thomas-schweitzer(at)arcor.de * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2.0 as * - * published by the Free Software Foundation. * - * * - * 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program in the file LICENSE.GPL; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#ifndef TSLogger_H -#define TSLogger_H - -#include <tqdialog.h> -#include <tqfile.h> - -namespace Ui -{ - class TSLoggerDialog; -} - -namespace tschweitzer -{ - namespace debugging - { -#define TSLoggerInfoMsg TQtMsgType(4) - - class TSLogger : public TQDialog - { - TQ_OBJECT - - public: - static TSLogger* getInstance(int verboseLevel); - static TSLogger* getInstance(); - static void messageHandler(TQtMsgType type, const char *msg); - static void deleteInstance(); - void setVerboseLevel(int level); - - private slots: - void openLogFileFolder(); - - private: - Ui::TSLoggerDialog *m_TSLoggerDialogForm; - - enum LogFileInitState - { - NOTINITIALZED, - INITIALIZING, - INITIALZED - } m_logFileInitState; - TSLogger(int verboseLevel); - - void writeToLogFile(const TQString &message); - - static TSLogger *m_instance; - TQtMsgType m_verboseLevel; - TQFile m_logFile; - TQStringList m_messageQueue; - }; - } -} // namespace tschweitzer::debugging - -#endif // TSLogger_H diff --git a/src/debugging/TSLoggerDialog.ui b/src/debugging/TSLoggerDialog.ui deleted file mode 100755 index 1956229..0000000 --- a/src/debugging/TSLoggerDialog.ui +++ /dev/null @@ -1,142 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>TSLoggerDialog</class> - <widget class="TQDialog" name="TSLoggerDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>1030</width> - <height>263</height> - </rect> - </property> - <property name="windowTitle"> - <string>Log</string> - </property> - <property name="windowIcon"> - <iconset resource="../resources/Icons.qrc"> - <normaloff>:/mainWindow/document-properties.png</normaloff>:/mainWindow/document-properties.png</iconset> - </property> - <layout class="TQVBoxLayout"> - <item> - <widget class="TQLabel" name="label"> - <property name="text"> - <string>Logged messages</string> - </property> - </widget> - </item> - <item> - <widget class="TQTextEdit" name="logTextEdit"> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <layout class="TQHBoxLayout" name="horizontalLayout"> - <item> - <widget class="TQToolButton" name="cleanUpToolButton"> - <property name="toolTip"> - <string>Clear log</string> - </property> - <property name="text"> - <string>...</string> - </property> - <property name="icon"> - <iconset resource="../resources/Icons.qrc"> - <normaloff>:/mainWindow/edit-clear.png</normaloff>:/mainWindow/edit-clear.png</iconset> - </property> - </widget> - </item> - <item> - <widget class="TQToolButton" name="openLogFileFolderToolButton"> - <property name="toolTip"> - <string>Open folder containing log file.</string> - </property> - <property name="statusTip"> - <string>Open folder containing log file.</string> - </property> - <property name="icon"> - <iconset resource="../resources/Icons.qrc"> - <normaloff>:/mainWindow/document-open.png</normaloff>:/mainWindow/document-open.png</iconset> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>TQt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="TQDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>TQDialogButtonBox::Close</set> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources> - <include location="../resources/Icons.qrc"/> - </resources> - <connections> - <connection> - <sender>TSLoggerDialog</sender> - <signal>finished(int)</signal> - <receiver>TSLoggerDialog</receiver> - <slot>close()</slot> - <hints> - <hint type="sourcelabel"> - <x>2</x> - <y>45</y> - </hint> - <hint type="destinationlabel"> - <x>5</x> - <y>59</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>clicked(TQAbstractButton*)</signal> - <receiver>TSLoggerDialog</receiver> - <slot>close()</slot> - <hints> - <hint type="sourcelabel"> - <x>419</x> - <y>280</y> - </hint> - <hint type="destinationlabel"> - <x>477</x> - <y>263</y> - </hint> - </hints> - </connection> - <connection> - <sender>cleanUpToolButton</sender> - <signal>clicked()</signal> - <receiver>logTextEdit</receiver> - <slot>clear()</slot> - <hints> - <hint type="sourcelabel"> - <x>27</x> - <y>282</y> - </hint> - <hint type="destinationlabel"> - <x>22</x> - <y>231</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/src/main.cpp b/src/main.cpp index dded8ed..826ddfe 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,7 +19,6 @@ #include "MainWindow.h" -// -- #include "debugging/TSLogger.h" // -- #include "IndentHandler.h" #include "SettingsPaths.h" // -- #include "UiGuiIndentServer.h" @@ -37,8 +36,6 @@ #include <tclap/CmdLine.h> -// -- using namespace tschweitzer::debugging; - /*! /brief Entry point to UniversalIndentGUI application. @@ -128,20 +125,11 @@ int main(int argc, char *argv[]) // -- UiGuiIndentServer server; MainWindow *mainWindow = NULL; // -- IndentHandler *indentHandler = NULL; -// -- - // Init and install the logger function. - // Setting UTF-8 as default 8-Bit encoding to ensure that tqDebug does no false string conversion. + + // Setting UTF-8 as default 8-Bit encoding TQTextCodec::setCodecForCStrings(TQTextCodec::codecForName("UTF-8")); TQTextCodec::setCodecForLocale(TQTextCodec::codecForName("UTF-8")); -// -- // Force creation of an TSLogger instance here, to avoid recursion with SettingsPaths init function. -// -- #ifdef _DEBUG -// -- TSLogger::getInstance(0); -// -- #else -// -- TSLogger::getInstance(verboseLevel); -// -- #endif -// -- qInstallMsgHandler(TSLogger::messageHandler); -// -- TSLogger::messageHandler(TSLoggerInfoMsg, TQString("Starting UiGUI Version %1 %2").arg(PROGRAM_VERSION_STRING).toAscii()); -// -- + // Start normal with full gui and without server. if (!startAsPlugin && !startAsServer) { mainWindow = new MainWindow(file2OpenOnStart); @@ -174,7 +162,5 @@ int main(int argc, char *argv[]) // -- delete indentHandler; delete mainWindow; -// -- TSLogger::deleteInstance(); - return returnValue; } |