diff options
Diffstat (limited to 'tqtinterface/qt4/tools/designer/editor/cindent.cpp')
| -rw-r--r-- | tqtinterface/qt4/tools/designer/editor/cindent.cpp | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/tqtinterface/qt4/tools/designer/editor/cindent.cpp b/tqtinterface/qt4/tools/designer/editor/cindent.cpp deleted file mode 100644 index ef4f748..0000000 --- a/tqtinterface/qt4/tools/designer/editor/cindent.cpp +++ /dev/null @@ -1,163 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000-2008 Trolltech ASA. All rights reserved. -** -** This file is part of TQt Designer. -** -** 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 "cindent.h" -#include "tqregexp.h" - -extern int indentForBottomLine( const TQStringList& program, TQChar typedIn ); -extern void setTabSize( int s ); -extern void setIndentSize( int s ); - -CIndent::CIndent() - : TQTextIndent(), tabSize( 8 ), indentSize( 4 ), - autoIndent( TRUE ), keepTabs( TRUE ), lastDoc( 0 ) -{ -} - -static int indentation( const TQString &s ) -{ - if ( s.simplifyWhiteSpace().length() == 0 ) - return 0; - int i = 0; - int ind = 0; - while ( i < (int)s.length() ) { - TQChar c = s.at( i ); - if ( c == ' ' ) - ind++; - else if ( c == '\t' ) - ind += 8; - else - break; - ++i; - } - return ind; -} - -void CIndent::tabify( TQString &s ) -{ - if ( !keepTabs ) - return; - int i = 0; - for ( ;; ) { - for ( int j = i; j < (int)s.length(); ++j ) { - if ( s[ j ] != ' ' && s[ j ] != '\t' ) { - if ( j > i ) { - TQString t = s.mid( i, j - i ); - int spaces = 0; - for ( int k = 0; k < (int)t.length(); ++k ) - spaces += ( t[ k ] == ' ' ? 1 : tabSize ); - s.remove( i, t.length() ); - int tabs = spaces / tabSize; - spaces = spaces - ( tabSize * tabs ); - TQString tmp; - tmp.fill( ' ', spaces ); - if ( spaces > 0 ) - s.insert( i, tmp ); - tmp.fill( '\t', tabs ); - if ( tabs > 0 ) - s.insert( i, tmp ); - } - break; - } - } - i = s.find( '\n', i ); - if ( i == -1 ) - break; - ++i; - } -} - -void CIndent::indentLine( TQTextParagraph *p, int &oldIndent, int &newIndent ) -{ - TQString indentString; - indentString.fill( ' ', newIndent ); - indentString.append( "a" ); - tabify( indentString ); - indentString.remove( indentString.length() - 1, 1 ); - newIndent = indentString.length(); - oldIndent = 0; - while ( p->length() > 0 && ( p->at( 0 )->c == ' ' || p->at( 0 )->c == '\t' ) ) { - ++oldIndent; - p->remove( 0, 1 ); - } - if ( p->string()->length() == 0 ) - p->append( " " ); - if ( !indentString.isEmpty() ) - p->insert( 0, indentString ); -} - - -void CIndent::indent( TQTextDocument *doc, TQTextParagraph *p, int *oldIndent, int *newIndent ) -{ - lastDoc = doc; - int oi = indentation( p->string()->toString() ); - TQStringList code; - TQTextParagraph *parag = doc->firstParagraph(); - while ( parag ) { - code << parag->string()->toString(); - if ( parag == p ) - break; - parag = parag->next(); - } - - int ind = indentForBottomLine( code, TQChar::null ); - indentLine( p, oi, ind ); - if ( oldIndent ) - *oldIndent = oi; - if ( newIndent ) - *newIndent = ind; -} - -void CIndent::reindent() -{ - if ( !lastDoc ) - return; - // #### this is sloooooooow (O(n^2)) - TQTextParagraph *parag = lastDoc->firstParagraph(); - while ( parag ) { - indent( lastDoc, parag, 0, 0 ); - parag = parag->next(); - } -} - -void CIndent::setTabSize( int ts ) -{ - tabSize = ts; - ::setTabSize( ts ); -} - -void CIndent::setIndentSize( int is ) -{ - indentSize = is; - ::setIndentSize( is ); -} |
