"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "xpdf-qt/QtPDFCore.cc" between
xpdf-4.03.tar.gz and xpdf-4.04.tar.gz

About: Xpdf is a PDF viewer for X.

QtPDFCore.cc  (xpdf-4.03):QtPDFCore.cc  (xpdf-4.04)
skipping to change at line 392 skipping to change at line 392
if (!doc || doc->getNumPages() == 0 || !selectEnabled) { if (!doc || doc->getNumPages() == 0 || !selectEnabled) {
return; return;
} }
if (getSelectMode() != selectModeLinear) { if (getSelectMode() != selectModeLinear) {
return; return;
} }
if (!cvtWindowToDev(wx, wy, &pg, &x, &y)) { if (!cvtWindowToDev(wx, wy, &pg, &x, &y)) {
return; return;
} }
PDFCore::selectWord(pg, x, y); PDFCore::selectWord(pg, x, y);
#ifndef NO_TEXT_SELECT
if (hasSelection()) {
copySelection(gFalse);
}
#endif
} }
void QtPDFCore::selectLine(int wx, int wy) { void QtPDFCore::selectLine(int wx, int wy) {
int pg, x, y; int pg, x, y;
takeFocus(); takeFocus();
if (!doc || doc->getNumPages() == 0 || !selectEnabled) { if (!doc || doc->getNumPages() == 0 || !selectEnabled) {
return; return;
} }
if (getSelectMode() != selectModeLinear) { if (getSelectMode() != selectModeLinear) {
return; return;
} }
if (!cvtWindowToDev(wx, wy, &pg, &x, &y)) { if (!cvtWindowToDev(wx, wy, &pg, &x, &y)) {
return; return;
} }
PDFCore::selectLine(pg, x, y); PDFCore::selectLine(pg, x, y);
#ifndef NO_TEXT_SELECT
if (hasSelection()) {
copySelection(gFalse);
}
#endif
} }
void QtPDFCore::doLinkCbk(LinkAction *action) { void QtPDFCore::doLinkCbk(LinkAction *action) {
LinkDest *dest; LinkDest *dest;
GString *namedDest; GString *namedDest;
Ref pageRef; Ref pageRef;
int pg; int pg;
GString *cmd, *params; GString *cmd, *params;
char *s; char *s;
skipping to change at line 626 skipping to change at line 636
delete fileName; delete fileName;
displayPage(1, gFalse, gFalse, gTrue); displayPage(1, gFalse, gFalse, gTrue);
} else { } else {
cmd = fileName->copy(); cmd = fileName->copy();
if ((params = ((LinkLaunch *)action)->getParams())) { if ((params = ((LinkLaunch *)action)->getParams())) {
cmd->append(' ')->append(params); cmd->append(' ')->append(params);
} }
if (globalParams->getLaunchCommand()) { if (globalParams->getLaunchCommand()) {
cmd->insert(0, ' '); cmd->insert(0, ' ');
cmd->insert(0, globalParams->getLaunchCommand()); cmd->insert(0, globalParams->getLaunchCommand());
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
QString cmdStr(cmd->getCString());
QStringList tokens = QProcess::splitCommand(cmdStr);
if (!tokens.isEmpty()) {
QString program = tokens[0];
tokens.removeFirst();
QProcess::startDetached(program, tokens);
}
#else
QProcess::startDetached(cmd->getCString()); QProcess::startDetached(cmd->getCString());
#endif
} else { } else {
msg = new GString("About to execute the command:\n"); msg = new GString("About to execute the command:\n");
msg->append(cmd); msg->append(cmd);
if (QMessageBox::question(viewport, "PDF Launch Link", if (QMessageBox::question(viewport, "PDF Launch Link",
msg->getCString(), msg->getCString(),
QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok) QMessageBox::Ok)
== QMessageBox::Ok) { == QMessageBox::Ok) {
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
QString cmdStr(cmd->getCString());
QStringList tokens = QProcess::splitCommand(cmdStr);
if (!tokens.isEmpty()) {
QString program = tokens[0];
tokens.removeFirst();
QProcess::startDetached(program, tokens);
}
#else
QProcess::startDetached(cmd->getCString()); QProcess::startDetached(cmd->getCString());
#endif
} }
delete msg; delete msg;
} }
delete cmd; delete cmd;
} }
break; break;
// URI action // URI action
case actionURI: case actionURI:
if (!externalHyperlinksEnabled) { if (!externalHyperlinksEnabled) {
skipping to change at line 825 skipping to change at line 855
char *s; char *s;
if ((s = strstr(cmdFmt->getCString(), "%s"))) { if ((s = strstr(cmdFmt->getCString(), "%s"))) {
cmd = mungeURL(arg); cmd = mungeURL(arg);
cmd->insert(0, cmdFmt->getCString(), cmd->insert(0, cmdFmt->getCString(),
(int)(s - cmdFmt->getCString())); (int)(s - cmdFmt->getCString()));
cmd->append(s + 2); cmd->append(s + 2);
} else { } else {
cmd = cmdFmt->copy(); cmd = cmdFmt->copy();
} }
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
QString cmdStr(cmd->getCString());
QStringList tokens = QProcess::splitCommand(cmdStr);
if (!tokens.isEmpty()) {
QString program = tokens[0];
tokens.removeFirst();
QProcess::startDetached(program, tokens);
}
#else
QProcess::startDetached(cmd->getCString()); QProcess::startDetached(cmd->getCString());
#endif
delete cmd; delete cmd;
} }
// Escape any characters in a URL which might cause problems when // Escape any characters in a URL which might cause problems when
// calling system(). // calling system().
GString *QtPDFCore::mungeURL(GString *url) { GString *QtPDFCore::mungeURL(GString *url) {
static const char *allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" static const char *allowed = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz" "abcdefghijklmnopqrstuvwxyz"
"0123456789" "0123456789"
"-_.~/?:@&=+,#%"; "-_.~/?:@&=+,#%";
 End of changes. 8 change blocks. 
0 lines changed or deleted 40 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)