[go: up one dir, main page]

Menu

[r734]: / bookreader.cpp  Maximize  Restore  History

Download this file

115 lines (98 with data), 3.2 kB

  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
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/* Marcion
Copyright (C) 2009-2016 Milan Konvicka
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.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
#include "bookreader.h"
//
CBookReader::CBookReader( CMessages * const messages,
QString const & filename,
Format format,
CBookTextBrowser::Script script,
QString const & show_text,
QWidget * parent)
: CTextBrowserExt(parent),
messages(messages),
format(format)
{
init(QFileInfo(filename).fileName(),script);
switch(format)
{
case Html :
{
browser()->setOpenLinks(true);
browser()->setSource(QUrl::fromLocalFile(filename));
break;
}
default :
{
if(!filename.isEmpty())
{
QFile book(filename);
book.open(QIODevice::ReadOnly);
QByteArray text=book.readAll();
book.close();
if(filename.endsWith(".txt",Qt::CaseInsensitive))
browser()->setPlainText(QString::fromUtf8(text));
else if(filename.endsWith(".htm",Qt::CaseInsensitive)||
filename.endsWith(".html",Qt::CaseInsensitive))
browser()->setHtml(text);
}
break;
}
}
//brBook->setOrigText();
setPanelVisibility(true);
allowChangeScript();
if(!show_text.isEmpty())
inputBox().setText(show_text);
IC_SIZES
}
CBookReader::~CBookReader()
{
RM_WND;
}
//
/*void CBookReader::on_brBook_customContextMenuRequested(QPoint )
{
QAction * a;
if((a=popup.exec(QCursor::pos())))
{
if(a->text()=="find")
{
QString st(brBook->textCursor().selectedText());
if(!st.isEmpty())
find_word(st);
}
}
}
void CBookReader::find_word(QString const & word)
{
if(!preview)
{
preview=new CWordPreview(messages,crum);
QObject::connect(preview,SIGNAL(close(CWordPreview *)),this,
SLOT(on_preview_close(CWordPreview *)));
messages->tab()->addTab(preview,"query from book");
messages->tab()->setCurrentWidget(preview);
}
preview->queryCoptic(CTranslit::NAtoLatin(word));
messages->tab()->setCurrentWidget(preview);
}*/
/*void CBookReader::on_preview_close(QWidget * p)
{
preview=0;
delete p;
}*/
void CBookReader::append(QString const & line)
{
browser()->append(line);
}