joachim99@69
|
1 /***************************************************************************
|
joachim99@69
|
2 difftextwindow.h - description
|
joachim99@69
|
3 -------------------
|
joachim99@69
|
4 begin : Mon Mar 18 2002
|
joachim99@69
|
5 copyright : (C) 2002-2005 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@69
|
43 const LineData* pLineData,
|
joachim99@69
|
44 int size,
|
joachim99@69
|
45 const Diff3LineVector* pDiff3LineVector,
|
joachim99@69
|
46 const ManualDiffHelpList* pManualDiffHelpList,
|
joachim99@69
|
47 bool bTriple
|
joachim99@69
|
48 );
|
joachim99@69
|
49 void reset();
|
joachim99@69
|
50 void convertToLinePos( int x, int y, int& line, int& pos );
|
joachim99@69
|
51
|
joachim99@69
|
52 QString getSelection();
|
joachim99@69
|
53 int getFirstLine();
|
joachim99@69
|
54 int calcTopLineInFile( int firstLine );
|
joachim99@69
|
55
|
joachim99@69
|
56 int getNofColumns();
|
joachim99@69
|
57 int getNofLines();
|
joachim99@69
|
58 int getNofVisibleLines();
|
joachim99@69
|
59 int getNofVisibleColumns();
|
joachim99@69
|
60
|
joachim99@69
|
61 int convertLineToDiff3LineIdx( int line );
|
joachim99@69
|
62 int convertDiff3LineIdxToLine( int d3lIdx );
|
joachim99@69
|
63
|
joachim99@69
|
64 void convertD3LCoordsToLineCoords( int d3LIdx, int d3LPos, int& line, int& pos );
|
joachim99@69
|
65 void convertLineCoordsToD3LCoords( int line, int pos, int& d3LIdx, int& d3LPos );
|
joachim99@69
|
66
|
joachim99@69
|
67 void convertSelectionToD3LCoords();
|
joachim99@69
|
68
|
joachim99@69
|
69 bool findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive );
|
joachim99@69
|
70 void setSelection( int firstLine, int startPos, int lastLine, int endPos, int& l, int& p );
|
joachim99@69
|
71 void getSelectionRange( int* firstLine, int* lastLine, e_CoordType coordType );
|
joachim99@69
|
72
|
joachim99@69
|
73 void setPaintingAllowed( bool bAllowPainting );
|
joachim99@69
|
74 void recalcWordWrap( bool bWordWrap, int wrapLineVectorSize, int nofVisibleColumns );
|
joachim99@69
|
75 void print( MyPainter& painter, const QRect& r, int firstLine, int nofLinesPerPage );
|
joachim99@69
|
76 signals:
|
joachim99@69
|
77 void resizeSignal( int nofVisibleColumns, int nofVisibleLines );
|
joachim99@69
|
78 void scroll( int deltaX, int deltaY );
|
joachim99@69
|
79 void newSelection();
|
joachim99@69
|
80 void selectionEnd();
|
joachim99@69
|
81 void setFastSelectorLine( int line );
|
joachim99@69
|
82 void gotFocus();
|
joachim99@69
|
83 void lineClicked( int winIdx, int line );
|
joachim99@69
|
84
|
joachim99@69
|
85 public slots:
|
joachim99@69
|
86 void setFirstLine( int line );
|
joachim99@69
|
87 void setFirstColumn( int col );
|
joachim99@69
|
88 void resetSelection();
|
joachim99@69
|
89 void setFastSelectorRange( int line1, int nofLines );
|
joachim99@69
|
90
|
joachim99@69
|
91 protected:
|
joachim99@69
|
92 virtual void mousePressEvent ( QMouseEvent * );
|
joachim99@69
|
93 virtual void mouseReleaseEvent ( QMouseEvent * );
|
joachim99@69
|
94 virtual void mouseMoveEvent ( QMouseEvent * );
|
joachim99@69
|
95 virtual void mouseDoubleClickEvent ( QMouseEvent * e );
|
joachim99@69
|
96
|
joachim99@69
|
97 virtual void paintEvent( QPaintEvent* );
|
joachim99@69
|
98 virtual void dragEnterEvent( QDragEnterEvent* e );
|
joachim99@69
|
99 virtual void focusInEvent( QFocusEvent* e );
|
joachim99@69
|
100
|
joachim99@69
|
101 virtual void resizeEvent( QResizeEvent* );
|
joachim99@69
|
102 virtual void timerEvent(QTimerEvent*);
|
joachim99@69
|
103
|
joachim99@69
|
104 private:
|
joachim99@69
|
105 DiffTextWindowData* d;
|
joachim99@69
|
106 void showStatusLine( int line );
|
joachim99@69
|
107 friend class DiffTextWindowFrame;
|
joachim99@69
|
108 };
|
joachim99@69
|
109
|
joachim99@69
|
110
|
joachim99@69
|
111 class DiffTextWindowFrameData;
|
joachim99@69
|
112
|
joachim99@69
|
113 class DiffTextWindowFrame : public QWidget
|
joachim99@69
|
114 {
|
joachim99@69
|
115 Q_OBJECT
|
joachim99@69
|
116 public:
|
joachim99@69
|
117 DiffTextWindowFrame( QWidget* pParent, QStatusBar* pStatusBar, OptionDialog* pOptionDialog, int winIdx );
|
joachim99@69
|
118 ~DiffTextWindowFrame();
|
joachim99@69
|
119 DiffTextWindow* getDiffTextWindow();
|
joachim99@69
|
120 void init();
|
joachim99@69
|
121 void setFirstLine(int firstLine);
|
joachim99@69
|
122 signals:
|
joachim99@69
|
123 void fileNameChanged(const QString&, int);
|
joachim99@69
|
124 protected:
|
joachim99@69
|
125 bool eventFilter( QObject*, QEvent* );
|
joachim99@75
|
126 //void paintEvent(QPaintEvent*);
|
joachim99@69
|
127 private slots:
|
joachim99@69
|
128 void slotReturnPressed();
|
joachim99@69
|
129 void slotBrowseButtonClicked();
|
joachim99@69
|
130 private:
|
joachim99@69
|
131 DiffTextWindowFrameData* d;
|
joachim99@69
|
132 };
|
joachim99@69
|
133
|
joachim99@69
|
134
|
joachim99@69
|
135 #endif
|
joachim99@69
|
136
|