tools/qdoc3/polyuncompressor.cpp
changeset 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the tools applications of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 #include "command.h"
       
    43 #include "polyuncompressor.h"
       
    44 
       
    45 QT_BEGIN_NAMESPACE
       
    46 
       
    47 /*!
       
    48   \class PolyUncompressor
       
    49   
       
    50   \brief The PolyUncompressor class is a class for uncompressing
       
    51   compressed files.
       
    52 
       
    53   This subclass of Uncompressor contains a parameterized
       
    54   command for doing the uncompression
       
    55 
       
    56   It has an uncompressFile() function you call to do the
       
    57   actual uncompression.
       
    58  */
       
    59 
       
    60 /*!
       
    61   The constructor takes the list of filename \a extensions,
       
    62   which it passes to the base class, and the \a commandFormat,
       
    63   which it stores locally. The \a commandFormat is a command
       
    64   template string.
       
    65  */
       
    66 PolyUncompressor::PolyUncompressor( const QStringList& extensions,
       
    67 				    const QString& commandFormat )
       
    68     : Uncompressor( extensions ), cmd( commandFormat )
       
    69 {
       
    70 }
       
    71 
       
    72 /*!
       
    73   The destructor doesn't have to do anything.
       
    74  */
       
    75 PolyUncompressor::~PolyUncompressor()
       
    76 {
       
    77 }
       
    78 
       
    79 /*!
       
    80   From \a filePath, derive a file path for the uncompressed
       
    81   file and return it. If it can't figure out what the file
       
    82   path should be, it just concatenates ".out" to the
       
    83   \a filePath and returns that.
       
    84  */
       
    85 QString PolyUncompressor::uncompressedFilePath( const QString& filePath )
       
    86 {
       
    87     QStringList::ConstIterator e = fileExtensions().begin();
       
    88     while ( e != fileExtensions().end() ) {
       
    89 	QString dotExt = "." + *e;
       
    90 	if ( filePath.endsWith(dotExt) )
       
    91 	    return filePath.left( filePath.length() - dotExt.length() );
       
    92 	++e;
       
    93     }
       
    94     return filePath + ".out"; // doesn't really matter
       
    95 }
       
    96 
       
    97 /*!
       
    98   Call this function to do the actual uncompressing. It calls
       
    99   the executeCommand() function to do the work. That's all it does.
       
   100  */
       
   101 void PolyUncompressor::uncompressFile( const Location& location,
       
   102 				       const QString& filePath,
       
   103 				       const QString& outputFilePath )
       
   104 {
       
   105     executeCommand( location, cmd,
       
   106 		    QStringList() << filePath << outputFilePath );
       
   107 }
       
   108 
       
   109 QT_END_NAMESPACE