VirtualBox

Changeset 85577 in vbox


Ignore:
Timestamp:
Jul 31, 2020 12:51:37 PM (5 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9722: VirtualBox Manager: A bit of fixes for r139633; First of all, most popular terminals are now goes first; Besides that, proper execute option is now used for each of mentioned app.

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  
    28162816        pDefaultAction->setProperty("path", "powershell");
    28172817#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));
    28202821#endif
    28212822
     
    34993500#ifdef VBOX_WS_X11
    35003501/* static */
    3501 QString UIVirtualBoxManager::defaultTerminalApplication()
    3502 {
    3503     /* List terminals supporting -e argument: */
     3502QPair<QString, QString> UIVirtualBoxManager::defaultTerminalData()
     3503{
     3504    /* List known terminals: */
    35043505    QStringList knownTerminalNames;
    3505     knownTerminalNames << "konsole"
    3506                        << "gnome-terminal"
     3506    knownTerminalNames << "gnome-terminal"
     3507                       << "terminator"
     3508                       << "konsole"
    35073509                       << "xfce4-terminal"
    3508                        << "terminator"
     3510                       << "mate-terminal"
     3511                       << "lxterminal"
     3512                       << "tilda"
    35093513                       << "xterm"
    35103514                       << "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
    35173528    /* Search for a first one suitable through shell command -v test: */
    35183529    foreach (const QString &strTerminalName, knownTerminalNames)
     
    35273538            const QString strResult = process.readAllStandardOutput();
    35283539            if (strResult.startsWith('/'))
    3529                 return strResult.trimmed();
    3530         }
    3531     }
    3532     return QString();
     3540                return qMakePair(strResult.trimmed(), knownTerminalArguments.value(strTerminalName, "-e"));
     3541        }
     3542    }
     3543    return QPair<QString, QString>();
    35333544}
    35343545#endif
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h

    r85565 r85577  
    437437
    438438#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();
    441443#endif
    442444    /** @} */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette