mirror of
https://invent.kde.org/graphics/okular
synced 2024-09-12 20:51:17 +00:00
further source code cleanup
svn path=/trunk/kdegraphics/kdvi/; revision=206918
This commit is contained in:
parent
dc729a55bf
commit
3db56840d3
3
TODO
3
TODO
|
@ -4,7 +4,6 @@ URGENT / URGENT BUGFIXING
|
|||
|
||||
o add tip: kdvi can load compressed files!
|
||||
o get rid of useless README.kdvi
|
||||
o "neue datei laden" geht nicht mehr
|
||||
o Proper handling of the base-url
|
||||
o add "tt.dvi.gz" to the list of recent files, not "/tmp/kviews....."
|
||||
|
||||
|
@ -17,7 +16,7 @@ o Support for colored font specials
|
|||
o Support papersize information given by the dvi-file on a page-by-page
|
||||
basis.
|
||||
|
||||
o Extra enlargement of characters for improved readability should be switchable.
|
||||
o asynchronous rendering of pages, so that browsing with pg up/down looks faster
|
||||
|
||||
|
||||
NOT SO URGENT
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <stdio.h>
|
||||
#include <qdatastream.h>
|
||||
#include <qfile.h>
|
||||
#include <qintdict.h>
|
||||
#include <qstring.h>
|
||||
|
||||
#include "bigEndianByteReader.h"
|
||||
|
@ -35,6 +36,7 @@ class dvifile : public bigEndianByteReader
|
|||
KDVI ensures that the user is only informed once. */
|
||||
bool sourceSpecialMarker;
|
||||
|
||||
QIntDict<struct font> tn_table;
|
||||
|
||||
double cmPerDVIunit;
|
||||
|
||||
|
|
|
@ -59,8 +59,6 @@ struct WindowRec currwin = {(Window) 0, 3, 0, 0, 0, 0, MAXDIM, 0, MAXDIM, 0};
|
|||
extern struct WindowRec alt;
|
||||
struct drawinf currinf;
|
||||
|
||||
QIntDict<font> tn_table;
|
||||
|
||||
// The following are really used
|
||||
unsigned int page_w;
|
||||
unsigned int page_h;
|
||||
|
@ -523,7 +521,7 @@ bool dviWindow::setFile(QString fname, QString ref, bool sourceMarker)
|
|||
command_pointer = end_pointer = 0;
|
||||
|
||||
memset((char *) &currinf.data, 0, sizeof(currinf.data));
|
||||
currinf.fonttable = tn_table;
|
||||
currinf.fonttable = dviFile->tn_table;
|
||||
currinf._virtual = NULL;
|
||||
draw_part(65536.0*fontPixelPerDVIunit(), false);
|
||||
|
||||
|
|
|
@ -270,7 +270,7 @@ static void set_rule(int h, int w)
|
|||
}
|
||||
|
||||
|
||||
#define xspell_conv(n) spell_conv0(n, current_dimconv)
|
||||
#define xspell_conv(n) ((long) (n * current_dimconv))
|
||||
|
||||
void dviWindow::draw_part(double current_dimconv, bool is_vfmacro)
|
||||
{
|
||||
|
@ -316,7 +316,7 @@ void dviWindow::draw_part(double current_dimconv, bool is_vfmacro)
|
|||
b = readUINT32();
|
||||
b = xspell_conv(b);
|
||||
if (a > 0 && b > 0 && PostScriptOutPutString == NULL)
|
||||
set_rule(pixel_round(xspell_conv(a)), pixel_round(b));
|
||||
set_rule( ((int) ROUNDUP(xspell_conv(a), shrink_factor * 65536)), ((int) ROUNDUP(b, shrink_factor * 65536)) );
|
||||
DVI_H += b;
|
||||
break;
|
||||
|
||||
|
@ -330,7 +330,7 @@ void dviWindow::draw_part(double current_dimconv, bool is_vfmacro)
|
|||
a = xspell_conv(a);
|
||||
b = xspell_conv(b);
|
||||
if (a > 0 && b > 0 && PostScriptOutPutString == NULL)
|
||||
set_rule(pixel_round(a), pixel_round(b));
|
||||
set_rule(((int) ROUNDUP(a, shrink_factor * 65536)), ((int) ROUNDUP(b, shrink_factor * 65536)));
|
||||
break;
|
||||
|
||||
case NOP:
|
||||
|
@ -594,7 +594,7 @@ void dviWindow::draw_page(void)
|
|||
command_pointer = end_pointer = 0;
|
||||
|
||||
memset((char *) &currinf.data, 0, sizeof(currinf.data));
|
||||
currinf.fonttable = tn_table;
|
||||
currinf.fonttable = dviFile->tn_table;
|
||||
currinf._virtual = 0;
|
||||
draw_part(65536.0*fontPixelPerDVIunit(), false);
|
||||
if (HTML_href != 0) {
|
||||
|
|
|
@ -111,7 +111,7 @@ void fontPool::setEnlargeFonts( bool flag )
|
|||
}
|
||||
|
||||
|
||||
class font *fontPool::appendx(const char *fontname, long checksum, Q_INT32 scale, double enlargement, double cmPerDVIunit)
|
||||
class font *fontPool::appendx(const char *fontname, Q_UINT32 checksum, Q_UINT32 scale, double enlargement, double cmPerDVIunit)
|
||||
{
|
||||
double fsize = enlargement * MFResolutions[getMetafontMode()];
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ Q_OBJECT
|
|||
will be called. Since this is done using a concurrently running
|
||||
process, there is no guarantee that the loading is already
|
||||
performed when the method returns. */
|
||||
class font *appendx(const char *fontname, long checksum, Q_INT32 scale, double enlargement, double cmPerDVIunit);
|
||||
class font *appendx(const char *fontname, Q_UINT32 checksum, Q_UINT32 scale, double enlargement, double cmPerDVIunit);
|
||||
|
||||
/** Prints very basic debugging information about the fonts in the
|
||||
pool to the kdDebug output stream. */
|
||||
|
|
6
tips
6
tips
|
@ -1,3 +1,9 @@
|
|||
<tip category="KDVI|General">
|
||||
<html>
|
||||
<p>...that KDVI can also load compressed DVI-files?
|
||||
</html>
|
||||
</tip>
|
||||
|
||||
<tip category="KDVI|General">
|
||||
<html>
|
||||
<p>...that you can mark text with the right mouse button and paste it
|
||||
|
|
25
vf.cpp
25
vf.cpp
|
@ -89,11 +89,11 @@ void font::read_VF_index(void)
|
|||
first_font = NULL;
|
||||
while ((cmnd = one(VF_file)) >= FNTDEF1 && cmnd <= FNTDEF4) {
|
||||
int TeXnumber = num(VF_file, (int) cmnd - FNTDEF1 + 1);
|
||||
long checksum = four(VF_file);
|
||||
int scale = four(VF_file);
|
||||
int design = four(VF_file);
|
||||
int len = one(VF_file) + one(VF_file); /* sequence point in the middle */
|
||||
char *fontname = new char[(unsigned) len + 1];
|
||||
Q_UINT32 checksum = four(VF_file);
|
||||
Q_UINT32 scale = four(VF_file);
|
||||
Q_UINT32 design = four(VF_file);
|
||||
Q_UINT16 len = one(VF_file) + one(VF_file); /* sequence point in the middle */
|
||||
char *fontname = new char[len + 1];
|
||||
fread(fontname, sizeof(char), len, VF_file);
|
||||
fontname[len] = '\0';
|
||||
|
||||
|
@ -101,14 +101,13 @@ void font::read_VF_index(void)
|
|||
kdDebug() << "Virtual font defines subfont \"" << fontname << "\" scale=" << scale << " design=" << design << endl;
|
||||
#endif
|
||||
|
||||
// The scaled size is given in units of vfparent->scale * 2 ** -20
|
||||
// SPELL units, so we convert it into SPELL units by multiplying
|
||||
// by vfparent->dimconv. The design size is given in units of 2
|
||||
// -20 pt, so we convert into SPELL units by multiplying by
|
||||
// (pixels_per_inch * 2**16) / (72.27 * 2**20).
|
||||
// @@@@@@@@@@@@@@ CHECK THAT @@@@@@@@@@@@@@@@@@@@@@@ THIS CALL OF appendx PROBABLY HAS A WRONG enlargement. ORIGINAL CODE WAS:
|
||||
// struct font *newfontp = font_pool->appendx(fontname, checksum, scale, (72.27 * (1<<4)) * dimconv * scale / design, dimconv);
|
||||
struct font *newfontp = font_pool->appendx(fontname, checksum, scale, enlargement, cmPerDVIunit);
|
||||
// According to Knuth's documentation found in the web source code
|
||||
// of the "vftovp" program (which seems to be the standard
|
||||
// definition of virtual fonts), the "scale" is a fixed point
|
||||
// number which describes extra enlargement that the virtual font
|
||||
// imposes. One obtains the enlargement by dividing 2^20.
|
||||
double enlargement_factor = double(scale)/(1<<20) * enlargement;
|
||||
struct font *newfontp = font_pool->appendx(fontname, checksum, scale, enlargement_factor, cmPerDVIunit);
|
||||
|
||||
// Insert font in dictionary and make sure the dictionary is big
|
||||
// enough.
|
||||
|
|
33
xdvi.h
33
xdvi.h
|
@ -13,31 +13,11 @@
|
|||
* PAGE_OFFSET in dvi_draw.c.
|
||||
*/
|
||||
|
||||
#define pixel_conv(x) ((int) ((x) / (shrink_factor * 65536)))
|
||||
#define pixel_round(x) ((int) ROUNDUP(x, shrink_factor * 65536))
|
||||
#define spell_conv0(n, f) ((long) (n * f))
|
||||
|
||||
|
||||
#ifdef BMBYTE
|
||||
#define BMUNIT unsigned char
|
||||
#define BITS_PER_BMUNIT 8
|
||||
#define BYTES_PER_BMUNIT 1
|
||||
#else /* !BMBYTE */
|
||||
#ifdef BMSHORT
|
||||
#define BMUNIT unsigned short
|
||||
#define BITS_PER_BMUNIT 16
|
||||
#define BYTES_PER_BMUNIT 2
|
||||
#else /* !BMSHORT */
|
||||
#define BMLONG
|
||||
#ifdef __alpha
|
||||
#define BMUNIT unsigned int
|
||||
#else
|
||||
#define BMUNIT unsigned long
|
||||
#endif /* if __alpha */
|
||||
#define BMUNIT Q_UINT32
|
||||
#define BITS_PER_BMUNIT 32
|
||||
#define BYTES_PER_BMUNIT 4
|
||||
#endif /* !BMSHORT */
|
||||
#endif /* !BMBYTE */
|
||||
|
||||
|
||||
#define ADD(a, b) ((BMUNIT *) (((char *) a) + b))
|
||||
#define SUB(a, b) ((BMUNIT *) (((char *) a) - b))
|
||||
|
@ -51,7 +31,7 @@ extern struct drawinf currinf;
|
|||
scaled pixel units */
|
||||
|
||||
#define DVI_H currinf.data.dvi_h
|
||||
#define PXL_H pixel_conv(currinf.data.dvi_h)
|
||||
#define PXL_H ((int) ((currinf.data.dvi_h) / (shrink_factor * 65536)))
|
||||
#define DVI_V currinf.data.dvi_v
|
||||
#define PXL_V currinf.data.pxl_v
|
||||
#define WW currinf.data.w
|
||||
|
@ -60,13 +40,6 @@ extern struct drawinf currinf;
|
|||
#define ZZ currinf.data.z
|
||||
#define ROUNDUP(x,y) (((x)+(y)-1)/(y))
|
||||
|
||||
extern QIntDict<struct font> tn_table;
|
||||
|
||||
|
||||
/*
|
||||
* Command line flags.
|
||||
*/
|
||||
|
||||
extern unsigned long num (FILE *, int);
|
||||
extern long snum(FILE *, int);
|
||||
extern struct WindowRec mane, currwin;
|
||||
|
|
Loading…
Reference in a new issue