Changeset 85577 in vbox
- Timestamp:
- Jul 31, 2020 12:51:37 PM (5 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/manager
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
r85565 r85577 2816 2816 pDefaultAction->setProperty("path", "powershell"); 2817 2817 #elif defined(VBOX_WS_X11) 2818 pDefaultAction->setProperty("path", defaultTerminalApplication()); 2819 pDefaultAction->setProperty("arguments", "-e sh -c"); 2818 const QPair<QString, QString> terminalData = defaultTerminalData(); 2819 pDefaultAction->setProperty("path", terminalData.first); 2820 pDefaultAction->setProperty("arguments", QString("%1 sh -c").arg(terminalData.second)); 2820 2821 #endif 2821 2822 … … 3499 3500 #ifdef VBOX_WS_X11 3500 3501 /* static */ 3501 Q String UIVirtualBoxManager::defaultTerminalApplication()3502 { 3503 /* List terminals supporting -e argument: */3502 QPair<QString, QString> UIVirtualBoxManager::defaultTerminalData() 3503 { 3504 /* List known terminals: */ 3504 3505 QStringList knownTerminalNames; 3505 knownTerminalNames << "konsole" 3506 << "gnome-terminal" 3506 knownTerminalNames << "gnome-terminal" 3507 << "terminator" 3508 << "konsole" 3507 3509 << "xfce4-terminal" 3508 << "terminator" 3510 << "mate-terminal" 3511 << "lxterminal" 3512 << "tilda" 3509 3513 << "xterm" 3510 3514 << "aterm" 3511 << "wterm" 3512 << "guake" 3513 << "evilvte" 3514 << "mrxvt" 3515 << "rxvt" 3516 << "rxvt-unicode"; 3515 << "rxvt-unicode" 3516 << "rxvt"; 3517 3518 /* Fill map of known terminal --execute argument exceptions, 3519 * keep in mind, terminals doesn't mentioned here will be 3520 * used with default `-e` argument: */ 3521 QMap<QString, QString> knownTerminalArguments; 3522 knownTerminalArguments["gnome-terminal"] = "--"; 3523 knownTerminalArguments["terminator"] = "-x"; 3524 knownTerminalArguments["xfce4-terminal"] = "-x"; 3525 knownTerminalArguments["mate-terminal"] = "-x"; 3526 knownTerminalArguments["tilda"] = "-c"; 3527 3517 3528 /* Search for a first one suitable through shell command -v test: */ 3518 3529 foreach (const QString &strTerminalName, knownTerminalNames) … … 3527 3538 const QString strResult = process.readAllStandardOutput(); 3528 3539 if (strResult.startsWith('/')) 3529 return strResult.trimmed();3530 } 3531 } 3532 return Q String();3540 return qMakePair(strResult.trimmed(), knownTerminalArguments.value(strTerminalName, "-e")); 3541 } 3542 } 3543 return QPair<QString, QString>(); 3533 3544 } 3534 3545 #endif -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
r85565 r85577 437 437 438 438 #ifdef VBOX_WS_X11 439 /** Tries to guess default X11 terminal emulator. */ 440 static QString defaultTerminalApplication(); 439 /** Tries to guess default X11 terminal emulator. 440 * @returns Data packed into Qt pair of QString(s), 441 * which is `name` and `--execute argument`. */ 442 static QPair<QString, QString> defaultTerminalData(); 441 443 #endif 442 444 /** @} */
Note:
See TracChangeset
for help on using the changeset viewer.