joachim99@69
|
1 /***************************************************************************
|
joachim99@69
|
2 difftextwindow.h - description
|
joachim99@69
|
3 -------------------
|
joachim99@69
|
4 begin : Mon Mar 18 2002
|
joachim99@77
|
5 copyright : (C) 2002-2007 by Joachim Eibl
|
joachim99@69
|
6 email : joachim.eibl at gmx.de
|
joachim99@69
|
7 ***************************************************************************/
|
joachim99@69
|
8
|
joachim99@69
|
9 /***************************************************************************
|
joachim99@69
|
10 * *
|
joachim99@69
|
11 * This program is free software; you can redistribute it and/or modify *
|
joachim99@69
|
12 * it under the terms of the GNU General Public License as published by *
|
joachim99@69
|
13 * the Free Software Foundation; either version 2 of the License, or *
|
joachim99@69
|
14 * (at your option) any later version. *
|
joachim99@69
|
15 * *
|
joachim99@69
|
16 ***************************************************************************/
|
joachim99@69
|
17
|
joachim99@69
|
18 #ifndef DIFFTEXTWINDOW_H
|
joachim99@69
|
19 #define DIFFTEXTWINDOW_H
|
joachim99@69
|
20
|
joachim99@69
|
21 #include "diff.h"
|
joachim99@69
|
22
|
joachim99@75
|
23 #include <QWidget>
|
joachim99@69
|
24
|
joachim99@69
|
25 class QStatusBar;
|
joachim99@69
|
26 class OptionDialog;
|
joachim99@69
|
27 class DiffTextWindowData;
|
joachim99@69
|
28 class DiffTextWindowFrame;
|
joachim99@69
|
29
|
joachim99@69
|
30 class DiffTextWindow : public QWidget
|
joachim99@69
|
31 {
|
joachim99@69
|
32 Q_OBJECT
|
joachim99@69
|
33 public:
|
joachim99@69
|
34 DiffTextWindow(
|
joachim99@69
|
35 DiffTextWindowFrame* pParent,
|
joachim99@69
|
36 QStatusBar* pStatusBar,
|
joachim99@69
|
37 OptionDialog* pOptionDialog,
|
joachim99@69
|
38 int winIdx
|
joachim99@69
|
39 );
|
joachim99@69
|
40 ~DiffTextWindow();
|
joachim99@69
|
41 void init(
|
joachim99@69
|
42 const QString& fileName,
|
joachim99@92
|
43 QTextCodec* pCodec,
|
joachim99@92
|
44 e_LineEndStyle eLineEndStyle,
|
joachim99@69
|
45 const LineData* pLineData,
|
joachim99@69
|
46 int size,
|
joachim99@69
|
47 const Diff3LineVector* pDiff3LineVector,
|
joachim99@69
|
48 const ManualDiffHelpList* pManualDiffHelpList,
|
joachim99@69
|
49 bool bTriple
|
joachim99@69
|
50 );
|
joachim99@69
|
51 void reset();
|
joachim99@69
|
52 void convertToLinePos( int x, int y, int& line, int& pos );
|
joachim99@69
|
53
|
joachim99@69
|
54 QString getSelection();
|
joachim99@69
|
55 int getFirstLine();
|
joachim99@69
|
56 int calcTopLineInFile( int firstLine );
|
joachim99@69
|
57
|
joachim99@69
|
58 int getNofColumns();
|
joachim99@69
|
59 int getNofLines();
|
joachim99@69
|
60 int getNofVisibleLines();
|
joachim99@69
|
61 int getNofVisibleColumns();
|
joachim99@69
|
62
|
joachim99@69
|
63 int convertLineToDiff3LineIdx( int line );
|
joachim99@69
|
64 int convertDiff3LineIdxToLine( int d3lIdx );
|
joachim99@69
|
65
|
joachim99@69
|
66 void convertD3LCoordsToLineCoords( int d3LIdx, int d3LPos, int& line, int& pos );
|
joachim99@69
|
67 void convertLineCoordsToD3LCoords( int line, int pos, int& d3LIdx, int& d3LPos );
|
joachim99@69
|
68
|
joachim99@69
|
69 void convertSelectionToD3LCoords();
|
joachim99@69
|
70
|
joachim99@69
|
71 bool findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive );
|
joachim99@69
|
72 void setSelection( int firstLine, int startPos, int lastLine, int endPos, int& l, int& p );
|
joachim99@69
|
73 void getSelectionRange( int* firstLine, int* lastLine, e_CoordType coordType );
|
joachim99@69
|
74
|
joachim99@69
|
75 void setPaintingAllowed( bool bAllowPainting );
|
joachim99@69
|
76 void recalcWordWrap( bool bWordWrap, int wrapLineVectorSize, int nofVisibleColumns );
|
joachim99@69
|
77 void print( MyPainter& painter, const QRect& r, int firstLine, int nofLinesPerPage );
|
joachim99@69
|
78 signals:
|
joachim99@69
|
79 void resizeSignal( int nofVisibleColumns, int nofVisibleLines );
|
joachim99@69
|
80 void scroll( int deltaX, int deltaY );
|
joachim99@69
|
81 void newSelection();
|
joachim99@69
|
82 void selectionEnd();
|
joachim99@69
|
83 void setFastSelectorLine( int line );
|
joachim99@69
|
84 void gotFocus();
|
joachim99@69
|
85 void lineClicked( int winIdx, int line );
|
joachim99@69
|
86
|
joachim99@69
|
87 public slots:
|
joachim99@69
|
88 void setFirstLine( int line );
|
joachim99@69
|
89 void setFirstColumn( int col );
|
joachim99@69
|
90 void resetSelection();
|
joachim99@69
|
91 void setFastSelectorRange( int line1, int nofLines );
|
joachim99@69
|
92
|
joachim99@69
|
93 protected:
|
joachim99@69
|
94 virtual void mousePressEvent ( QMouseEvent * );
|
joachim99@69
|
95 virtual void mouseReleaseEvent ( QMouseEvent * );
|
joachim99@69
|
96 virtual void mouseMoveEvent ( QMouseEvent * );
|
joachim99@69
|
97 virtual void mouseDoubleClickEvent ( QMouseEvent * e );
|
joachim99@69
|
98
|
joachim99@69
|
99 virtual void paintEvent( QPaintEvent* );
|
joachim99@69
|
100 virtual void dragEnterEvent( QDragEnterEvent* e );
|
joachim99@69
|
101 virtual void focusInEvent( QFocusEvent* e );
|
joachim99@69
|
102
|
joachim99@69
|
103 virtual void resizeEvent( QResizeEvent* );
|
joachim99@69
|
104 virtual void timerEvent(QTimerEvent*);
|
joachim99@69
|
105
|
joachim99@69
|
106 private:
|
joachim99@69
|
107 DiffTextWindowData* d;
|
joachim99@69
|
108 void showStatusLine( int line );
|
joachim99@69
|
109 friend class DiffTextWindowFrame;
|
joachim99@69
|
110 };
|
joachim99@69
|
111
|
joachim99@69
|
112
|
joachim99@69
|
113 class DiffTextWindowFrameData;
|
joachim99@69
|
114
|
joachim99@69
|
115 class DiffTextWindowFrame : public QWidget
|
joachim99@69
|
116 {
|
joachim99@69
|
117 Q_OBJECT
|
joachim99@69
|
118 public:
|
joachim99@69
|
119 DiffTextWindowFrame( QWidget* pParent, QStatusBar* pStatusBar, OptionDialog* pOptionDialog, int winIdx );
|
joachim99@69
|
120 ~DiffTextWindowFrame();
|
joachim99@69
|
121 DiffTextWindow* getDiffTextWindow();
|
joachim99@69
|
122 void init();
|
joachim99@69
|
123 void setFirstLine(int firstLine);
|
joachim99@69
|
124 signals:
|
joachim99@69
|
125 void fileNameChanged(const QString&, int);
|
joachim99@69
|
126 protected:
|
joachim99@69
|
127 bool eventFilter( QObject*, QEvent* );
|
joachim99@75
|
128 //void paintEvent(QPaintEvent*);
|
joachim99@69
|
129 private slots:
|
joachim99@69
|
130 void slotReturnPressed();
|
joachim99@69
|
131 void slotBrowseButtonClicked();
|
joachim99@69
|
132 private:
|
joachim99@69
|
133 DiffTextWindowFrameData* d;
|
joachim99@69
|
134 };
|
joachim99@69
|
135
|
joachim99@69
|
136
|
joachim99@69
|
137 #endif
|
joachim99@69
|
138
|