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 |