summaryrefslogtreecommitdiffstats
path: root/src/documentsourceview.h
blob: 8edb23a7085083b2ad58f8c3b053a273fa40dcb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/***************************************************************************
*   Copyright (C) 2004-2006 by Thomas Fischer                             *
*   [email protected]                                             *
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
*   This program is distributed in the hope that it will be useful,       *
*   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
*   GNU General Public License for more details.                          *
*                                                                         *
*   You should have received a copy of the GNU General Public License     *
*   along with this program; if not, write to the                         *
*   Free Software Foundation, Inc.,                                       *
*   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
***************************************************************************/
#ifndef KBIBTEXDOCUMENTSOURCEVIEW_H
#define KBIBTEXDOCUMENTSOURCEVIEW_H

#include <qwidget.h>

#include <file.h>

#include <ktexteditor/editinterface.h>
#include <kate/view.h>
#include <kate/document.h>

class KProgressDialog;

namespace KBibTeX
{
    class DocumentWidget;

    /**
     * @author Thomas Fischer <[email protected]>
     */
    class DocumentSourceView : public QWidget
    {
        Q_OBJECT
    public:
        DocumentSourceView( KBibTeX::DocumentWidget *docWidget, bool isReadOnly, QWidget *parent = 0, const char *name = 0 );
        ~DocumentSourceView();

        bool setBibTeXFile( BibTeX::File *bibtexFile );
        BibTeX::File* getBibTeXFile( );

        void copy();
        void cut();
        bool paste();
        void insertLines( const QString& text, int line = -1 );
        void selectAll();

        void setReadOnly( bool isReadOnly );
        void setFactory( KXMLGUIFactory *factory, KXMLGUIClient *client );

    public slots:
        void configureEditor();
        void undo();
        void find();
        void findNext();

    signals:
        void modified();

    protected:
        virtual void focusInEvent( QFocusEvent* event );

    private:
        bool m_isReadOnly;
        KBibTeX::DocumentWidget *m_docWidget;
        BibTeX::File *m_bibtexFile;
        Kate::Document* m_document;
        Kate::View* m_view;
        KTextEditor::EditInterface* m_editInterface;
        QString m_lastSearchTerm;
        QStringList m_findHistory;
        KProgressDialog *m_progDlg;

        void setupGUI();
        void readConfig();
        void writeConfig();
        void readConfig( KConfig *config );
        void writeConfig( KConfig *config );

        void search( int fromLine, int fromCol );

    private slots:
        void updateProgress(int current, int total);
    };

}

#endif