File indexing completed on 2024-04-28 08:56:18
0001 /************************************************************************************** 0002 begin : Thu Jul 17 2003 0003 copyright : (C) 2003 by Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net) 0004 2007-2011 by Michel Ludwig (michel.ludwig@kdemail.net) 0005 **************************************************************************************/ 0006 0007 /*************************************************************************** 0008 * * 0009 * This program is free software; you can redistribute it and/or modify * 0010 * it under the terms of the GNU General Public License as published by * 0011 * the Free Software Foundation; either version 2 of the License, or * 0012 * (at your option) any later version. * 0013 * * 0014 ***************************************************************************/ 0015 0016 #ifndef KILEINFO_H 0017 #define KILEINFO_H 0018 0019 #include <QString> 0020 #include <QMap> 0021 0022 #include "kiledebug.h" 0023 #include <QUrl> 0024 0025 #include <KParts/MainWindow> 0026 0027 #include "kileconstants.h" 0028 #include "kileextensions.h" 0029 #include "kiletoolmanager.h" 0030 #include "kilestdtools.h" 0031 #include "outputinfo.h" 0032 #include "latexcmd.h" 0033 #include "kileconfig.h" 0034 0035 class QWidget; 0036 0037 namespace KileDocument { 0038 class Info; 0039 class TextInfo; 0040 } 0041 0042 class KileErrorHandler; 0043 class KileProject; 0044 class KileProjectItem; 0045 class KileProjectItemList; 0046 0047 namespace KTextEditor { 0048 class Document; 0049 } 0050 0051 namespace KileConfiguration { 0052 class Manager; 0053 } 0054 namespace KileDocument { 0055 class Extensions; 0056 class Manager; 0057 class EditorExtension; 0058 } 0059 namespace KileView { 0060 class Manager; 0061 } 0062 namespace KileWidget { 0063 class StructureWidget; 0064 class Konsole; 0065 class ScriptsManagement; 0066 class PreviewWidget; 0067 class ExtendedScrollArea; 0068 class FileBrowserWidget; 0069 class OutputView; 0070 class BottomBar; 0071 } 0072 namespace KileTool { 0073 class QuickPreview; 0074 class LivePreviewManager; 0075 } 0076 namespace KileHelp { 0077 class Help; 0078 } 0079 namespace KileScript { 0080 class Manager; 0081 } 0082 namespace KileEditorKeySequence { 0083 class Manager; 0084 } 0085 namespace KileTemplate { 0086 class Manager; 0087 } 0088 namespace KileCodeCompletion { 0089 class Manager; 0090 } 0091 namespace KileAbbreviation { 0092 class Manager; 0093 } 0094 namespace KileParser { 0095 class Manager; 0096 } 0097 0098 namespace KileMenu { 0099 class UserMenu; 0100 } 0101 0102 class EditorCommands; 0103 0104 class KileInfo 0105 { 0106 friend class KileMainWindow; 0107 0108 public: 0109 explicit KileInfo(KParts::MainWindow *mainWindow); 0110 virtual ~KileInfo(); 0111 0112 public: 0113 enum {bibinputs = 0,bstinputs, texinputs}; 0114 QString getName(KTextEditor::Document *doc = Q_NULLPTR, bool shrt = false) const; 0115 QString getShortName(KTextEditor::Document *doc = Q_NULLPTR) const { 0116 return getName(doc, true); 0117 } 0118 LaTeXOutputHandler* findCurrentLaTeXOutputHandler() const; 0119 QString getCompileNameForProject(KileProject *project, bool shrt = false) const; 0120 QString getCompileName(bool shrt = false, LaTeXOutputHandler** h = Q_NULLPTR) const; 0121 QString getFullFromPrettyName(const OutputInfo& info, const QString& name) const; 0122 QList<QUrl> getParentsFor(KileDocument::Info *); 0123 bool getSinglemode() { 0124 return m_singlemode; 0125 } 0126 0127 QString getCurrentTarget() const { 0128 return m_currentTarget; 0129 } 0130 void setTarget(const QString &target) { 0131 m_currentTarget=target; 0132 } 0133 0134 virtual KTextEditor::Document* activeTextDocument() const; 0135 0136 QString getSelection() const; 0137 void clearSelection() const; 0138 0139 virtual QStringList allLabels(KileDocument::TextInfo *info = Q_NULLPTR); 0140 virtual QStringList allBibItems(KileDocument::TextInfo *info = Q_NULLPTR); 0141 virtual QStringList allBibliographies(KileDocument::TextInfo *info = Q_NULLPTR); 0142 virtual QStringList allDependencies(KileDocument::TextInfo *info = Q_NULLPTR); 0143 virtual QStringList allNewCommands(KileDocument::TextInfo *info = Q_NULLPTR); 0144 virtual QStringList allAsyFigures(KileDocument::TextInfo *info = Q_NULLPTR); 0145 virtual QStringList allPackages(KileDocument::TextInfo *info = Q_NULLPTR); 0146 0147 QString lastModifiedFile(KileDocument::TextInfo *info = Q_NULLPTR); 0148 0149 static QString documentTypeToString(KileDocument::Type type); 0150 0151 virtual void focusLog() = 0; 0152 virtual void focusOutput() = 0; 0153 virtual void focusKonsole() = 0; 0154 virtual void focusEditor() = 0; 0155 virtual void focusPreview() = 0; 0156 0157 private: 0158 QStringList retrieveList(QStringList (KileDocument::Info::*getit)() const, KileDocument::TextInfo *docinfo = Q_NULLPTR); 0159 0160 public: 0161 bool similarOrEqualURL(const QUrl &validurl, const QUrl &testurl); 0162 bool isOpen(const QUrl &url); 0163 inline bool isOpen(const QString& localFile) 0164 { 0165 return isOpen(QUrl::fromLocalFile(localFile)); 0166 } 0167 bool projectIsOpen(const QUrl & ); 0168 0169 bool watchFile() { 0170 return m_bWatchFile; 0171 } 0172 0173 virtual int lineNumber() = 0; 0174 0175 KileWidget::StructureWidget *structureWidget() { 0176 return m_kwStructure; 0177 } 0178 KileWidget::Konsole *texKonsole() { 0179 return m_texKonsole; 0180 } 0181 KileWidget::OutputView *outputWidget() { 0182 return m_outputWidget; 0183 } 0184 KileWidget::BottomBar *outputView() { 0185 return m_bottomBar; 0186 } 0187 KileWidget::PreviewWidget *previewWidget () { 0188 return m_previewWidget; 0189 } 0190 0191 KileConfiguration::Manager* configurationManager() const { 0192 return m_configurationManager; 0193 } 0194 KileDocument::Manager* docManager() const { 0195 return m_docManager; 0196 } 0197 KileView::Manager* viewManager() const { 0198 return m_viewManager; 0199 } 0200 KileTool::Manager* toolManager() const { 0201 return m_manager; 0202 } 0203 KileScript::Manager* scriptManager() const { 0204 return m_jScriptManager; 0205 } 0206 KileEditorKeySequence::Manager* editorKeySequenceManager() const { 0207 return m_editorKeySequenceManager; 0208 } 0209 KileTool::Factory* toolFactory() const { 0210 return m_toolFactory; 0211 } 0212 KileDocument::EditorExtension *editorExtension() const { 0213 return m_edit; 0214 } 0215 KileDocument::LatexCommands *latexCommands() const { 0216 return m_latexCommands; 0217 } 0218 KileHelp::Help *help() const { 0219 return m_help; 0220 } 0221 KileTool::QuickPreview *quickPreview() const { 0222 return m_quickPreview; 0223 } 0224 KileTool::LivePreviewManager *livePreviewManager() const { 0225 return m_livePreviewManager; 0226 } 0227 KileDocument::Extensions *extensions() const { 0228 return m_extensions; 0229 } 0230 KileTemplate::Manager *templateManager() const { 0231 return m_templateManager; 0232 } 0233 KileCodeCompletion::Manager *codeCompletionManager() const { 0234 return m_codeCompletionManager; 0235 } 0236 KileAbbreviation::Manager* abbreviationManager() const { 0237 return m_abbreviationManager; 0238 } 0239 KileParser::Manager* parserManager() const { 0240 return m_parserManager; 0241 } 0242 KileErrorHandler* errorHandler() const { 0243 return m_errorHandler; 0244 } 0245 KileMenu::UserMenu *userMenu() const { 0246 return m_userMenu; 0247 } 0248 0249 //FIXME:refactor 0250 KileWidget::FileBrowserWidget* fileSelector() const { 0251 return m_fileBrowserWidget; 0252 } 0253 0254 KParts::MainWindow* mainWindow() const { 0255 return m_mainWindow; 0256 } 0257 0258 static QString expandEnvironmentVars(const QString &variable); 0259 static QString checkOtherPaths(const QString &path,const QString &file, int type); 0260 static QString checkOtherPaths(const QUrl &url,const QString &file, int type) { 0261 return checkOtherPaths(url.toLocalFile(),file, type); 0262 } 0263 0264 virtual void setLine(const QString &line) = 0; 0265 0266 QString getMasterDocumentFileName() const { 0267 return m_masterDocumentFileName; 0268 } 0269 0270 protected: 0271 KParts::MainWindow *m_mainWindow; 0272 KileConfiguration::Manager *m_configurationManager; 0273 KileDocument::Manager *m_docManager; 0274 KileView::Manager *m_viewManager; 0275 KileTool::Manager *m_manager; 0276 KileTemplate::Manager *m_templateManager; 0277 KileScript::Manager *m_jScriptManager; 0278 KileEditorKeySequence::Manager *m_editorKeySequenceManager; 0279 KileTool::Factory *m_toolFactory; 0280 KileWidget::Konsole *m_texKonsole; 0281 KileWidget::OutputView *m_outputWidget; 0282 KileWidget::ScriptsManagement *m_scriptsManagementWidget; 0283 KileWidget::BottomBar *m_bottomBar; 0284 KileWidget::PreviewWidget *m_previewWidget; 0285 KileWidget::ExtendedScrollArea *m_previewScrollArea; 0286 KileCodeCompletion::Manager *m_codeCompletionManager; 0287 KileAbbreviation::Manager *m_abbreviationManager; 0288 KileParser::Manager *m_parserManager; 0289 KileErrorHandler *m_errorHandler; 0290 0291 EditorCommands *m_editorCommands; 0292 0293 KileHelp::Help *m_help; 0294 KileDocument::EditorExtension *m_edit; 0295 KileDocument::LatexCommands *m_latexCommands; 0296 KileDocument::Extensions *m_extensions; 0297 KileTool::QuickPreview *m_quickPreview; 0298 KileMenu::UserMenu *m_userMenu; 0299 KileTool::LivePreviewManager *m_livePreviewManager; 0300 0301 bool m_singlemode; 0302 QString m_masterDocumentFileName; 0303 0304 QString m_currentTarget; 0305 0306 bool m_bWatchFile; 0307 0308 KileWidget::StructureWidget *m_kwStructure; 0309 KileWidget::FileBrowserWidget *m_fileBrowserWidget; 0310 }; 0311 0312 #endif