~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to tools/porting/src/textreplacement.h

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
 
4
**
 
5
** This file is part of the porting application of the Qt Toolkit.
 
6
**
 
7
** This file may be distributed under the terms of the Q Public License
 
8
** as defined by Trolltech AS of Norway and appearing in the file
 
9
** LICENSE.QPL included in the packaging of this file.
 
10
**
 
11
** This file may be distributed and/or modified under the terms of the
 
12
** GNU General Public License version 2 as published by the Free Software
 
13
** Foundation and appearing in the file LICENSE.GPL included in the
 
14
** packaging of this file.
 
15
**
 
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
 
17
**   information about Qt Commercial License Agreements.
 
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
 
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
 
20
**
 
21
** Contact info@trolltech.com if any conditions of this licensing are
 
22
** not clear to you.
 
23
**
 
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
26
**
 
27
****************************************************************************/
 
28
 
 
29
#ifndef TEXTREPLACEMENT_H
 
30
#define TEXTREPLACEMENT_H
 
31
 
 
32
#include <QByteArray>
 
33
#include <QList>
 
34
#include <qalgorithms.h>
 
35
 
 
36
class TextReplacement
 
37
{
 
38
public:
 
39
    QByteArray newText;
 
40
    int insertPosition;
 
41
    int currentLenght;    //lenght of the text that is going to be replaced.
 
42
    bool operator<(const TextReplacement &other) const
 
43
    {
 
44
        return  (insertPosition < other.insertPosition);
 
45
    }
 
46
};
 
47
 
 
48
class TextReplacements
 
49
{
 
50
public:
 
51
    /*
 
52
        creates a TextReplacement that inserts newText at insertPosition. currentLength bytes
 
53
        are overwritten in the original text. If there already is an insert at insertPosition,
 
54
        the insert will not be performed.
 
55
 
 
56
        insert maintains the TextReplacement list in sorted order.
 
57
 
 
58
        Returns true if the insert was successfull, false otherwise;
 
59
    */
 
60
    bool insert(QByteArray newText, int insertPosition, int currentLenght);
 
61
    void clear();
 
62
    QList<TextReplacement> replacements() const
 
63
    {
 
64
        return textReplacementList;
 
65
    }
 
66
    QByteArray apply(QByteArray current);
 
67
 
 
68
    TextReplacements &operator+=(const TextReplacements &other);
 
69
 
 
70
private:
 
71
    QList<TextReplacement> textReplacementList;
 
72
};
 
73
 
 
74
#endif