/*
    This file is part of Kiten, a KDE Japanese Reference Tool...
    SPDX-FileCopyrightText: 2001 Jason Katz-Brown <jason@katzbrown.com>
    SPDX-FileCopyrightText: 2006 Joseph Kerian <jkerian@gmail.com>
    SPDX-FileCopyrightText: 2006 Eric Kjeldergaard <kjelderg@gmail.com>

    SPDX-License-Identifier: GPL-2.0-or-later
*/

#ifndef RESULTSVIEW_H
#define RESULTSVIEW_H

#include <QAction>
#include <QTextBrowser>

#include "entry.h"

class KActionCollection;
class KActionMenu;

class ResultsView : public QTextBrowser
{
  Q_OBJECT

  public:
    explicit     ResultsView( QWidget *parent = nullptr, const char *name = nullptr );

    void         addResult( Entry *result, bool common = false );
    void         addKanjiResult( Entry*, bool common = false );
    void         setLaterScrollValue( int scrollValue );

  public Q_SLOTS:
    void         append( const QString &text );
    void         clear();
    void         flush();
    void         print( const QString &title );
    void         setBasicMode( bool yes );
    void         setContents( const QString &text );

  Q_SIGNALS:
    void         entrySpecifiedForExport( int index );
    void         urlClicked( const QString& );

  protected:
    QString      generateCSS();

  private Q_SLOTS:
    void doScroll();

  private:
    QAction           *_addToExportListAction = nullptr;
    bool               _basicMode;
    KActionCollection *_popupActions = nullptr;
    KActionMenu       *_popupMenu = nullptr;
    QString            _printText;
    int                _scrollValue;
};

#endif
