/***************************************************************************
quanta . cpp - description
- - - - - - - - - - - - - - - - - - -
begin : ? ? ? ? ? 9 13 : 29 : 57 EEST 2000
copyright : ( C ) 2000 by Dmitry Poplavsky & Alexander Yakovlev < pdima @ users . sourceforge . net , yshurik @ linuxfan . com >
( C ) 2001 - 2004 by Andras Mantia < amantia @ kde . org >
( C ) 2000 , 2003 by Eric Laffoon < sequitur @ kde . org >
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/***************************************************************************
* *
* This program is free software ; you can redistribute it and / or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation ; either version 2 of the License , or *
* ( at your option ) any later version . *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// include files for QT
# include <tqdir.h>
# include <tqprinter.h>
# include <tqpainter.h>
# include <tqtabwidget.h>
# include <tqwidgetstack.h>
# include <tqlayout.h>
# include <tqeventloop.h>
# include <tqtimer.h>
# include <tqdom.h>
# include <tqfile.h>
# include <tqfileinfo.h>
# include <tqtextcodec.h>
# include <tqpopupmenu.h>
# include <tqdatetime.h>
# include <tqradiobutton.h>
// include files for KDE
# include <dcopclient.h>
# include <kaccel.h>
# include <kapplication.h>
# include <kdebug.h>
# include <kiconloader.h>
# include <kmessagebox.h>
# include <tdefiledialog.h>
# include <kglobal.h>
# include <kmenubar.h>
# include <klocale.h>
# include <tdeconfig.h>
# include <tdehtmlview.h>
# include <kstandarddirs.h>
# include <kstatusbar.h>
# include <kaction.h>
# include <kstdaction.h>
# include <kpopupmenu.h>
# include <kprocess.h>
# include <kprogress.h>
# include <ktip.h>
# include <tdeio/netaccess.h>
# include <ktabwidget.h>
# include <tdemultitabbar.h>
# include <tdetexteditor/view.h>
# include "wkafkapart.h"
# include "kafkacommon.h"
# include "undoredo.h"
# include <dom/dom_string.h>
// application specific includes
# include "quanta_init.h"
# include "quanta.h"
# include "viewmanager.h"
# include "quantadoc.h"
# include "resource.h"
# include "document.h"
# include "qextfileinfo.h"
# include "project.h"
# include "debuggermanager.h"
# include "wkafkapart.h"
# include "whtmlpart.h"
# include "annotationoutput.h"
# include "messageoutput.h"
# include "tagaction.h"
# include "filestreeview.h"
# include "projecttreeview.h"
# include "doctreeview.h"
# include "structtreeview.h"
# include "templatestreeview.h"
# include "tagattributetree.h"
# include "scripttreeview.h"
# include "toolbartabwidget.h"
# ifdef ENABLE_CVSSERVICE
# include "cvsservice.h"
# endif
# include "quantaplugin.h"
# include "quantaplugininterface.h"
# include "parser.h"
# include "filemasks.h"
# include "dirtydlg.h"
# include "dirtydialog.h"
# include "dtds.h"
# include "qpevents.h"
# include "quantabookmarks.h"
# include "tagactionmanager.h"
# include "tagactionset.h"
extern TQMap < int , TQString > replacementMap ;
QuantaInit : : QuantaInit ( QuantaApp * quantaApp )
: TQObject ( )
{
m_quanta = quantaApp ;
connect ( this , TQT_SIGNAL ( hideSplash ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotHideSplash ( ) ) ) ;
}
QuantaInit : : ~ QuantaInit ( )
{
}
/** Delayed initialization. */
void QuantaInit : : initQuanta ( )
{
m_config = quantaApp - > m_config ;
parser = new Parser ( ) ;
TQStringList tmpDirs = TDEGlobal : : dirs ( ) - > resourceDirs ( " tmp " ) ;
TQDir dir ;
tmpDir = tmpDirs [ 0 ] ;
for ( uint i = 0 ; i < tmpDirs . count ( ) ; i + + )
{
if ( tmpDirs [ i ] . contains ( " kde- " ) )
tmpDir = tmpDirs [ i ] ;
}
dir . mkdir ( tmpDir + " quanta " ) ;
tmpDir + = " quanta/quanta " ;
scriptBeginRx . setCaseSensitive ( false ) ;
scriptBeginRx . setPattern ( " (<script) " ) ;
scriptEndRx . setCaseSensitive ( false ) ;
scriptEndRx . setPattern ( " (/script>) " ) ;
initStatusBar ( ) ;
//defaultDocType must be read before the Project object is created!!
m_config - > setGroup ( " General Options " ) ;
qConfig . defaultDocType = m_config - > readEntry ( " Default DTD " , DEFAULT_DTD ) ;
if ( ! DTDs : : ref ( ) - > find ( qConfig . defaultDocType ) )
qConfig . defaultDocType = DEFAULT_DTD ;
DTDs : : ref ( ) - > find ( " dtd " ) ; //load on startup
initView ( ) ;
initDocument ( ) ; // after initView because of init of treeViews
initProject ( ) ;
initActions ( ) ;
DTDs : : ref ( ) ; // create the class, must be before readOptions() !
readOptions ( ) ;
initPlugins ( ) ; // needs to be before createGUI because some actions are created inside
readAbbreviations ( ) ;
// Initialize debugger
m_quanta - > m_debugger = new DebuggerManager ( TQT_TQOBJECT ( m_quanta ) ) ;
connect ( Project : : ref ( ) , TQT_SIGNAL ( newProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ,
m_quanta - > m_debugger , TQT_SLOT ( slotNewProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ) ;
connect ( Project : : ref ( ) , TQT_SIGNAL ( eventHappened ( const TQString & , const TQString & , const TQString & ) ) ,
m_quanta - > m_debugger , TQT_SLOT ( slotHandleEvent ( const TQString & , const TQString & , const TQString & ) ) ) ;
connect ( m_quanta - > m_debugger , TQT_SIGNAL ( hideSplash ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotHideSplash ( ) ) ) ;
//m_quanta->KDockMainWindow::createGUI( TQString(), false /* conserveMemory */ );
m_quanta - > createShellGUI ( true ) ;
addToolTreeView ( m_quanta - > fTab , i18n ( " Files " ) , UserIcon ( " ftab " ) , KDockWidget : : DockLeft ) ;
addToolTreeView ( m_quanta - > dTab , i18n ( " Documentation " ) , BarIcon ( " contents " ) , KDockWidget : : DockRight ) ;
addToolTreeView ( m_quanta - > aTab , i18n ( " Attribute Editor " ) , UserIcon ( " tag_misc " ) , KDockWidget : : DockRight ) ;
addToolTreeView ( ProjectTreeView : : ref ( ) , i18n ( " Project " ) , UserIcon ( " ptab " ) , KDockWidget : : DockLeft ) ;
addToolTreeView ( TemplatesTreeView : : ref ( ) , i18n ( " Templates " ) , UserIcon ( " ttab " ) , KDockWidget : : DockLeft ) ;
addToolTreeView ( StructTreeView : : ref ( ) , i18n ( " Document Structure " ) , BarIcon ( " view_sidetree " ) , KDockWidget : : DockLeft ) ;
addToolTreeView ( m_quanta - > scriptTab , i18n ( " Scripts " ) , BarIcon ( " run " ) , KDockWidget : : DockLeft ) ;
m_quanta - > m_messageOutputView = addToolTreeView ( m_quanta - > m_messageOutput , i18n ( " Messages " ) , SmallIcon ( " openterm " ) , KDockWidget : : DockBottom ) ;
m_quanta - > m_problemsOutputView = addToolTreeView ( m_quanta - > m_problemOutput , i18n ( " Problems " ) , SmallIcon ( " info " ) , KDockWidget : : DockBottom ) ;
m_quanta - > m_annotationOutputView = addToolTreeView ( m_quanta - > m_annotationOutput , i18n ( " Annotations " ) , SmallIcon ( " stamp " ) , KDockWidget : : DockBottom ) ;
// Restore the dock layout
m_config - > setGroup ( " General Options " ) ;
TQString layout = m_config - > readEntry ( " Window layout " , " Default " ) ;
int mdiMode = m_config - > readNumEntry ( " MDI mode " , - 1 ) ;
if ( mdiMode ! = - 1 & & layout ! = " Default " )
{
m_quanta - > readDockConfig ( m_config ) ; //FIXME: This causes the visible widget construction on startup, but is needed to restore the window layout...
if ( mdiMode ! = KMdi : : IDEAlMode )
m_quanta - > setToolviewStyle ( qConfig . toolviewTabs ) ;
}
m_quanta - > initTabWidget ( true ) ;
qConfig . windowLayout = " Custom " ;
//FIXME: This is a hack to workaround the starting problem when we are in Toplevel mode.
//Without this, the editor becomes the child of the widget holding the menus and toolbars...
if ( mdiMode = = KMdi : : ToplevelMode )
{
m_quanta - > switchToChildframeMode ( ) ;
TQTimer : : singleShot ( 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( switchToToplevelMode ( ) ) ) ;
}
// Always hide debugger toolbar at this point
m_quanta - > toolBar ( " debugger_toolbar " ) - > hide ( ) ;
m_quanta - > m_pluginInterface - > setPluginMenu ( static_cast < TQPopupMenu * > ( m_quanta - > factory ( ) - > container ( " plugins " , m_quanta ) ) ) ;
m_quanta - > m_pluginInterface - > buildPluginMenu ( ) ;
//TODO: Remove after upgrade from 3.1 is not supported
TQDomDocument doc ;
doc . setContent ( KXMLGUIFactory : : readConfigFile ( m_quanta - > xmlFile ( ) , m_quanta - > instance ( ) ) ) ;
TQDomNodeList nodeList = doc . elementsByTagName ( " ActionProperties " ) ;
TQDomNode node = nodeList . item ( 0 ) . firstChild ( ) ;
while ( ! node . isNull ( ) )
{
if ( node . nodeName ( ) = = " Action " )
{
TQDomElement el = node . toElement ( ) ;
m_quanta - > oldShortcuts . insert ( el . attribute ( " name " ) , el . attribute ( " shortcut " ) ) ;
node = node . nextSibling ( ) ;
el . parentNode ( ) . removeChild ( el ) ;
} else
{
node = node . nextSibling ( ) ;
}
}
m_quanta - > applyMainWindowSettings ( m_config ) ;
m_quanta - > m_tagsMenu = static_cast < TQPopupMenu * > ( m_quanta - > factory ( ) - > container ( " tags " , m_quanta ) ) ;
KMenuBar * mb = m_quanta - > menuBar ( ) ;
for ( uint i = 0 ; i < mb - > count ( ) ; i + + )
{
if ( mb - > text ( mb - > idAt ( i ) ) = = i18n ( " &Settings " ) )
{
mb - > insertItem ( i18n ( " &Window " ) , m_quanta - > windowMenu ( ) , - 1 , i ) ;
break ;
}
}
KActionMenu * toolviewMenu = ( KActionMenu * ) ( m_quanta - > actionCollection ( ) - > action ( " tdemdi_toolview_menu " ) ) ;
if ( toolviewMenu )
toolviewMenu - > plug ( m_quanta - > windowMenu ( ) ) ;
TQPopupMenu * toolbarsMenu = ( TQPopupMenu * ) ( m_quanta - > guiFactory ( ) ) - > container ( " toolbars_load " , m_quanta ) ;
connect ( toolbarsMenu , TQT_SIGNAL ( aboutToShow ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotBuildPrjToolbarsMenu ( ) ) ) ;
TQPopupMenu * contextMenu = ( TQPopupMenu * ) ( m_quanta - > guiFactory ( ) ) - > container ( " popup_editor " , m_quanta ) ;
connect ( contextMenu , TQT_SIGNAL ( aboutToShow ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotContextMenuAboutToShow ( ) ) ) ;
connect ( m_quanta - > m_messageOutput , TQT_SIGNAL ( clicked ( const TQString & , int , int ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( gotoFileAndLine ( const TQString & , int , int ) ) ) ;
connect ( m_quanta - > m_problemOutput , TQT_SIGNAL ( clicked ( const TQString & , int , int ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( gotoFileAndLine ( const TQString & , int , int ) ) ) ;
connect ( m_quanta - > m_annotationOutput - > currentFileAnnotations ( ) , TQT_SIGNAL ( clicked ( const TQString & , int , int ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( gotoFileAndLine ( const TQString & , int , int ) ) ) ;
connect ( m_quanta - > m_annotationOutput , TQT_SIGNAL ( clicked ( const TQString & , int , int ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( gotoFileAndLine ( const TQString & , int , int ) ) ) ;
m_quanta - > slotFileNew ( ) ;
m_quanta - > slotNewStatus ( ) ;
initToolBars ( ) ;
Project : : ref ( ) - > setProjectToolbarVisible ( m_quanta - > factory ( ) - > container ( " project_toolbar " , m_quanta ) - > isShown ( ) ) ;
Project : : ref ( ) - > slotShowProjectToolbar ( Project : : ref ( ) - > hasProject ( ) ) ;
KTipDialog : : showTip ( m_quanta ) ;
//get the PID of this running instance
qConfig . quantaPID = TQString : : number ( int ( getpid ( ) ) , 10 ) ;
qConfig . backupDirPath = TDEGlobal : : instance ( ) - > dirs ( ) - > saveLocation ( " data " , resourceDir + " backups/ " ) ;
m_quanta - > autosaveTimer = new TQTimer ( m_quanta ) ;
connect ( m_quanta - > autosaveTimer , TQT_SIGNAL ( timeout ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotAutosaveTimer ( ) ) ) ;
m_quanta - > autosaveTimer - > start ( qConfig . autosaveInterval * 60000 , false ) ;
connect ( m_quanta - > m_doc , TQT_SIGNAL ( hideSplash ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotHideSplash ( ) ) ) ;
connect ( parser , TQT_SIGNAL ( rebuildStructureTree ( bool ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotReloadStructTreeView ( bool ) ) ) ;
// Read list of characters
TQFile file ( locate ( " appdata " , " chars " ) ) ;
if ( file . open ( IO_ReadOnly ) ) { // file opened successfully
TQTextStream t ( & file ) ; // use a text stream
t . setEncoding ( TQTextStream : : UnicodeUTF8 ) ;
TQString s ;
while ( ! t . eof ( ) )
{
s = t . readLine ( ) ;
charList < < i18n ( s . utf8 ( ) ) ; // line excluding '\n'
int begin = s . find ( " (& " ) + 1 ;
if ( begin = = 1 )
continue ;
int length = s . find ( " ;) " ) - begin + 1 ;
TQString s2 = s . mid ( begin , length - 1 ) ;
replacementMap [ s [ 0 ] . unicode ( ) ] = s2 ;
}
file . close ( ) ;
}
TQString infoCss = tmpDir ;
infoCss . replace ( TQRegExp ( " /quanta$ " ) , " " ) ;
infoCss + = " /info.css " ;
QExtFileInfo : : copy ( KURL ( ) . fromPathOrURL ( qConfig . globalDataDir + resourceDir + " scripts/info.css " ) , KURL ( ) . fromPathOrURL ( infoCss ) ) ;
checkRuntimeDependencies ( ) ;
ViewManager : : ref ( ) - > activeDocument ( ) - > view ( ) - > setFocus ( ) ;
m_quanta - > refreshTimer = new TQTimer ( m_quanta ) ;
connect ( m_quanta - > refreshTimer , TQT_SIGNAL ( timeout ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotReparse ( ) ) ) ;
m_quanta - > refreshTimer - > start ( qConfig . refreshFrequency * 1000 , false ) ; //update the structure tree every 5 seconds
if ( qConfig . instantUpdate | | qConfig . refreshFrequency = = 0 )
{
m_quanta - > refreshTimer - > stop ( ) ;
}
}
void QuantaInit : : initToolBars ( )
{
if ( m_quanta - > m_toolbarList . count ( ) = = 0 )
m_quanta - > slotLoadToolbarForDTD ( Project : : ref ( ) - > defaultDTD ( ) ) ;
}
void QuantaInit : : initStatusBar ( )
{
m_quanta - > statusbarTimer = new TQTimer ( m_quanta ) ;
connect ( m_quanta - > statusbarTimer , TQT_SIGNAL ( timeout ( ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( statusBarTimeout ( ) ) ) ;
progressBar = new KProgress ( m_quanta - > statusBar ( ) ) ;
progressBar - > setTextEnabled ( false ) ;
progressBar - > setMaximumHeight ( progressBar - > fontMetrics ( ) . height ( ) ) ;
progressBar - > show ( ) ;
m_quanta - > statusBar ( ) - > insertItem ( i18n ( IDS_DEFAULT ) , IDS_STATUS , 1 ) ;
m_quanta - > statusBar ( ) - > addWidget ( progressBar ) ;
m_quanta - > statusBar ( ) - > insertItem ( " " , IDS_INS_OVR ) ;
m_quanta - > statusBar ( ) - > insertFixedItem ( " * " , IDS_MODIFIED ) ;
m_quanta - > statusBar ( ) - > insertFixedItem ( i18n ( " Line: 00000 Col: 000 " ) , IDS_STATUS_CLM , true ) ;
m_quanta - > statusBar ( ) - > changeItem ( " " , IDS_INS_OVR ) ;
m_quanta - > statusBar ( ) - > changeItem ( " " , IDS_MODIFIED ) ;
m_quanta - > statusBar ( ) - > changeItem ( " " , IDS_STATUS_CLM ) ;
m_quanta - > statusBar ( ) - > setItemAlignment ( IDS_STATUS , AlignLeft ) ;
}
void QuantaInit : : initDocument ( )
{
m_quanta - > m_doc = new QuantaDoc ( 0L ) ;
connect ( m_quanta - > m_doc , TQT_SIGNAL ( newStatus ( ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotNewStatus ( ) ) ) ;
}
void QuantaInit : : initProject ( )
{
Project * m_project = Project : : ref ( m_quanta ) ;
connect ( m_project , TQT_SIGNAL ( getTreeStatus ( TQStringList * ) ) ,
pTab , TQT_SLOT ( slotGetTreeStatus ( TQStringList * ) ) ) ;
connect ( m_project , TQT_SIGNAL ( loadToolbarFile ( const KURL & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotLoadToolbarFile ( const KURL & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( getUserToolbarFiles ( KURL : : List * ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotGetUserToolbarFiles ( KURL : : List * ) ) ) ;
connect ( m_project , TQT_SIGNAL ( openFiles ( const KURL : : List & , const TQString & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileOpen ( const KURL : : List & , const TQString & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( openFile ( const KURL & , const TQString & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileOpen ( const KURL & , const TQString & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( closeFile ( const KURL & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileClose ( const KURL & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( reloadTree ( ProjectList * , bool , const TQStringList & ) ) ,
pTab , TQT_SLOT ( slotReloadTree ( ProjectList * , bool , const TQStringList & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( closeFiles ( ) ) , ViewManager : : ref ( ) , TQT_SLOT ( closeAll ( ) ) ) ;
connect ( m_project , TQT_SIGNAL ( eventHappened ( const TQString & , const TQString & , const TQString & ) ) , QPEvents : : ref ( TQT_TQOBJECT ( m_quanta ) ) , TQT_SLOT ( slotEventHappened ( const TQString & , const TQString & , const TQString & ) ) ) ;
connect ( m_quanta - > fTab , TQT_SIGNAL ( insertDirInProject ( const KURL & ) ) ,
m_project , TQT_SLOT ( slotAddDirectory ( const KURL & ) ) ) ;
connect ( m_quanta - > fTab , TQT_SIGNAL ( insertFileInProject ( const KURL & ) ) ,
m_project , TQT_SLOT ( slotInsertFile ( const KURL & ) ) ) ;
connect ( TemplatesTreeView : : ref ( ) , TQT_SIGNAL ( insertDirInProject ( const KURL & ) ) ,
m_project , TQT_SLOT ( slotAddDirectory ( const KURL & ) ) ) ;
connect ( TemplatesTreeView : : ref ( ) , TQT_SIGNAL ( insertFileInProject ( const KURL & ) ) ,
m_project , TQT_SLOT ( slotInsertFile ( const KURL & ) ) ) ;
connect ( TemplatesTreeView : : ref ( ) , TQT_SIGNAL ( downloadTemplate ( ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotDownloadTemplate ( ) ) ) ;
connect ( TemplatesTreeView : : ref ( ) , TQT_SIGNAL ( uploadTemplate ( const TQString & ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotUploadTemplate ( const TQString & ) ) ) ;
// inform project if something was renamed
connect ( pTab , TQT_SIGNAL ( renamed ( const KURL & , const KURL & ) ) ,
m_project , TQT_SLOT ( slotRenamed ( const KURL & , const KURL & ) ) ) ;
connect ( m_quanta - > fTab , TQT_SIGNAL ( renamed ( const KURL & , const KURL & ) ) ,
m_project , TQT_SLOT ( slotRenamed ( const KURL & , const KURL & ) ) ) ;
connect ( tTab , TQT_SIGNAL ( renamed ( const KURL & , const KURL & ) ) ,
m_project , TQT_SLOT ( slotRenamed ( const KURL & , const KURL & ) ) ) ;
connect ( pTab , TQT_SIGNAL ( insertToProject ( const KURL & ) ) ,
m_project , TQT_SLOT ( slotInsertFile ( const KURL & ) ) ) ;
connect ( pTab , TQT_SIGNAL ( removeFromProject ( const KURL & ) ) ,
m_project , TQT_SLOT ( slotRemove ( const KURL & ) ) ) ;
connect ( pTab , TQT_SIGNAL ( uploadSingleURL ( const KURL & , const TQString & , bool , bool ) ) ,
m_project , TQT_SLOT ( slotUploadURL ( const KURL & , const TQString & , bool , bool ) ) ) ;
connect ( pTab , TQT_SIGNAL ( rescanProjectDir ( ) ) , m_project , TQT_SLOT ( slotRescanPrjDir ( ) ) ) ;
connect ( pTab , TQT_SIGNAL ( showProjectOptions ( ) ) , m_project , TQT_SLOT ( slotOptions ( ) ) ) ;
connect ( pTab , TQT_SIGNAL ( uploadProject ( ) ) , m_project , TQT_SLOT ( slotUpload ( ) ) ) ;
connect ( m_quanta - > dTab , TQT_SIGNAL ( reloadProjectDocs ( ) ) , m_project , TQT_SLOT ( slotReloadProjectDocs ( ) ) ) ;
connect ( m_project , TQT_SIGNAL ( reloadProjectDocs ( ) ) , m_quanta - > dTab , TQT_SLOT ( slotReloadProjectDocs ( ) ) ) ;
connect ( m_project , TQT_SIGNAL ( addProjectDoc ( const KURL & ) ) , m_quanta - > dTab , TQT_SLOT ( slotAddProjectDoc ( const KURL & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( enableMessageWidget ( ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowMessagesView ( ) ) ) ;
connect ( m_project , TQT_SIGNAL ( messages ( const TQString & ) ) ,
m_quanta - > m_messageOutput , TQT_SLOT ( showMessage ( const TQString & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( newStatus ( ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotNewStatus ( ) ) ) ;
connect ( m_project , TQT_SIGNAL ( newProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ,
TemplatesTreeView : : ref ( ) , TQT_SLOT ( slotNewProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( newProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ,
pTab , TQT_SLOT ( slotNewProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( newProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ,
m_quanta - > fTab , TQT_SLOT ( slotNewProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ) ;
connect ( m_project , TQT_SIGNAL ( newProjectLoaded ( const TQString & , const KURL & , const KURL & ) ) ,
m_quanta - > annotationOutput ( ) , TQT_SLOT ( updateAnnotations ( ) ) ) ;
connect ( pTab , TQT_SIGNAL ( changeFileDescription ( const KURL & , const TQString & ) ) ,
m_project , TQT_SLOT ( slotFileDescChanged ( const KURL & , const TQString & ) ) ) ;
connect ( pTab , TQT_SIGNAL ( changeUploadStatus ( const KURL & , int ) ) ,
m_project , TQT_SLOT ( slotUploadStatusChanged ( const KURL & , int ) ) ) ;
connect ( pTab , TQT_SIGNAL ( changeDocumentFolderStatus ( const KURL & , bool ) ) ,
m_project , TQT_SLOT ( slotChangeDocumentFolderStatus ( const KURL & , bool ) ) ) ;
connect ( m_project , TQT_SIGNAL ( hideSplash ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotHideSplash ( ) ) ) ;
connect ( m_project , TQT_SIGNAL ( statusMsg ( const TQString & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotStatusMsg ( const TQString & ) ) ) ;
}
void QuantaInit : : initView ( )
{
ViewManager * m_viewManager = ViewManager : : ref ( TQT_TQOBJECT ( m_quanta ) ) ;
connect ( m_quanta , TQT_SIGNAL ( viewActivated ( KMdiChildView * ) ) , m_viewManager , TQT_SLOT ( slotViewActivated ( KMdiChildView * ) ) ) ;
connect ( m_quanta , TQT_SIGNAL ( lastChildViewClosed ( ) ) , m_viewManager , TQT_SLOT ( slotLastViewClosed ( ) ) ) ;
// connect(m_quanta, TQT_SIGNAL(viewDeactivated(KMdiChildView *)), m_viewManager, TQT_SLOT(slotViewDeactivated(KMdiChildView*)));
KafkaDocument * m_kafkaDocument = KafkaDocument : : ref ( 0 , 0 , " KafkaPart " ) ;
m_kafkaDocument - > getKafkaWidget ( ) - > view ( ) - > setMinimumHeight ( 50 ) ;
m_kafkaDocument - > readConfig ( quantaApp - > config ( ) ) ;
loadVPLConfig ( ) ;
ToolbarTabWidget * toolBarTab = ToolbarTabWidget : : ref ( quantaApp ) ;
connect ( toolBarTab , TQT_SIGNAL ( iconTextModeChanged ( ) ) , quantaApp , TQT_SLOT ( slotRefreshActiveWindow ( ) ) ) ;
//set the toolview and close button style before the GUI is created
m_config - > setGroup ( " General Options " ) ;
int iconTextMode = m_config - > readNumEntry ( " IconTextMode " , KToolBar : : IconOnly ) ;
toolBarTab - > setIconText ( KToolBar : : IconText ( iconTextMode ) ) ;
qConfig . toolviewTabs = m_config - > readNumEntry ( " MDI style " , KMdi : : IconOnly ) ;
m_quanta - > initTabWidget ( ) ;
m_quanta - > setStandardMDIMenuEnabled ( false ) ;
m_quanta - > setManagedDockPositionModeEnabled ( true ) ;
m_quanta - > fTab = new FilesTreeView ( m_config , m_quanta , " filestree " ) ;
m_quanta - > aTab = new EnhancedTagAttributeTree ( m_quanta , " TagAttributes " ) ;
pTab = ProjectTreeView : : ref ( m_quanta , " Project " ) ;
tTab = TemplatesTreeView : : ref ( m_quanta , " Templates " ) ; // creates the treeview
m_quanta - > dTab = new DocTreeView ( m_quanta , " Docs " ) ;
StructTreeView * sTab = StructTreeView : : ref ( m_quanta , " Struct " ) ;
m_quanta - > scriptTab = new ScriptTreeView ( m_quanta , " Scripts " ) ;
m_quanta - > m_messageOutput = new MessageOutput ( m_quanta , " Messages " ) ;
m_quanta - > m_messageOutput - > setFocusPolicy ( TQ_NoFocus ) ;
m_quanta - > m_messageOutput - > showMessage ( i18n ( " Message Window... " ) ) ;
connect ( m_quanta , TQT_SIGNAL ( showMessage ( const TQString & , bool ) ) , m_quanta - > m_messageOutput , TQT_SLOT ( showMessage ( const TQString & , bool ) ) ) ;
connect ( m_quanta , TQT_SIGNAL ( clearMessages ( ) ) , m_quanta - > m_messageOutput , TQT_SLOT ( clear ( ) ) ) ;
m_quanta - > m_problemOutput = new MessageOutput ( m_quanta , " Problems " ) ;
m_quanta - > m_problemOutput - > setFocusPolicy ( TQ_NoFocus ) ;
m_quanta - > m_annotationOutput = new AnnotationOutput ( m_quanta , " Annotations " ) ;
m_quanta - > m_annotationOutput - > setFocusPolicy ( TQ_NoFocus ) ;
m_quanta - > createPreviewPart ( ) ;
m_quanta - > createDocPart ( ) ;
connect ( m_quanta , TQT_SIGNAL ( reloadAllTrees ( ) ) ,
m_quanta - > fTab , TQT_SLOT ( slotReloadAllTrees ( ) ) ) ;
connect ( pTab , TQT_SIGNAL ( loadToolbarFile ( const KURL & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotLoadToolbarFile ( const KURL & ) ) ) ;
connect ( m_viewManager , TQT_SIGNAL ( viewActivated ( const KURL & ) ) ,
pTab , TQT_SLOT ( slotViewActivated ( const KURL & ) ) ) ;
connect ( m_viewManager , TQT_SIGNAL ( documentClosed ( const KURL & ) ) ,
pTab , TQT_SLOT ( slotDocumentClosed ( const KURL & ) ) ) ;
connect ( m_viewManager , TQT_SIGNAL ( documentClosed ( const KURL & ) ) ,
tTab , TQT_SLOT ( slotDocumentClosed ( const KURL & ) ) ) ;
connect ( m_viewManager , TQT_SIGNAL ( documentClosed ( const KURL & ) ) ,
m_quanta - > scriptTab , TQT_SLOT ( slotDocumentClosed ( const KURL & ) ) ) ;
connect ( m_viewManager , TQT_SIGNAL ( documentClosed ( const KURL & ) ) ,
m_quanta - > fTab , TQT_SLOT ( slotDocumentClosed ( const KURL & ) ) ) ;
connect ( tTab , TQT_SIGNAL ( insertFile ( const KURL & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotInsertFile ( const KURL & ) ) ) ;
connect ( m_quanta - > scriptTab , TQT_SIGNAL ( openFileInPreview ( const KURL & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotOpenFileInPreview ( const KURL & ) ) ) ;
connect ( m_quanta - > scriptTab , TQT_SIGNAL ( showPreviewWidget ( bool ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowPreviewWidget ( bool ) ) ) ;
connect ( m_quanta - > scriptTab , TQT_SIGNAL ( assignActionToScript ( const KURL & , const TQString & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotAssignActionToScript ( const KURL & , const TQString & ) ) ) ;
connect ( m_quanta - > scriptTab , TQT_SIGNAL ( downloadScript ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotDownloadScript ( ) ) ) ;
connect ( m_quanta - > scriptTab , TQT_SIGNAL ( uploadScript ( const TQString & ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotUploadScript ( const TQString & ) ) ) ;
connect ( m_quanta - > dTab , TQT_SIGNAL ( downloadDoc ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotDownloadDoc ( ) ) ) ;
connect ( m_quanta - > m_htmlPart , TQT_SIGNAL ( onURL ( const TQString & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotStatusMsg ( const TQString & ) ) ) ;
connect ( m_quanta - > m_htmlPartDoc , TQT_SIGNAL ( onURL ( const TQString & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotStatusMsg ( const TQString & ) ) ) ;
connect ( sTab , TQT_SIGNAL ( newCursorPosition ( int , int ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( setCursorPosition ( int , int ) ) ) ;
connect ( sTab , TQT_SIGNAL ( selectArea ( int , int , int , int ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( selectArea ( int , int , int , int ) ) ) ;
connect ( sTab , TQT_SIGNAL ( selectTagArea ( Node * ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotSelectTagArea ( Node * ) ) ) ;
connect ( sTab , TQT_SIGNAL ( needReparse ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotForceReparse ( ) ) ) ;
connect ( sTab , TQT_SIGNAL ( showGroupsForDTEP ( const TQString & , bool ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowGroupsForDTEP ( const TQString & , bool ) ) ) ;
connect ( sTab , TQT_SIGNAL ( openFile ( const KURL & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileOpen ( const KURL & ) ) ) ;
connect ( sTab , TQT_SIGNAL ( openImage ( const KURL & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotImageOpen ( const KURL & ) ) ) ;
connect ( sTab , TQT_SIGNAL ( showProblemMessage ( const TQString & ) ) ,
m_quanta - > m_problemOutput , TQT_SLOT ( showMessage ( const TQString & ) ) ) ;
connect ( sTab , TQT_SIGNAL ( clearProblemOutput ( ) ) ,
m_quanta - > m_problemOutput , TQT_SLOT ( clear ( ) ) ) ;
connect ( parser , TQT_SIGNAL ( nodeTreeChanged ( ) ) , sTab , TQT_SLOT ( slotNodeTreeChanged ( ) ) ) ;
connect ( m_quanta - > dTab , TQT_SIGNAL ( openURL ( const TQString & ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( openDoc ( const TQString & ) ) ) ;
connect ( m_viewManager , TQT_SIGNAL ( dragInsert ( TQDropEvent * ) ) , tTab , TQT_SLOT ( slotDragInsert ( TQDropEvent * ) ) ) ;
qConfig . windowLayout = " Default " ;
}
KMdiToolViewAccessor * QuantaInit : : addToolTreeView ( TQWidget * widget , const TQString & name , const TQPixmap & icon , KDockWidget : : DockPosition position )
{
widget - > setIcon ( icon ) ;
widget - > setCaption ( name ) ;
return m_quanta - > addToolWindow ( widget , m_quanta - > prevDockPosition ( widget , position ) , m_quanta - > getMainDockWidget ( ) ) ;
}
void QuantaInit : : readOptions ( )
{
m_config - > setGroup ( " General Options " ) ;
qConfig . markupMimeTypes = m_config - > readEntry ( " Markup mimetypes " , qConfig . markupMimeTypes ) ;
qConfig . scriptMimeTypes = m_config - > readEntry ( " Script mimetypes " , qConfig . scriptMimeTypes ) ;
qConfig . imageMimeTypes = m_config - > readEntry ( " Image mimetypes " , qConfig . imageMimeTypes ) ;
qConfig . textMimeTypes = m_config - > readEntry ( " Text mimetypes " , qConfig . textMimeTypes ) ;
qConfig . tagCase = m_config - > readNumEntry ( " Capitals for tags " , 0 ) ;
qConfig . attrCase = m_config - > readNumEntry ( " Capitals for attr " , 0 ) ;
qConfig . attrValueQuotation = ( m_config - > readEntry ( " Attribute quotation " , " double " ) = = " double " ) ? ' " ' : ' \' ' ;
qConfig . closeOptionalTags = m_config - > readBoolEntry ( " Close tag if optional " , true ) ;
qConfig . closeTags = m_config - > readBoolEntry ( " Close tags " , true ) ;
qConfig . useAutoCompletion = m_config - > readBoolEntry ( " Auto completion " , true ) ;
qConfig . updateClosingTags = m_config - > readBoolEntry ( " Update Closing Tags " , true ) ;
qConfig . replaceAccented = m_config - > readBoolEntry ( " Replace Accented Chars " , false ) ;
qConfig . replaceNotInEncoding = m_config - > readBoolEntry ( " Replace Chars Not In Current Encoding " , true ) ;
qConfig . defaultEncoding = m_config - > readEntry ( " Default encoding " , " UTF8 " ) ;
StructTreeView : : ref ( ) - > setFollowCursor ( m_config - > readBoolEntry ( " Follow Cursor " , true ) ) ;
qConfig . previewPosition = m_config - > readEntry ( " Preview area " , " Editor " ) ;
qConfig . docPosition = m_config - > readEntry ( " Documentation area " , " Tab " ) ;
qConfig . smartTagInsertion = m_config - > readBoolEntry ( " Smart Tag Insertion " , false ) ;
KAction * action = quantaApp - > actionCollection ( ) - > action ( " smart_tag_insertion " ) ;
( static_cast < KToggleAction * > ( action ) ) - > setChecked ( qConfig . smartTagInsertion ) ;
TQSize s ( 800 , 580 ) ;
m_quanta - > resize ( m_config - > readSizeEntry ( " Geometry " , & s ) ) ;
qConfig . autosaveInterval = m_config - > readNumEntry ( " Autosave interval " , 1 ) ;
qConfig . enableDTDToolbar = m_config - > readBoolEntry ( " Show DTD Toolbar " , true ) ;
m_quanta - > showDTDToolbar - > setChecked ( qConfig . enableDTDToolbar ) ;
qConfig . showCloseButtons = m_config - > readEntry ( " Close Buttons " , " ShowDelayed " ) ;
// m_quanta->initTabWidget(true);
m_quanta - > fileRecent - > loadEntries ( m_config ) ;
qConfig . showHiddenFiles = m_config - > readBoolEntry ( " Show Hidden Files " , true ) ;
qConfig . saveTrees = m_config - > readBoolEntry ( " Save Local Trees " , true ) ;
int maxRecentItems = m_config - > readNumEntry ( " Recent Files Limit " , 32 ) ;
m_quanta - > fileRecent - > setMaxItems ( maxRecentItems ) ;
m_config - > setGroup ( " Parser options " ) ;
qConfig . showEmptyNodes = m_config - > readBoolEntry ( " Show Empty Nodes " , false ) ;
qConfig . showClosingTags = m_config - > readBoolEntry ( " Show Closing Tags " , false ) ;
qConfig . instantUpdate = m_config - > readBoolEntry ( " Instant Update " , false ) ;
qConfig . refreshFrequency = m_config - > readNumEntry ( " Refresh frequency " , 5 ) ;
qConfig . expandLevel = m_config - > readNumEntry ( " Expand Level " , 4 ) ;
qConfig . showDTDSelectDialog = m_config - > readBoolEntry ( " Show DTD Select Dialog " , true ) ;
m_quanta - > m_previewVisible = false ;
m_quanta - > m_noFramesPreview = false ;
m_quanta - > showVPLAction - > setChecked ( false ) ;
//KNewStuff config
m_config - > setGroup ( " KNewStuff " ) ;
TQString str = m_config - > readEntry ( " ProvidersUrl " ) ;
if ( str . isEmpty ( ) )
{
m_config - > writeEntry ( " ProvidersUrl " , " http://quanta.tdewebdev.org/newstuff/providers.xml " ) ;
m_config - > sync ( ) ;
}
Project : : ref ( ) - > readConfig ( m_config ) ; // project
}
void QuantaInit : : openLastFiles ( )
{
// Reload previously opened files only if setting allows
m_config - > setGroup ( " General Options " ) ;
if ( ! m_config - > readBoolEntry ( " Reload Files " , true ) )
{
m_quanta - > setParserEnabled ( true ) ;
m_quanta - > reparse ( true ) ;
return ;
}
// we need to check config
// because project now can be
// in load stage ( remote prj )
m_config - > setGroup ( " Projects " ) ;
TQString pu = QuantaCommon : : readPathEntry ( m_config , " Last Project " ) ;
KURL u ;
QuantaCommon : : setUrl ( u , pu ) ;
bool isPrj = true ;
if ( pu . isEmpty ( ) )
isPrj = false ;
if ( ! u . isValid ( ) )
isPrj = false ;
m_config - > setGroup ( " General Options " ) ;
TQStringList urls = QuantaCommon : : readPathListEntry ( m_config , " List of opened files " ) ;
TQStringList encodings = QuantaCommon : : readPathListEntry ( m_config , " Encoding of opened files " ) ;
m_quanta - > m_doc - > blockSignals ( true ) ;
m_quanta - > setParserEnabled ( false ) ;
uint i = 0 ;
for ( TQStringList : : Iterator it = urls . begin ( ) ; it ! = urls . end ( ) ; + + it )
{
KURL fu ;
QuantaCommon : : setUrl ( fu , * it ) ;
if ( ! ViewManager : : ref ( ) - > isOpened ( fu ) & & ( ! isPrj | | fu . isLocalFile ( ) ) )
m_quanta - > slotFileOpen ( fu , encodings [ i ] ) ;
i + + ;
}
m_config - > sync ( ) ;
m_quanta - > m_doc - > blockSignals ( false ) ;
m_quanta - > setParserEnabled ( true ) ;
m_quanta - > reparse ( true ) ;
Document * w = ViewManager : : ref ( ) - > activeDocument ( ) ;
if ( w ) //w==0 might happen on quick close on startup
{
m_quanta - > setTitle ( w - > url ( ) . prettyURL ( 0 , KURL : : StripFileProtocol ) ) ;
// m_quanta->slotUpdateStatus(w);//FIXME:
}
}
/** Loads the initial project */
void QuantaInit : : loadInitialProject ( const TQString & url )
{
if ( url . isNull ( ) )
{
if ( runningQuantas ( ) = = 1 )
{
// Get config
TDEConfig * config = m_quanta - > config ( ) ;
config - > setGroup ( " General Options " ) ;
// Reload last project if setting is enabled
Project : : ref ( ) - > loadLastProject ( config - > readBoolEntry ( " Reload Project " , true ) ) ;
}
}
else
Project : : ref ( ) - > slotOpenProject ( KURL ( url ) ) ;
}
void QuantaInit : : initActions ( )
{
KActionCollection * ac = m_quanta - > actionCollection ( ) ;
new KAction ( i18n ( " Annotate... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotAnnotate ( ) ) , ac , " annotate " ) ;
m_quanta - > editTagAction = new KAction ( i18n ( " &Edit Current Tag... " ) , CTRL + Key_E ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotEditCurrentTag ( ) ) ,
TQT_TQOBJECT ( ac ) , " edit_current_tag " ) ;
m_quanta - > selectTagAreaAction = new KAction ( i18n ( " &Select Current Tag Area " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotSelectTagArea ( ) ) ,
TQT_TQOBJECT ( ac ) , " select_tag_area " ) ;
new KAction ( i18n ( " E&xpand Abbreviation " ) , CTRL + SHIFT + Key_J ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotExpandAbbreviation ( ) ) ,
TQT_TQOBJECT ( ac ) , " expand_abbreviation " ) ;
new KAction ( i18n ( " &Report Bug... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotReportBug ( ) ) , TQT_TQOBJECT ( ac ) , " help_reportbug " ) ; //needed, because quanta_be bugs should be reported for quanta
//Kate actions
//Edit menu
KStdAction : : undo ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotUndo ( ) ) , ac ) ;
KStdAction : : redo ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotRedo ( ) ) , ac ) ;
KStdAction : : cut ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotCut ( ) ) , ac ) ;
KStdAction : : copy ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotCopy ( ) ) , ac ) ;
KStdAction : : pasteText ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotPaste ( ) ) , ac ) ;
//help
( void ) new KAction ( i18n ( " Ti&p of the Day " ) , " idea " , " " , TQT_TQOBJECT ( m_quanta ) ,
TQT_SLOT ( slotHelpTip ( ) ) , TQT_TQOBJECT ( ac ) , " help_tip " ) ;
// File actions
//
KStdAction : : openNew ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileNew ( ) ) , ac ) ;
KStdAction : : open ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileOpen ( ) ) , ac , " file_open " ) ;
( void ) new KAction ( i18n ( " Close Other Tabs " ) , 0 , ViewManager : : ref ( ) , TQT_SLOT ( slotCloseOtherTabs ( ) ) , TQT_TQOBJECT ( ac ) , " close_other_tabs " ) ;
m_quanta - > fileRecent = KStdAction : : openRecent ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileOpenRecent ( const KURL & ) ) ,
ac , " file_open_recent " ) ;
m_quanta - > fileRecent - > setToolTip ( i18n ( " Open / Open Recent " ) ) ;
connect ( m_quanta - > fileRecent , TQT_SIGNAL ( activated ( ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileOpen ( ) ) ) ;
( void ) new KAction ( i18n ( " Close All " ) , 0 , TQT_TQOBJECT ( m_quanta ) ,
TQT_SLOT ( slotFileCloseAll ( ) ) ,
TQT_TQOBJECT ( ac ) , " file_close_all " ) ;
m_quanta - > saveAction = KStdAction : : save ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileSave ( ) ) , ac ) ;
KStdAction : : saveAs ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileSaveAs ( ) ) , ac ) ;
m_quanta - > saveAllAction = new KAction ( i18n ( " Save All... " ) , " save_all " , SHIFT + KStdAccel : : shortcut ( KStdAccel : : Save ) . keyCodeQt ( ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileSaveAll ( ) ) ,
TQT_TQOBJECT ( ac ) , " file_save_all " ) ;
( void ) new KAction ( i18n ( " Reloa&d " ) , " revert " , SHIFT + Key_F5 , TQT_TQOBJECT ( m_quanta ) ,
TQT_SLOT ( slotFileReload ( ) ) , TQT_TQOBJECT ( ac ) , " file_reload " ) ;
// (void) new KAction(i18n("Reload All "), 0, 0, m_quanta,
// TQT_SLOT(slotFileReloadAll()), TQT_TQOBJECT(ac), "file_reload_all");
( void ) new KAction ( i18n ( " Save as Local Template... " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileSaveAsLocalTemplate ( ) ) ,
TQT_TQOBJECT ( ac ) , " save_local_template " ) ;
( void ) new KAction ( i18n ( " Save Selection to Local Template File... " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileSaveSelectionAsLocalTemplate ( ) ) ,
TQT_TQOBJECT ( ac ) , " save_selection_local_template " ) ;
KStdAction : : quit ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFileQuit ( ) ) , ac ) ;
// Edit actions
( void ) new KAction ( i18n ( " Find in Files... " ) ,
SmallIcon ( " filefind " ) , CTRL + ALT + Key_F ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotEditFindInFiles ( ) ) ,
TQT_TQOBJECT ( ac ) , " find_in_files " ) ;
KAction * aux = TagActionManager : : self ( ) - > actionCollection ( ) - > action ( " apply_source_indentation " ) ;
aux - > setEnabled ( false ) ;
ac - > insert ( aux ) ;
// Tool actions
( void ) new KAction ( i18n ( " &Context Help... " ) , CTRL + Key_H ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotContextHelp ( ) ) ,
TQT_TQOBJECT ( ac ) , " context_help " ) ;
( void ) new KAction ( i18n ( " Tag &Attributes... " ) , ALT + Key_Down ,
m_quanta - > m_doc , TQT_SLOT ( slotAttribPopup ( ) ) ,
TQT_TQOBJECT ( ac ) , " tag_attributes " ) ;
( void ) new KAction ( i18n ( " &Change the DTD... " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotChangeDTD ( ) ) ,
TQT_TQOBJECT ( ac ) , " change_dtd " ) ;
( void ) new KAction ( i18n ( " &Edit DTD Settings... " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotEditDTD ( ) ) ,
TQT_TQOBJECT ( ac ) , " edit_dtd " ) ;
( void ) new KAction ( i18n ( " &Load && Convert DTD... " ) , 0 ,
DTDs : : ref ( ) , TQT_SLOT ( slotLoadDTD ( ) ) ,
TQT_TQOBJECT ( ac ) , " load_dtd " ) ;
( void ) new KAction ( i18n ( " Load DTD E&ntities... " ) , 0 ,
DTDs : : ref ( ) , TQT_SLOT ( slotLoadEntities ( ) ) ,
TQT_TQOBJECT ( ac ) , " load_entities " ) ;
( void ) new KAction ( i18n ( " Load DTD &Package (DTEP)... " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotLoadDTEP ( ) ) ,
TQT_TQOBJECT ( ac ) , " load_dtep " ) ;
( void ) new KAction ( i18n ( " Send DTD Package (DTEP) in E&mail... " ) , " mail_send " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotEmailDTEP ( ) ) ,
TQT_TQOBJECT ( ac ) , " send_dtep " ) ;
( void ) new KAction ( i18n ( " &Download DTD Package (DTEP)... " ) , " network " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotDownloadDTEP ( ) ) ,
TQT_TQOBJECT ( ac ) , " download_dtep " ) ;
( void ) new KAction ( i18n ( " &Upload DTD Package (DTEP)... " ) , " network " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotUploadDTEP ( ) ) ,
TQT_TQOBJECT ( ac ) , " upload_dtep " ) ;
/*
( void ) new KAction ( i18n ( " &Upload DTD Package (DTEP)... " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotUploadDTEP ( ) ) ,
TQT_TQOBJECT ( ac ) , " send_dtep " ) ;
*/
( void ) new KAction ( i18n ( " &Document Properties " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotDocumentProperties ( ) ) ,
TQT_TQOBJECT ( ac ) , " tools_document_properties " ) ;
( void ) new KAction ( i18n ( " F&ormat XML Code " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotCodeFormatting ( ) ) ,
TQT_TQOBJECT ( ac ) , " tools_code_formatting " ) ;
( void ) new KAction ( i18n ( " &Convert Tag && Attribute Case... " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotConvertCase ( ) ) ,
TQT_TQOBJECT ( ac ) , " tools_change_case " ) ;
// View actions
m_quanta - > showSourceAction =
new KToggleAction ( i18n ( " &Source Editor " ) , UserIcon ( " view_text " ) , ALT + Key_F9 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowSourceEditor ( ) ) ,
TQT_TQOBJECT ( ac ) , " show_quanta_editor " ) ;
m_quanta - > showSourceAction - > setExclusiveGroup ( " view " ) ;
m_quanta - > showVPLAction =
new KToggleAction ( i18n ( " &VPL Editor " ) , UserIcon ( " vpl " ) , CTRL + SHIFT + Key_F9 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowVPLOnly ( ) ) ,
TQT_TQOBJECT ( ac ) , " show_kafka_view " ) ;
m_quanta - > showVPLAction - > setExclusiveGroup ( " view " ) ;
m_quanta - > showVPLSourceAction =
new KToggleAction ( i18n ( " VPL && So&urce Editors " ) , UserIcon ( " vpl_text " ) , Key_F9 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowVPLAndSourceEditor ( ) ) ,
TQT_TQOBJECT ( ac ) , " show_kafka_and_quanta " ) ;
m_quanta - > showVPLSourceAction - > setExclusiveGroup ( " view " ) ;
/**kafkaSelectAction = new KSelectAction(i18n("Main &View"), 0, ac,"show_kafka");
TQStringList list2 ;
list2 . append ( i18n ( " &Source Editor " ) ) ;
list2 . append ( i18n ( " &VPL Editor (experimental) " ) ) ;
list2 . append ( i18n ( " &Both Editors " ) ) ;
kafkaSelectAction - > setItems ( list2 ) ;
connect ( kafkaSelectAction , TQT_SIGNAL ( activated ( int ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowKafkaPartl ( int ) ) ) ; */
( void ) new KAction ( i18n ( " &Reload Preview " ) , " reload " ,
KStdAccel : : shortcut ( KStdAccel : : Reload ) . keyCodeQt ( ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotRepaintPreview ( ) ) ,
TQT_TQOBJECT ( ac ) , " reload " ) ;
( void ) new KAction ( i18n ( " &Previous File " ) , " 1leftarrow " , KStdAccel : : back ( ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotBack ( ) ) ,
TQT_TQOBJECT ( ac ) , " previous_file " ) ;
( void ) new KAction ( i18n ( " &Next File " ) , " 1rightarrow " , KStdAccel : : forward ( ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotForward ( ) ) ,
TQT_TQOBJECT ( ac ) , " next_file " ) ;
// Options actions
//
( void ) new KAction ( i18n ( " Configure &Actions... " ) , UserIcon ( " ball " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotOptionsConfigureActions ( ) ) ,
TQT_TQOBJECT ( ac ) , " configure_actions " ) ;
KStdAction : : showMenubar ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowMenuBar ( ) ) , ac , " options_show_menubar " ) ;
KStdAction : : keyBindings ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotOptionsConfigureKeys ( ) ) , ac , " configure_shortcuts " ) ;
KStdAction : : configureToolbars ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotOptionsConfigureToolbars ( ) ) , ac , " options_configure_toolbars " ) ;
KStdAction : : preferences ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotOptions ( ) ) , ac , " general_options " ) ;
new KAction ( i18n ( " Configure Pre&view... " ) , SmallIcon ( " konqueror " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotPreviewOptions ( ) ) , TQT_TQOBJECT ( ac ) , " preview_options " ) ;
// Toolbars actions
m_quanta - > projectToolbarFiles = new KRecentFilesAction ( i18n ( " Load &Project Toolbar " ) , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotLoadToolbarFile ( const KURL & ) ) ,
TQT_TQOBJECT ( ac ) , " toolbars_load_project " ) ;
new KAction ( i18n ( " Load &Global Toolbar... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotLoadGlobalToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_load_global " ) ;
new KAction ( i18n ( " Load &Local Toolbar... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotLoadToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_load_user " ) ;
new KAction ( i18n ( " Save as &Local Toolbar... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotSaveLocalToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_save_local " ) ;
new KAction ( i18n ( " Save as &Project Toolbar... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotSaveProjectToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_save_project " ) ;
new KAction ( i18n ( " &New User Toolbar... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotAddToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_add " ) ;
new KAction ( i18n ( " &Remove User Toolbar... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotRemoveToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_remove " ) ;
new KAction ( i18n ( " Re&name User Toolbar... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotRenameToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_rename " ) ;
new KAction ( i18n ( " Send Toolbar in E&mail... " ) , " mail_send " , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotSendToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_send " ) ;
new KAction ( i18n ( " &Upload Toolbar... " ) , " network " , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotUploadToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_upload " ) ;
new KAction ( i18n ( " &Download Toolbar... " ) , " network " , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotDownloadToolbar ( ) ) , TQT_TQOBJECT ( ac ) , " toolbars_download " ) ;
KToggleAction * toggle = new KToggleAction ( i18n ( " Smart Tag Insertion " ) , 0 , TQT_TQOBJECT ( ac ) , " smart_tag_insertion " ) ;
connect ( toggle , TQT_SIGNAL ( toggled ( bool ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotSmartTagInsertion ( ) ) ) ;
m_quanta - > showDTDToolbar = new KToggleAction ( i18n ( " Show DTD Toolbar " ) , 0 , TQT_TQOBJECT ( ac ) , " view_dtd_toolbar " ) ;
connect ( m_quanta - > showDTDToolbar , TQT_SIGNAL ( toggled ( bool ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotToggleDTDToolbar ( bool ) ) ) ;
m_quanta - > showDTDToolbar - > setCheckedState ( i18n ( " Hide DTD Toolbar " ) ) ;
new KAction ( i18n ( " Complete Text " ) , CTRL + Key_Space ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowCompletion ( ) ) , ac , " show_completion " ) ;
new KAction ( i18n ( " Completion Hints " ) , CTRL + SHIFT + Key_Space ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowCompletionHint ( ) ) , ac , " show_completion_hint " ) ;
KStdAction : : back ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotBack ( ) ) , ac , " w_back " ) ;
KStdAction : : forward ( TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotForward ( ) ) , ac , " w_forward " ) ;
new KAction ( i18n ( " Open File: none " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotOpenFileUnderCursor ( ) ) , TQT_TQOBJECT ( ac ) , " open_file_under_cursor " ) ;
new KAction ( i18n ( " Upload... " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotUploadFile ( ) ) , TQT_TQOBJECT ( ac ) , " upload_file " ) ;
new KAction ( i18n ( " Delete File " ) , 0 , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotDeleteFile ( ) ) , TQT_TQOBJECT ( ac ) , " delete_file " ) ;
TQString ss = i18n ( " Upload Opened Project Files... " ) ;
/* new KAction(i18n("Upload Opened Project Files"), 0, TQT_TQOBJECT(m_quanta), TQT_SLOT(slotUploadOpenedFiles()), TQT_TQOBJECT(ac), "upload_opened_files"); */
TQString error ;
int el , ec ;
m_quanta - > m_actions = new TQDomDocument ( ) ;
//load the global actions
TQFile f ( qConfig . globalDataDir + resourceDir + " actions.rc " ) ;
if ( f . open ( IO_ReadOnly ) )
{
if ( m_quanta - > m_actions - > setContent ( & f , & error , & el , & ec ) )
{
TQDomElement docElem = m_quanta - > m_actions - > documentElement ( ) ;
TQDomNode n = docElem . firstChild ( ) ;
while ( ! n . isNull ( ) ) {
TQDomElement e = n . toElement ( ) ; // try to convert the node to an element.
if ( ! e . isNull ( ) ) { // the node was really an element.
bool toggable = ( e . attribute ( " toggable " , " " ) = = " true " ) ;
new TagAction ( & e , m_quanta , toggable ) ;
}
n = n . nextSibling ( ) ;
}
} else
kdError ( 24000 ) < < TQString ( " Error %1 at (%2, %3) in %4 " ) . arg ( error ) . arg ( el ) . arg ( ec ) . arg ( f . name ( ) ) < < endl ;
f . close ( ) ;
}
m_quanta - > m_actions - > clear ( ) ;
//read the user defined actions
TQString s = locateLocal ( " appdata " , " actions.rc " ) ;
if ( ! s . isEmpty ( ) )
{
f . setName ( s ) ;
if ( f . open ( IO_ReadOnly ) )
{
if ( m_quanta - > m_actions - > setContent ( & f , & error , & el , & ec ) )
{
TQDomElement docElem = m_quanta - > m_actions - > documentElement ( ) ;
TQDomNode n = docElem . firstChild ( ) ;
while ( ! n . isNull ( ) ) {
TQDomElement e = n . toElement ( ) ; // try to convert the node to an element.
if ( ! e . isNull ( ) )
{ // the node was really an element.
delete ac - > action ( e . attribute ( " name " ) . ascii ( ) ) ;
bool toggable = ( e . attribute ( " toggable " , " " ) = = " true " ) ;
new TagAction ( & e , m_quanta , toggable ) ;
}
n = n . nextSibling ( ) ;
}
} else
kdError ( 24000 ) < < TQString ( " Error %1 at (%2, %3) in %4 " ) . arg ( error ) . arg ( el ) . arg ( ec ) . arg ( f . name ( ) ) < < endl ;
f . close ( ) ;
}
} else
{
m_quanta - > m_actions - > setContent ( s ) ;
}
// create the preview action
m_quanta - > showPreviewAction =
new KToolBarPopupAction ( i18n ( " &Preview " ) , " preview " , Key_F6 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotToggleShowPreview ( ) ) ,
TQT_TQOBJECT ( ac ) , " show_preview " ) ;
KAction * act = new KAction ( i18n ( " Preview Without Frames " ) , " " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotShowNoFramesPreview ( ) ) ,
TQT_TQOBJECT ( ac ) , " show_preview_no_frames " ) ;
act - > plug ( m_quanta - > showPreviewAction - > popupMenu ( ) ) ;
act = new KAction ( i18n ( " View with &Konqueror " ) , " konqueror " , Key_F12 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotViewInKFM ( ) ) ,
TQT_TQOBJECT ( ac ) , " view_with_konqueror " ) ;
act - > plug ( m_quanta - > showPreviewAction - > popupMenu ( ) ) ;
act = ac - > action ( " view_with_firefox " ) ;
if ( act )
act - > plug ( m_quanta - > showPreviewAction - > popupMenu ( ) ) ;
act = ac - > action ( " view_with_mozilla " ) ;
if ( act )
act - > plug ( m_quanta - > showPreviewAction - > popupMenu ( ) ) ;
act = ac - > action ( " view_with_netscape " ) ;
if ( act )
act - > plug ( m_quanta - > showPreviewAction - > popupMenu ( ) ) ;
act = ac - > action ( " view_with_opera " ) ;
if ( act )
act - > plug ( m_quanta - > showPreviewAction - > popupMenu ( ) ) ;
act = new KAction ( i18n ( " View with L&ynx " ) , " terminal " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotViewInLynx ( ) ) ,
TQT_TQOBJECT ( ac ) , " view_with_lynx " ) ;
act - > plug ( m_quanta - > showPreviewAction - > popupMenu ( ) ) ;
( void ) new KAction ( i18n ( " Table Editor... " ) , " quick_table " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotTagEditTable ( ) ) ,
TQT_TQOBJECT ( ac ) , " tag_edit_table " ) ;
( void ) new KAction ( i18n ( " Quick List... " ) , " quick_list " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotTagQuickList ( ) ) ,
TQT_TQOBJECT ( ac ) , " tag_quick_list " ) ;
( void ) new KAction ( i18n ( " Color... " ) , " colorize " , CTRL + SHIFT + Key_C ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotTagColor ( ) ) ,
TQT_TQOBJECT ( ac ) , " tag_color " ) ;
( void ) new KAction ( i18n ( " Email... " ) , " tag_mail " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotTagMail ( ) ) ,
TQT_TQOBJECT ( ac ) , " tag_mail " ) ;
( void ) new KAction ( i18n ( " Misc. Tag... " ) , " tag_misc " , CTRL + SHIFT + Key_T ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotTagMisc ( ) ) ,
TQT_TQOBJECT ( ac ) , " tag_misc " ) ;
( void ) new KAction ( i18n ( " Frame Wizard... " ) , " frame " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotFrameWizard ( ) ) ,
TQT_TQOBJECT ( ac ) , " tag_frame_wizard " ) ;
( void ) new KAction ( i18n ( " Paste &HTML Quoted " ) , " editpaste " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotPasteHTMLQuoted ( ) ) ,
TQT_TQOBJECT ( ac ) , " edit_paste_html_quoted " ) ;
( void ) new KAction ( i18n ( " Paste &URL Encoded " ) , " editpaste " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotPasteURLEncoded ( ) ) ,
TQT_TQOBJECT ( ac ) , " edit_paste_url_encoded " ) ;
( void ) new KAction ( i18n ( " Insert CSS... " ) , " css " , 0 ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotInsertCSS ( ) ) ,
TQT_TQOBJECT ( ac ) , " insert_css " ) ;
// special-character combo
KAction * char_action = new KAction (
i18n ( " Insert Special Character " ) , " charset " , 0 ,
TQT_TQOBJECT ( ac ) , " insert_char " ) ;
connect ( char_action , TQT_SIGNAL ( activated ( ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotInsertChar ( ) ) ) ;
connect ( m_quanta , TQT_SIGNAL ( eventHappened ( const TQString & , const TQString & , const TQString & ) ) , QPEvents : : ref ( TQT_TQOBJECT ( m_quanta ) ) , TQT_SLOT ( slotEventHappened ( const TQString & , const TQString & , const TQString & ) ) ) ;
connect ( m_quanta - > doc ( ) , TQT_SIGNAL ( eventHappened ( const TQString & , const TQString & , const TQString & ) ) , QPEvents : : ref ( TQT_TQOBJECT ( m_quanta ) ) , TQT_SLOT ( slotEventHappened ( const TQString & , const TQString & , const TQString & ) ) ) ;
connect ( ViewManager : : ref ( ) , TQT_SIGNAL ( eventHappened ( const TQString & , const TQString & , const TQString & ) ) , QPEvents : : ref ( TQT_TQOBJECT ( m_quanta ) ) , TQT_SLOT ( slotEventHappened ( const TQString & , const TQString & , const TQString & ) ) ) ;
QuantaBookmarks * m_bookmarks = new QuantaBookmarks ( ViewManager : : ref ( TQT_TQOBJECT ( m_quanta ) ) ) ;
m_bookmarks - > createActions ( ac ) ;
connect ( m_bookmarks , TQT_SIGNAL ( gotoFileAndLine ( const TQString & , int , int ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( gotoFileAndLine ( const TQString & , int , int ) ) ) ;
}
/** Initialize the plugin architecture. */
void QuantaInit : : initPlugins ( )
{
// TODO : read option from plugins.rc to see if we should validate the plugins
m_quanta - > m_pluginInterface = QuantaPluginInterface : : ref ( m_quanta ) ;
connect ( m_quanta - > m_pluginInterface , TQT_SIGNAL ( hideSplash ( ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotHideSplash ( ) ) ) ;
connect ( m_quanta - > m_pluginInterface , TQT_SIGNAL ( statusMsg ( const TQString & ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotStatusMsg ( const TQString & ) ) ) ;
m_quanta - > m_pluginInterface - > readConfig ( ) ;
if ( ! m_quanta - > m_pluginInterface - > pluginAvailable ( " KFileReplace " ) )
{
delete m_quanta - > actionCollection ( ) - > action ( " find_in_files " ) ;
}
}
void QuantaInit : : recoverCrashed ( TQStringList & recoveredFileNameList )
{
m_quanta - > m_doc - > blockSignals ( true ) ;
execCommandPS ( " ps -C quanta -C quanta_be -o pid --no-headers " ) ;
m_PIDlist = TQStringList : : split ( " \n " , m_quanta - > m_scriptOutput ) ;
m_config - > setGroup ( " Projects " ) ;
TQString pu = QuantaCommon : : readPathEntry ( m_config , " Last Project " ) ;
KURL u ;
QuantaCommon : : setUrl ( u , pu ) ;
bool isPrj = true ;
if ( pu . isEmpty ( ) )
isPrj = false ;
if ( ! u . isValid ( ) )
isPrj = false ;
m_config - > reparseConfiguration ( ) ;
m_config - > setGroup ( " General Options " ) ;
TQStringList backedUpUrlsList = QuantaCommon : : readPathListEntry ( m_config , " List of backedup files " ) ;
TQStringList autosavedUrlsList = QuantaCommon : : readPathListEntry ( m_config , " List of autosaved files " ) ;
TQStringList : : ConstIterator backedUpUrlsEndIt = backedUpUrlsList . constEnd ( ) ;
for ( TQStringList : : ConstIterator backedUpUrlsIt = backedUpUrlsList . constBegin ( ) ;
backedUpUrlsIt ! = backedUpUrlsEndIt ; + + backedUpUrlsIt )
{
// when quanta crashes and file autoreloading option is on
// then if user restarts quanta, the backup copies will reload
TQString backedUpFileName = ( * backedUpUrlsIt ) . left ( ( * backedUpUrlsIt ) . findRev ( " . " ) ) ; //the filename without the PID
bool notFound ;
TQString autosavedPath = searchPathListEntry ( backedUpFileName , autosavedUrlsList , notFound ) ;
if ( ! autosavedPath . isEmpty ( ) ) //the current item was autosaved and is not in use by another Quanta
{
KURL originalVersion ;
KURL autosavedVersion ;
QuantaCommon : : setUrl ( originalVersion , backedUpFileName ) ;
QuantaCommon : : setUrl ( autosavedVersion , autosavedPath ) ;
bool isUntitledDocument = false ;
if ( autosavedVersion . path ( ) . right ( 1 ) = = " U " )
isUntitledDocument = true ;
if ( ! isPrj | | originalVersion . isLocalFile ( ) )
{
//find some information about local files
TDEIO : : UDSEntry entry ;
TDEIO : : NetAccess : : stat ( originalVersion , entry , m_quanta ) ;
KFileItem * item = new KFileItem ( entry , originalVersion , false , true ) ;
TQString origTime = item - > timeString ( ) ;
TDEIO : : filesize_t origSize = item - > size ( ) ;
delete item ;
TDEIO : : NetAccess : : stat ( autosavedVersion , entry , m_quanta ) ;
item = new KFileItem ( entry , autosavedVersion , false , true ) ;
TQString backupTime = item - > timeString ( ) ;
TDEIO : : filesize_t backupSize = item - > size ( ) ;
delete item ;
if ( TQFileInfo ( autosavedPath ) . exists ( ) ) //if the backup file exists
{
emit hideSplash ( ) ;
DirtyDlg * dlg = new DirtyDlg ( autosavedVersion . path ( ) , originalVersion . path ( ) , false , m_quanta ) ;
dlg - > setCaption ( i18n ( " Restore File " ) ) ;
DirtyDialog * w = static_cast < DirtyDialog * > ( dlg - > mainWidget ( ) ) ;
w - > textLabel - > setText ( i18n ( " <qt>A backup copy of a file was found:<br><br> "
" Original file: <b>%1</b><br> "
" Original file size: <b>%2</b><br> "
" Original file last modified on: <b>%3</b><br><br> "
" Backup file size: <b>%4</b><br> "
" Backup created on: <b>%5</b><br><br> "
" </qt> " )
. arg ( originalVersion . prettyURL ( 0 , KURL : : StripFileProtocol ) )
. arg ( TDEIO : : convertSize ( origSize ) ) . arg ( origTime )
. arg ( TDEIO : : convertSize ( backupSize ) ) . arg ( backupTime ) ) ;
w - > buttonLoad - > setText ( i18n ( " &Restore the file from backup " ) ) ;
w - > buttonIgnore - > setText ( i18n ( " Do ¬ restore the file from backup " ) ) ;
delete w - > warningLabel ;
w - > warningLabel = 0L ;
w - > setMinimumHeight ( 320 ) ;
dlg - > adjustSize ( ) ;
if ( KStandardDirs : : findExe ( " kompare " ) . isEmpty ( ) | | isUntitledDocument )
{
w - > buttonCompare - > setEnabled ( false ) ;
w - > buttonLoad - > setChecked ( true ) ;
}
if ( dlg - > exec ( ) )
{
//backup the current version and restore it from the autosaved backup
KURL backupURL = originalVersion ;
backupURL . setPath ( backupURL . path ( ) + " . " + TQString : : number ( getpid ( ) , 10 ) + " .backup " ) ;
QExtFileInfo : : copy ( originalVersion , backupURL , - 1 , true , false , m_quanta ) ;
QExtFileInfo : : copy ( autosavedVersion , originalVersion , - 1 , true , false , m_quanta ) ;
//we save a list of autosaved file names so "KQApplicationPrivate::init()"
//can open them. If autosavedVersion.path().right(1) == "U" then we are recovering
//an untitled document
if ( isUntitledDocument )
m_quanta - > slotFileOpen ( autosavedVersion ,
m_quanta - > defaultEncoding ( ) ) ; // load initial files
else
recoveredFileNameList + = backedUpFileName ;
}
delete dlg ;
TQFile : : remove ( autosavedPath ) ; //we don't need the backup anymore
}
}
//remove the auto-backup file from the list
m_config - > setGroup ( " General Options " ) ;
TQStringList autosavedFilesEntryList = QuantaCommon : : readPathListEntry ( m_config , " List of autosaved files " ) ;
TQStringList : : Iterator entryIt = autosavedFilesEntryList . begin ( ) ;
while ( entryIt ! = autosavedFilesEntryList . end ( ) )
{
if ( ( * entryIt ) = = KURL : : fromPathOrURL ( autosavedPath ) . url ( ) )
entryIt = autosavedFilesEntryList . remove ( entryIt ) ;
else
+ + entryIt ;
}
m_config - > writePathEntry ( " List of autosaved files " , autosavedFilesEntryList ) ;
autosavedUrlsList = autosavedFilesEntryList ;
}
if ( notFound )
{
//remove processed items
m_config - > setGroup ( " General Options " ) ;
TQStringList backedupFilesEntryList = QuantaCommon : : readPathListEntry ( m_config , " List of backedup files " ) ;
TQStringList : : Iterator entryIt = backedupFilesEntryList . begin ( ) ;
while ( entryIt ! = backedupFilesEntryList . end ( ) )
{
if ( ( * entryIt ) = = ( * backedUpUrlsIt ) )
entryIt = backedupFilesEntryList . remove ( entryIt ) ;
else
+ + entryIt ;
}
m_config - > writePathEntry ( " List of backedup files " , backedupFilesEntryList ) ;
}
}
//clean up auto-backup list, just in case of an old Quanta was used before
TQStringList : : Iterator entryIt = autosavedUrlsList . begin ( ) ;
while ( entryIt ! = autosavedUrlsList . end ( ) )
{
TQString quPID = retrievePID ( ( * entryIt ) ) ;
//check if the file is opened by another running Quanta or not
bool isOrphan = true ;
TQStringList : : ConstIterator PIDEndIt = m_PIDlist . constEnd ( ) ;
for ( TQStringList : : ConstIterator PIDIt = m_PIDlist . constBegin ( ) ; PIDIt ! = PIDEndIt ; + + PIDIt )
{
if ( ( * PIDIt ) = = quPID & & qConfig . quantaPID ! = quPID )
{
isOrphan = false ; //the file is opened
break ;
}
}
if ( isOrphan )
entryIt = autosavedUrlsList . remove ( entryIt ) ;
else
+ + entryIt ;
}
m_config - > writePathEntry ( " List of autosaved files " , autosavedUrlsList ) ;
}
void QuantaInit : : execCommandPS ( const TQString & cmd )
{
//We create a TDEProcess that executes the "ps" *nix command to get the PIDs of the
//other instances of quanta actually running
TDEProcess * execCommand = new TDEProcess ( ) ;
* ( execCommand ) < < TQStringList : : split ( " " , cmd ) ;
connect ( execCommand , TQT_SIGNAL ( receivedStdout ( TDEProcess * , char * , int ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotGetScriptOutput ( TDEProcess * , char * , int ) ) ) ;
connect ( execCommand , TQT_SIGNAL ( receivedStderr ( TDEProcess * , char * , int ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotGetScriptError ( TDEProcess * , char * , int ) ) ) ;
connect ( execCommand , TQT_SIGNAL ( processExited ( TDEProcess * ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotProcessExited ( TDEProcess * ) ) ) ;
if ( ! execCommand - > start ( TDEProcess : : NotifyOnExit , TDEProcess : : All ) )
{
KMessageBox : : error ( m_quanta , i18n ( " Failed to query for running Quanta instances. " ) ) ;
}
else
{
//To avoid lock-ups, start a timer.
TQTimer * timer = new TQTimer ( m_quanta ) ;
connect ( timer , TQT_SIGNAL ( timeout ( ) ) ,
TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotProcessTimeout ( ) ) ) ;
timer - > start ( 180 * 1000 , true ) ;
QExtFileInfo internalFileInfo ;
m_quanta - > m_loopStarted = true ;
internalFileInfo . enter_loop ( ) ;
delete timer ;
}
}
TQString QuantaInit : : searchPathListEntry ( const TQString & url , const TQStringList & autosavedUrlsList , bool & notFound )
{
TQString backedUpUrlHashedPath = retrieveHashedPath ( ' . ' + Document : : hashFilePath ( url ) ) ;
notFound = true ;
TQStringList : : ConstIterator autosavedUrlsEndIt = autosavedUrlsList . constEnd ( ) ;
for ( TQStringList : : ConstIterator autosavedUrlsIt = autosavedUrlsList . constBegin ( ) ;
autosavedUrlsIt ! = autosavedUrlsEndIt ;
+ + autosavedUrlsIt )
{
TQString quPID = retrievePID ( ( * autosavedUrlsIt ) ) ;
//check if the file is opened by another running Quanta or not
bool isOrphan = true ;
TQStringList : : ConstIterator PIDEndIt = m_PIDlist . constEnd ( ) ;
for ( TQStringList : : ConstIterator PIDIt = m_PIDlist . constBegin ( ) ; PIDIt ! = PIDEndIt ; + + PIDIt )
{
if ( ( * PIDIt ) = = quPID & & qConfig . quantaPID ! = quPID )
{
isOrphan = false ; //the file is opened
break ;
}
}
if ( backedUpUrlHashedPath = = retrieveHashedPath ( ( * autosavedUrlsIt ) ) )
{
notFound = false ;
if ( isOrphan )
return KURL : : fromPathOrURL ( * autosavedUrlsIt ) . path ( ) ; //the url was autosaved to this file
}
}
return TQString ( ) ;
}
/** Retrieves hashed path from the name of a backup file */
TQString QuantaInit : : retrieveHashedPath ( const TQString & filename )
{
int lastPoint = filename . findRev ( " . " ) ;
int Ppos = filename . find ( " P " , lastPoint ) ;
return filename . mid ( lastPoint + 1 ,
Ppos - lastPoint ) ;
}
/** Retrieves PID from the name of a backup file */
TQString QuantaInit : : retrievePID ( const TQString & filename )
{
TQString strPID = TQString ( ) ;
strPID = filename . mid ( filename . findRev ( " P " ) + 1 ) ;
if ( strPID . isEmpty ( ) )
strPID = filename . mid ( filename . findRev ( " N " ) + 1 ) ;
if ( strPID . endsWith ( " U " ) )
strPID = strPID . left ( strPID . length ( ) - 1 ) ;
return strPID ;
}
void QuantaInit : : loadVPLConfig ( )
{
//load the VPL options
m_config - > setGroup ( " Kafka Synchronization options " ) ;
qConfig . quantaRefreshOnFocus = ( m_config - > readEntry ( " Source refresh " , " delay " ) = = " focus " ) ;
qConfig . quantaRefreshDelay = m_config - > readNumEntry ( " Source refresh delay " , 500 ) ;
qConfig . kafkaRefreshOnFocus = ( m_config - > readEntry ( " Kafka refresh " , " focus " ) = = " focus " ) ;
qConfig . kafkaRefreshDelay = m_config - > readNumEntry ( " Kafka refresh delay " , 4000 ) ;
/**reloadUpdateTimers();*/
m_config - > setGroup ( " Kafka Indentation options " ) ;
qConfig . inlineNodeIndentation = m_config - > readBoolEntry ( " Inline Node Indentation " ) ;
}
struct Dependency {
TQString name ;
TQString execName ;
TQString url ;
TQString description ;
enum Type {
Executable = 0 ,
Plugin
} ;
Type type ;
} ;
void QuantaInit : : checkRuntimeDependencies ( )
{
TQValueList < Dependency > dependencies ;
Dependency dependency ;
dependency . name = " Kommander " ;
dependency . execName = " kmdr-executor " ;
dependency . url = " http://kommander.tdewebdev.org " ;
dependency . description = i18n ( " various script based dialogs including the Quick Start dialog " ) ;
dependency . type = Dependency : : Executable ;
dependencies . append ( dependency ) ;
dependency . name = " Tidy " ;
dependency . execName = " tidy " ;
dependency . url = " http://tidy.sourceforge.net " ;
dependency . description = i18n ( " HTML syntax checking " ) ;
dependency . type = Dependency : : Executable ;
dependencies . append ( dependency ) ;
dependency . name = " Kompare " ;
dependency . execName = " kompare " ;
dependency . url = " http://bruggie.dnsalias.org/kompare " ;
dependency . description = i18n ( " comparing of files by content " ) ;
dependency . type = Dependency : : Executable ;
dependencies . append ( dependency ) ;
dependency . name = i18n ( " Control Center (tdebase) " ) ;
dependency . execName = " tdecmshell " ;
dependency . url = " http://www.kde.org " ;
dependency . description = i18n ( " preview browser configuration " ) ;
dependency . type = Dependency : : Executable ;
dependencies . append ( dependency ) ;
dependency . name = " GPG (OpenPGP) " ;
dependency . execName = " gpg " ;
dependency . url = " http://www.gnupg.de " ;
dependency . description = i18n ( " preview browser configuration " ) ;
dependency . type = Dependency : : Executable ;
dependencies . append ( dependency ) ;
dependency . name = " KFileReplace " ;
dependency . execName = " KFileReplace " ;
dependency . url = " http://tdefilereplace.tdewebdev.org " ;
dependency . description = i18n ( " search and replace in files " ) ;
dependency . type = Dependency : : Plugin ;
dependencies . append ( dependency ) ;
dependency . name = " KXSLDbg " ;
dependency . execName = " XSLT Debugger " ;
dependency . url = " http://xsldbg.sourceforge.net/ " ;
dependency . description = i18n ( " XSLT debugging " ) ;
dependency . type = Dependency : : Plugin ;
dependencies . append ( dependency ) ;
dependency . name = " KImageMapEditor " ;
dependency . execName = " KImageMapEditor " ;
dependency . url = " http://www.nongnu.org/kimagemap/ " ;
dependency . description = i18n ( " editing HTML image maps " ) ;
dependency . type = Dependency : : Plugin ;
dependencies . append ( dependency ) ;
dependency . name = " KLinkStatus " ;
dependency . execName = " Link Checker " ;
dependency . url = " http://kde-apps.org/content/show.php?content=12318 " ;
dependency . description = i18n ( " link validity checking " ) ;
dependency . type = Dependency : : Plugin ;
dependencies . append ( dependency ) ;
dependency . name = " Cervisia " ;
dependency . execName = " CVS Management (Cervisia) " ;
dependency . url = " http://www.kde.org/apps/cervisia " ;
dependency . description = i18n ( " CVS management plugin " ) ;
dependency . type = Dependency : : Plugin ;
dependencies . append ( dependency ) ;
TQString errorStr ;
TQString stdErrorMsg = i18n ( " <br><b>- %1</b> [<i>%2</i>] - %3 will not be available; " ) ;
for ( TQValueList < Dependency > : : ConstIterator it = dependencies . constBegin ( ) ; it ! = dependencies . constEnd ( ) ; + + it )
{
dependency = * it ;
if ( dependency . type = = Dependency : : Executable )
{
if ( KStandardDirs : : findExe ( dependency . execName ) . isNull ( ) )
errorStr + = TQString ( stdErrorMsg ) . arg ( dependency . name ) . arg ( dependency . url ) . arg ( dependency . description ) ;
} else
if ( dependency . type = = Dependency : : Plugin )
{
if ( ! QuantaPlugin : : validatePlugin ( m_quanta - > m_pluginInterface - > plugin ( dependency . execName ) ) )
errorStr + = TQString ( stdErrorMsg ) . arg ( dependency . name ) . arg ( dependency . url ) . arg ( dependency . description ) ;
}
}
# ifdef ENABLE_CVSSERVICE
TQString error ;
TQCString appId ;
TDEApplication : : startServiceByDesktopName ( " cvsservice " , TQStringList ( ) , & error ,
& appId ) ;
if ( appId . isEmpty ( ) )
{
errorStr + = TQString ( stdErrorMsg ) . arg ( " Cervisia (cvsservice) " ) . arg ( " http://www.kde.org/apps/cervisia " ) . arg ( i18n ( " integrated CVS management " ) ) ;
} else
{
CVSService : : ref ( m_quanta - > actionCollection ( ) ) - > setAppId ( appId ) ;
connect ( CVSService : : ref ( ) , TQT_SIGNAL ( clearMessages ( ) ) , m_quanta - > m_messageOutput , TQT_SLOT ( clear ( ) ) ) ;
connect ( CVSService : : ref ( ) , TQT_SIGNAL ( showMessage ( const TQString & , bool ) ) , m_quanta - > m_messageOutput , TQT_SLOT ( showMessage ( const TQString & , bool ) ) ) ;
connect ( CVSService : : ref ( ) , TQT_SIGNAL ( commandExecuted ( const TQString & , const TQStringList & ) ) , TQT_TQOBJECT ( m_quanta ) , TQT_SLOT ( slotCVSCommandExecuted ( const TQString & , const TQStringList & ) ) ) ;
//connect(CVSService::ref(), TQT_SIGNAL(statusMsg(const TQString &)), TQT_TQOBJECT(m_quanta), TQT_SLOT(slotStatusMsg(const TQString & )));
m_quanta - > fTab - > plugCVSMenu ( ) ;
pTab - > plugCVSMenu ( ) ;
}
# endif
if ( ! errorStr . isEmpty ( ) )
{
m_quanta - > slotHideSplash ( ) ;
errorStr [ errorStr . length ( ) - 1 ] = ' . ' ;
KMessageBox : : information ( m_quanta , " <qt> " + i18n ( " Some applications required for full functionality are missing:<br> " ) + errorStr + i18n ( " <br><br>You may download the applications from the specified locations.</qt> " ) , i18n ( " Missing Applications " ) , " RuntimeDependencyCheck " ) ;
}
}
void QuantaInit : : readAbbreviations ( )
{
TQDomDocument doc ;
TQString groupName ;
bool mainAbbrevFileFound = false ;
TQStringList mainFileList ;
mainFileList < < qConfig . globalDataDir + resourceDir + " abbreviations.xml " ;
mainFileList < < TDEGlobal : : dirs ( ) - > saveLocation ( " data " ) + resourceDir + " abbreviations.xml " ;
for ( uint i = 0 ; i < mainFileList . count ( ) ; i + + )
{
if ( ! TQFile : : exists ( mainFileList [ i ] ) )
continue ;
TQFile file ( mainFileList [ i ] ) ;
if ( file . open ( IO_ReadOnly ) )
{
if ( doc . setContent ( & file ) )
{
TQDomNodeList groupList = doc . elementsByTagName ( " Group " ) ;
for ( uint groupIdx = 0 ; groupIdx < groupList . count ( ) ; groupIdx + + )
{
Abbreviation abbrev ;
TQDomElement el = groupList . item ( groupIdx ) . toElement ( ) ;
groupName = el . attribute ( " name " ) ;
TQDomNodeList dtepList = el . elementsByTagName ( " DTEP " ) ;
for ( uint dtepListIdx = 0 ; dtepListIdx < dtepList . count ( ) ; dtepListIdx + + )
{
abbrev . dteps . append ( dtepList . item ( dtepListIdx ) . toElement ( ) . attribute ( " name " ) ) ;
}
TQDomNodeList nodeList = el . elementsByTagName ( " Template " ) ;
for ( uint nodeIdx = 0 ; nodeIdx < nodeList . count ( ) ; nodeIdx + + )
{
TQDomElement e = nodeList . item ( nodeIdx ) . toElement ( ) ;
abbrev . abbreviations . insert ( e . attribute ( " name " ) + " " + e . attribute ( " description " ) , e . attribute ( " code " ) ) ;
}
qConfig . abbreviations . insert ( groupName , abbrev ) ;
}
}
mainAbbrevFileFound = true ;
file . close ( ) ;
}
}
if ( mainAbbrevFileFound ) return ;
//Compatibility code: read the abbreviations files from the DTEP directories
//TODO: Remove when upgrade from 3.2 is not supported.
TQStringList filenameList = DTDs : : ref ( ) - > fileNameList ( false ) ;
TQStringList : : Iterator it ;
for ( it = filenameList . begin ( ) ; it ! = filenameList . end ( ) ; + + it )
{
int pos = ( * it ) . find ( ' | ' ) ;
TQString dirName = ( * it ) . mid ( pos + 1 ) ;
TQString dtepName = ( * it ) . left ( pos ) ;
KURL dirURL ( dirName ) ;
dirURL . setFileName ( " " ) ;
dirName = dirURL . path ( 1 ) ;
TQString abbrevFile = dirName ;
TQString tmpStr = dirName ;
TQStringList resourceDirs = TDEGlobal : : dirs ( ) - > resourceDirs ( " data " ) ;
bool dirFound = false ;
for ( uint i = 0 ; i < resourceDirs . count ( ) ; i + + )
{
if ( tmpStr . startsWith ( resourceDirs [ i ] ) )
{
dirFound = true ;
tmpStr = tmpStr . right ( tmpStr . length ( ) - resourceDirs [ i ] . length ( ) ) ;
break ;
}
}
if ( dirFound )
{
abbrevFile = TDEGlobal : : dirs ( ) - > saveLocation ( " data " , tmpStr ) + " / " ;
}
abbrevFile . append ( " abbreviations " ) ;
if ( ! TQFile : : exists ( abbrevFile ) )
abbrevFile = dirName + " abbreviations " ;
TQFile f ( abbrevFile ) ;
if ( f . open ( IO_ReadOnly ) )
{
if ( doc . setContent ( & f ) )
{
Abbreviation abbrev ;
TQDomNodeList nodeList = doc . elementsByTagName ( " Template " ) ;
for ( uint i = 0 ; i < nodeList . count ( ) ; i + + )
{
TQDomElement e = nodeList . item ( i ) . toElement ( ) ;
abbrev . abbreviations . insert ( e . attribute ( " name " ) + " " + e . attribute ( " description " ) , e . attribute ( " code " ) ) ;
}
abbrev . dteps . append ( dtepName ) ;
qConfig . abbreviations . insert ( DTDs : : ref ( ) - > getDTDNickNameFromName ( dtepName ) , abbrev ) ;
}
f . close ( ) ;
}
}
}
int QuantaInit : : runningQuantas ( )
{
QCStringList list = kapp - > dcopClient ( ) - > registeredApplications ( ) ;
int i = 0 ;
for ( QCStringList : : iterator it = list . begin ( ) ; it ! = list . end ( ) ; + + it )
{
if ( TQString ( * it ) . startsWith ( " quanta " , false ) )
+ + i ;
}
return i ;
}
# include "quanta_init.moc"