~ubuntu-branches/ubuntu/raring/kbibtex/raring

« back to all changes in this revision

Viewing changes to src/webquerygooglescholar.h

  • Committer: Package Import Robot
  • Author(s): Michael Hanke
  • Date: 2011-07-18 09:29:48 UTC
  • mfrom: (1.1.6) (2.1.5 sid)
  • Revision ID: package-import@ubuntu.com-20110718092948-ksxjmg7kdfamolmg
Tags: 0.3-1
* First upstream release for KDE4 (Closes: #634255). A number of search
  engines are still missing, in comparison to the 0.2 series.
* Bumped Standards-Version to 3.9.2, no changes necessary.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/***************************************************************************
2
 
 *   Copyright (C) 2004-2009 by Thomas Fischer                             *
3
 
 *   fischer@unix-ag.uni-kl.de                                             *
4
 
 *                                                                         *
5
 
 *   This program is free software; you can redistribute it and/or modify  *
6
 
 *   it under the terms of the GNU General Public License as published by  *
7
 
 *   the Free Software Foundation; either version 2 of the License, or     *
8
 
 *   (at your option) any later version.                                   *
9
 
 *                                                                         *
10
 
 *   This program is distributed in the hope that it will be useful,       *
11
 
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12
 
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13
 
 *   GNU General Public License for more details.                          *
14
 
 *                                                                         *
15
 
 *   You should have received a copy of the GNU General Public License     *
16
 
 *   along with this program; if not, write to the                         *
17
 
 *   Free Software Foundation, Inc.,                                       *
18
 
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19
 
 ***************************************************************************/
20
 
#ifndef KBIBTEXWEBQUERYGOOGLESCHOLAR_H
21
 
#define KBIBTEXWEBQUERYGOOGLESCHOLAR_H
22
 
 
23
 
#include <qstringlist.h>
24
 
#include <qbuffer.h>
25
 
 
26
 
#include <kurl.h>
27
 
 
28
 
#include <fileimporterbibtex.h>
29
 
#include <webquery.h>
30
 
 
31
 
namespace KBibTeX
32
 
{
33
 
    /**
34
 
     @author Thomas Fischer <fischer@unix-ag.uni-kl.de>
35
 
    */
36
 
    class WebQueryGoogleScholarWidget : public WebQueryWidget
37
 
    {
38
 
        Q_OBJECT
39
 
    public:
40
 
        WebQueryGoogleScholarWidget( QWidget *parent, const char *name = 0 );
41
 
    };
42
 
 
43
 
    /**
44
 
     @author Thomas Fischer <fischer@unix-ag.uni-kl.de>
45
 
    */
46
 
    class WebQueryGoogleScholar : public WebQuery
47
 
    {
48
 
        Q_OBJECT
49
 
    public:
50
 
        WebQueryGoogleScholar( QWidget* parent );
51
 
        virtual ~WebQueryGoogleScholar();
52
 
 
53
 
        void query();
54
 
 
55
 
        QString title();
56
 
        QString disclaimer();
57
 
        QString disclaimerURL();
58
 
 
59
 
        WebQueryWidget *widget();
60
 
 
61
 
    protected:
62
 
        void cancelQuery();
63
 
 
64
 
    private slots:
65
 
        void slotData( KIO::Job *, const QByteArray &data )
66
 
        {
67
 
            m_transferJobBuffer->writeBlock( data.data(), data.size() );
68
 
        };
69
 
 
70
 
        /** Google Scholar's start page has been loaded */
71
 
        void slotFinishedStartpage( KIO::Job *job );
72
 
        /** Settings page has been loaded */
73
 
        void slotFinishedLoadingSettings( KIO::Job *job );
74
 
        /** Settings page upload and search mask loaded */
75
 
        void slotFinishedSavingSettings( KIO::Job *job );
76
 
        /** page with results loaded */
77
 
        void slotFinishedReceivingResultOverview( KIO::Job *job );
78
 
 
79
 
    private:
80
 
        WebQueryGoogleScholarWidget *m_widget;
81
 
 
82
 
        bool m_abort;
83
 
        QString m_searchTerm;
84
 
        int m_numberOfResults;
85
 
        BibTeX::FileImporterBibTeX *m_importer;
86
 
        bool m_originalEnableCookies;
87
 
        bool m_originalSessionCookies;
88
 
        QMap <QString, QString> m_originalCookieMap;
89
 
        QString m_originalCookieGlobalAdvice;
90
 
 
91
 
        KIO::TransferJob *m_transferJob;
92
 
        QBuffer *m_transferJobBuffer;
93
 
 
94
 
        /** load KDE's cookie configuration, store values, and reset with Google-friendly values */
95
 
        void readAndChangeConfig();
96
 
        /** restore previous configuration values by saving old cookie configuration */
97
 
        void restoreConfig();
98
 
 
99
 
        /** extract text from a QBuffer object */
100
 
        QString textFromBuffer( QBuffer *buffer );
101
 
 
102
 
        /** parse HTML code and get all key-value pairs from <input..> and <select><option ...></select> */
103
 
        QMap <QString, QString> evalFormFields( const QString &htmlCode );
104
 
 
105
 
        /** glue together URL from key-value pairs in form */
106
 
        QString formFieldsToUrl( const QString &prefix, const QMap<QString, QString> &keyValues );
107
 
    };
108
 
 
109
 
}
110
 
 
111
 
#endif