/*************************************************************************** * 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 MAINWINDOW_H #define MAINWINDOW_H #include #include "UiGuiSettings.h" class UiGuiSettingsDialog; class AboutDialog; class AboutDialogGraphicsView; class UiGuiHighlighter; class IndentHandler; class UpdateCheckDialog; namespace Ui { class ToolBarWidget; class MainWindowUi; } class TQLabel; class TQScrollBar; class TQActionGroup; class TQTranslator; class QsciScintilla; class MainWindow : public TQMainWindow { Q_OBJECT public: //! Constructor MainWindow(TQString file2OpenOnStart = "", TQWidget *parent = NULL); ~MainWindow() { _settings.clear(); } protected: void closeEvent( TQCloseEvent *event ); bool eventFilter(TQObject *obj, TQEvent *event); private slots: void openSourceFileDialog(TQString fileName = ""); bool saveasSourceFileDialog(TQAction *chosenEncodingAction = NULL); void saveAsOtherEncoding(TQAction *chosenEncodingAction); bool saveSourceFile(); void callIndenter(); void updateSourceView(); void turnHighlightOnOff(bool turnOn); void setWhiteSpaceVisibility(bool visible); void sourceCodeChangedHelperSlot(); void sourceCodeChangedSlot(); void indentSettingsChangedSlot(); void previewTurnedOnOff(bool turnOn); void exportToPDF(); void exportToHTML(); void languageChanged(int languageIndex); void encodingChanged(TQAction *encodingAction); void numberOfLinesChanged(); void updateRecentlyOpenedList(); void openFileFromRecentlyOpenedList(TQAction* recentlyOpenedAction); void clearRecentlyOpenedList(); void showAboutDialog(); void setStatusBarCursorPosInfo(int line, int column); private: Ui::MainWindowUi *_mainWindowForm; TQString loadFile(TQString filePath); TQString openFileDialog(TQString dialogHeaderStr, TQString startPath, TQString fileMaskStr); void updateWindowTitle(); void loadLastOpenedFile(); void saveSettings(); bool maybeSave(); void createEncodingMenu(); void createHighlighterMenu(); bool initApplicationLanguage(); void initMainWindow(); void initToolBar(); void initTextEditor(); void initSyntaxHighlighter(); void initIndenter(); void changeEvent(TQEvent *event); void dragEnterEvent(TQDragEnterEvent *event); void dropEvent(TQDropEvent *event); QsciScintilla *_qSciSourceCodeEditor; TQSharedPointer _settings; TQString _currentEncoding; TQString _sourceFileContent; TQString _sourceFormattedContent; TQString _sourceViewContent; UiGuiHighlighter *_highlighter; TQScrollBar *_textEditVScrollBar; AboutDialog *_aboutDialog; AboutDialogGraphicsView *_aboutDialogGraphicsView; UiGuiSettingsDialog *_settingsDialog; int _textEditLastScrollPos; int _currentIndenterID; bool _loadLastSourceCodeFileOnStartup; TQString _currentSourceFile; TQString _currentSourceFileExtension; TQString _savedSourceContent; TQActionGroup *_encodingActionGroup; TQActionGroup *_saveEncodedActionGroup; TQActionGroup *_highlighterActionGroup; TQTranslator *_uiGuiTranslator; TQTranslator *_qTTranslator; bool _isFirstRunOfThisVersion; bool _sourceCodeChanged; bool _scrollPositionChanged; bool _indentSettingsChanged; bool _previewToggled; TQStringList _encodingsList; Ui::ToolBarWidget *_toolBarWidget; IndentHandler *_indentHandler; UpdateCheckDialog *_updateCheckDialog; TQLabel *_textEditLineColumnInfoLabel; }; #endif // MAINWINDOW_H