diff options
Diffstat (limited to 'tqtinterface/qt4/tools/assistant/main.cpp')
-rw-r--r-- | tqtinterface/qt4/tools/assistant/main.cpp | 344 |
1 files changed, 0 insertions, 344 deletions
diff --git a/tqtinterface/qt4/tools/assistant/main.cpp b/tqtinterface/qt4/tools/assistant/main.cpp deleted file mode 100644 index 2c861c8..0000000 --- a/tqtinterface/qt4/tools/assistant/main.cpp +++ /dev/null @@ -1,344 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the TQt Assistant. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** Licensees holding valid TQt Commercial licenses may use this file in -** accordance with the TQt Commercial License Agreement provided with -** the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "mainwindow.h" -#include "helpdialogimpl.h" -#include "config.h" - -#include <tqapplication.h> -#include <tqserversocket.h> -#include <tqsocket.h> -#include <tqpixmap.h> -#include <tqptrlist.h> -#include <tqstringlist.h> -#include <tqdir.h> -#include <tqmessagebox.h> -#include <tqguardedptr.h> -#include <stdlib.h> -#include <stdio.h> -#include <tqtextcodec.h> - -#ifdef TQ_WS_WIN -#define INDEX_CHECK( text ) if( i+1 >= argc ) { TQMessageBox::information( 0, "TQt Assistant", text ); return 1; } -#else -#define INDEX_CHECK( text ) if( i+1 >= argc ) { fprintf( stderr, text "\n" ); return 1; } -#endif - -static bool allowFirstRun = TRUE; - -class AssistantSocket : public TQSocket -{ - Q_OBJECT - TQ_OBJECT -public: - AssistantSocket( int sock, TQObject *parent = 0 ); - ~AssistantSocket() {} - -Q_SIGNALS: - void showLinkRequest( const TQString& ); - -private Q_SLOTS: - void readClient(); - void connectionClosed(); -}; - - -class AssistantServer : public TQServerSocket -{ - Q_OBJECT - TQ_OBJECT -public: - AssistantServer( TQObject* parent = 0 ); - void newConnection( int socket ); - TQ_UINT16 getPort() const; - -Q_SIGNALS: - void showLinkRequest( const TQString& ); - void newConnect(); - -private: - TQ_UINT16 p; -}; - - -AssistantSocket::AssistantSocket( int sock, TQObject *parent ) - : TQSocket( parent, 0 ) -{ - connect( this, TQT_SIGNAL( readyRead() ), - TQT_SLOT( readClient() ) ); - connect( this, TQT_SIGNAL( connectionClosed() ), - TQT_SLOT( connectionClosed() ) ); - setSocket( sock ); -} - -void AssistantSocket::readClient() -{ - TQString link = TQString(); - while ( canReadLine() ) - link = readLine(); - if ( !link.isNull() ) { - link = link.replace( "\n", "" ); - link = link.replace( "\r", "" ); - emit showLinkRequest( link ); - } -} - -void AssistantSocket::connectionClosed() -{ - delete this; -} - -AssistantServer::AssistantServer( TQObject *parent ) - : TQServerSocket( 0x7f000001, 0, 1, parent ) -{ - if ( !ok() ) { - TQMessageBox::critical( 0, tr( "TQt Assistant" ), - tr( "Failed to bind to port %1" ).arg( port() ) ); - exit( 1 ); - } - p = port(); -} - -TQ_UINT16 AssistantServer::getPort() const -{ - return p; -} - -void AssistantServer::newConnection( int socket ) -{ - AssistantSocket *as = new AssistantSocket( socket, this ); - connect( as, TQT_SIGNAL( showLinkRequest( const TQString& ) ), - this, TQT_SIGNAL( showLinkRequest( const TQString& ) ) ); - emit newConnect(); -} - -int main( int argc, char ** argv ) -{ - bool withGUI = TRUE; - if ( argc > 1 ) { - TQString arg( argv[1] ); - arg = arg.lower(); - if ( arg == "-addcontentfile" - || arg == "-removecontentfile" -#ifndef TQ_WS_WIN - || arg == "-help" -#endif - ) - withGUI = FALSE; - } - TQApplication a(argc, argv, withGUI); - - TQString resourceDir; - AssistantServer *as = 0; - TQStringList catlist; - TQString file, profileName, aDocPath; - bool server = FALSE; - bool hideSidebar = FALSE; - bool startClean = FALSE; - bool configLoaded = FALSE; - if ( argc == 2 ) { - if ( (argv[1])[0] != '-' ) - file = argv[1]; - } - if ( file.isEmpty() ) { - for ( int i = 1; i < argc; i++ ) { - if ( TQString( argv[i] ).lower() == "-file" ) { - INDEX_CHECK( "Missing file argument!" ); - i++; - file = argv[i]; - } else if ( TQString( argv[i] ).lower() == "-server" ) { - server = TRUE; - } else if ( TQString( argv[i] ).lower() == "-profile" ) { - INDEX_CHECK( "Missing profile argument!" ); - profileName = argv[++i]; - } else if ( TQString( argv[i] ).lower() == "-addcontentfile" ) { - INDEX_CHECK( "Missing content file!" ); - Config *c = Config::loadConfig( TQString() ); - TQFileInfo file( argv[i+1] ); - if( !file.exists() ) { - fprintf( stderr, "Could not locate content file: '%s'\n", - file.absFilePath().latin1() ); - fflush( stderr ); - return 1; - } - DocuParser *parser = DocuParser::createParser( file.absFilePath() ); - if( parser ) { - TQFile f( argv[i+1] ); - if( !parser->parse( &f ) ) { - fprintf( stderr, "Failed to parse file: '%s'\n, ", - file.absFilePath().latin1() ); - fflush( stderr ); - return 1; - } - parser->addTo( c->profile() ); - c->setDocRebuild( TRUE ); - c->save(); - } - return 0; - } else if ( TQString( argv[i] ).lower() == "-removecontentfile" ) { - INDEX_CHECK( "Missing content file!" ); - Config *c = Config::loadConfig( TQString() ); - Profile *profile = c->profile(); - TQStringList entries = profile->docs.grep(argv[i+1]); - if (entries.count() == 0) { - fprintf(stderr, "Could not locate content file: '%s'\n", - argv[i+1]); - fflush(stderr); - return 1; - } else if (entries.count() > 1) { - fprintf(stderr, "More than one entry matching file name found, " - "please specify full path to file"); - fflush(stderr); - return 1; - } else { - TQFileInfo file(entries[0]); - if( !file.exists() ) { - fprintf( stderr, "Could not locate content file: '%s'\n", - file.absFilePath().latin1() ); - fflush( stderr ); - return 1; - } - profile->removeDocFileEntry( file.absFilePath() ); - c->setDocRebuild( TRUE ); - c->save(); - } - return 0; - } else if ( TQString( argv[i] ).lower() == "-docpath" ) { - INDEX_CHECK( "Missing path!" ); - TQDir dir( argv[i+1] ); - if ( dir.exists() ) { - Config *c = Config::loadConfig( TQString() ); - c->saveProfile(Profile::createDefaultProfile(dir.absPath())); - c->loadDefaultProfile(); - c->setDocRebuild( TRUE ); - c->save(); - configLoaded = TRUE; - ++i; - } else { - fprintf( stderr, "The specified path does not exist!\n"); - fflush( stderr ); - return 1; - } - } else if ( TQString( argv[i] ).lower() == "-hidesidebar" ) { - hideSidebar = TRUE; - } else if ( TQString( argv[i] ).lower() == "-help" ) { - TQString helpText( "Usage: assistant [option]\n" - "Options:\n" - " -file Filename assistant opens the specified file\n" - " -server reads commands from a socket after\n" - " assistant has started\n" - " -profile fileName starts assistant and displays the\n" - " profile specified in the file fileName.\n" - " -addContentFile file adds the content file 'file' to the set of\n" - " documentation available by default\n" - " -removeContentFile file removes the content file 'file' from the\n" - " documentation available by default\n" - " -docPath path sets the TQt documentation root path to\n" - " 'path' and starts assistant\n" - " -hideSidebar assistant will hide the sidebar.\n" - " -resourceDir assistant will load translations from\n" - " this directory.\n" - " -help shows this help."); -#ifdef TQ_WS_WIN - TQMessageBox::information( 0, "TQt Assistant", "<pre>" + helpText + "</pre>" ); -#else - printf( "%s\n", helpText.latin1() ); -#endif - exit( 0 ); - } else if ( TQString( argv[i] ).lower() == "-resourcedir" ) { - INDEX_CHECK( "Missing resource directory argument!" ); - resourceDir = TQString( argv[++i] ); - } else { - fprintf( stderr, "Unrecognized option '%s'. Try -help to get help.\n", - argv[i] ); - fflush( stderr ); - return 1; - } - } - } - - if( resourceDir.isNull() ) - resourceDir = qInstallPathTranslations(); - - TQTranslator translator( 0 ); - translator.load( TQString("assistant_") + TQTextCodec::locale(), resourceDir ); - a.installTranslator( &translator ); - - TQTranslator qtTranslator( 0 ); - qtTranslator.load( TQString("qt_") + TQTextCodec::locale(), resourceDir ); - a.installTranslator( &qtTranslator ); - - - Config *conf = 0; - if (configLoaded) - conf = Config::configuration(); - else - conf = Config::loadConfig( profileName ); - if (!conf) { - fprintf( stderr, "Profile '%s' does not exist!\n", profileName.latin1() ); - fflush( stderr ); - return -1; - } - - bool max = conf->isMaximized(); - TQStringList links = conf->source(); - conf->hideSideBar( hideSidebar ); - - TQGuardedPtr<MainWindow> mw = new MainWindow( 0, "Assistant" ); - - if ( server ) { - as = new AssistantServer(); - printf("%d\n", as->port() ); - fflush( stdout ); - as->connect( as, TQT_SIGNAL( showLinkRequest( const TQString& ) ), - mw, TQT_SLOT( showLinkFromClient( const TQString& ) ) ); - } - - if ( max ) - mw->showMaximized(); - else - mw->show(); - - if ( !file.isEmpty() ) - mw->showLink( file ); - else if ( file.isEmpty() ) - mw->showLinks( links ); - - a.connect( &a, TQT_SIGNAL( lastWindowClosed() ), &a, TQT_SLOT( quit() ) ); - - int appExec = a.exec(); - delete (MainWindow*)mw; - return appExec; -} - -#include "main.tqmoc" |