VirtualBox

Changeset 92787 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Dec 7, 2021 1:04:35 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
148705
Message:

FE/Qt: bugref:9371

  • Adding missing enumeration to string conversion.
  • Adding a function to close the guest session
Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackend.h

    r92596 r92787  
    156156template<> SHARED_LIBRARY_STUFF bool canConvert<KNATProtocol>();
    157157template<> SHARED_LIBRARY_STUFF bool canConvert<KGuestSessionStatus>();
     158template<> SHARED_LIBRARY_STUFF bool canConvert<KProcessStatus>();
    158159
    159160
     
    322323template<> SHARED_LIBRARY_STUFF QString toString(const KGuestSessionStatus &status);
    323324template<> SHARED_LIBRARY_STUFF KGuestSessionStatus fromString<KGuestSessionStatus>(const QString &strStatus);
     325template<> SHARED_LIBRARY_STUFF QString toString(const KProcessStatus &status);
     326template<> SHARED_LIBRARY_STUFF KProcessStatus fromString<KProcessStatus>(const QString &strStatus);
    324327
    325328
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp

    r92596 r92787  
    5656template<> bool canConvert<KNATProtocol>() { return true; }
    5757template<> bool canConvert<KGuestSessionStatus>() { return true; }
     58template<> bool canConvert<KProcessStatus>() { return true; }
    5859
    5960/* QIcon <= KCloudMachineState: */
     
    785786    return list.value(strStatus, KGuestSessionStatus_Undefined);
    786787}
     788
     789/* QString <= KProcessStatus: */
     790template<> QString toString(const KProcessStatus &status)
     791{
     792    switch (status)
     793    {
     794        case KProcessStatus_Undefined:            return QApplication::translate("UICommon", "Undefined", "ProcessStatus");
     795        case KProcessStatus_Starting:             return QApplication::translate("UICommon", "Starting", "ProcessStatus");
     796        case KProcessStatus_Started:              return QApplication::translate("UICommon", "Started", "ProcessStatus");
     797        case KProcessStatus_Paused:               return QApplication::translate("UICommon", "Paused", "ProcessStatus");
     798        case KProcessStatus_Terminating:          return QApplication::translate("UICommon", "Terminating", "ProcessStatus");
     799        case KProcessStatus_TerminatedNormally:   return QApplication::translate("UICommon", "Terminated (Normally)", "ProcessStatus");
     800        case KProcessStatus_TerminatedSignal:     return QApplication::translate("UICommon", "Terminated (Signal)", "ProcessStatus");
     801        case KProcessStatus_TerminatedAbnormally: return QApplication::translate("UICommon", "Terminated (Abnormally)", "ProcessStatus");
     802        case KProcessStatus_TimedOutKilled:       return QApplication::translate("UICommon", "Timed Out (Killed)", "ProcessStatus");
     803        case KProcessStatus_TimedOutAbnormally:   return QApplication::translate("UICommon", "Timed Out (Abnormally)", "ProcessStatus");
     804        case KProcessStatus_Down:                 return QApplication::translate("UICommon", "Down", "ProcessStatus");
     805        case KProcessStatus_Error:                return QApplication::translate("UICommon", "Error", "ProcessStatus");
     806        default: AssertMsgFailed(("No text for %d", status)); break;
     807    }
     808    return QString();
     809}
     810
     811/* KProcessStatus <= QString: */
     812template<> KProcessStatus fromString<KProcessStatus>(const QString &strStatus)
     813{
     814    QHash<QString, KProcessStatus> list;
     815    list.insert(QApplication::translate("UICommon", "Undefined", "ProcessStatus"),               KProcessStatus_Undefined);
     816    list.insert(QApplication::translate("UICommon", "Starting", "ProcessStatus"),                KProcessStatus_Starting);
     817    list.insert(QApplication::translate("UICommon", "Started", "ProcessStatus"),                 KProcessStatus_Started);
     818    list.insert(QApplication::translate("UICommon", "Paused", "ProcessStatus"),                 KProcessStatus_Paused);
     819    list.insert(QApplication::translate("UICommon", "Terminating", "ProcessStatus"),             KProcessStatus_Terminating);
     820    list.insert(QApplication::translate("UICommon", "Terminated (Normally)", "ProcessStatus"),   KProcessStatus_TerminatedNormally);
     821    list.insert(QApplication::translate("UICommon", "Terminated (Signal)", "ProcessStatus"),     KProcessStatus_TerminatedSignal);
     822    list.insert(QApplication::translate("UICommon", "Terminated (Abnormally)", "ProcessStatus"), KProcessStatus_TerminatedAbnormally);
     823    list.insert(QApplication::translate("UICommon", "Timed Out (Killed)", "ProcessStatus"),      KProcessStatus_TimedOutKilled);
     824    list.insert(QApplication::translate("UICommon", "Timed Out (Abnormally)", "ProcessStatus"),  KProcessStatus_TimedOutAbnormally);
     825    list.insert(QApplication::translate("UICommon", "Down", "ProcessStatus"),                    KProcessStatus_Down);
     826    list.insert(QApplication::translate("UICommon", "Error", "ProcessStatus"),                   KProcessStatus_Error);
     827    if (!list.contains(strStatus))
     828    {
     829        AssertMsgFailed(("No value for '%s'", strStatus.toUtf8().constData()));
     830    }
     831    return list.value(strStatus, KProcessStatus_Undefined);
     832}
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.cpp

    r92753 r92787  
    176176        prepareToolBar();
    177177
    178     QHBoxLayout *pFileTableContainerLayout = new QHBoxLayout;
    179     pFileTableContainerLayout->setContentsMargins(0, 0, 0, 0);
    180 #ifdef VBOX_WS_MAC
    181     pFileTableContainerLayout->setSpacing(10);
    182 #else
    183     pFileTableContainerLayout->setSpacing(qApp->style()->pixelMetric(QStyle::PM_LayoutVerticalSpacing) / 2);
    184 #endif
    185 
    186178    QWidget *pTopWidget = new QWidget;
    187179    QVBoxLayout *pTopLayout = new QVBoxLayout;
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp

    r92765 r92787  
    2525#include "QILabel.h"
    2626#include "UIActionPool.h"
     27#include "UIConsoleEventHandler.h"
    2728#include "UIConverter.h"
    2829#include "UICommon.h"
     
    166167    connect(gVBoxEvents, &UIVirtualBoxEventHandler::sigMachineStateChange,
    167168            this, &UIFileManagerGuestTable::sltMachineStateChange);
     169    connect(&uiCommon(), &UICommon::sigAskToCommitData,
     170            this, &UIFileManagerGuestTable::sltCommitDataSignalReceived);
     171    connect(gConsoleEvents, &UIConsoleEventHandler::sigAdditionsChange,
     172            this, &UIFileManagerGuestTable::sltAdditionsChange);
     173
    168174    if (m_pActionPool && m_pActionPool->action(UIActionIndex_M_FileManager_T_GuestSession))
    169175        m_pActionPool->action(UIActionIndex_M_FileManager_T_GuestSession)->setChecked(true);
     
    10981104void UIFileManagerGuestTable::sltHandleCloseSessionRequest()
    10991105{
     1106    closeSession();
     1107}
     1108
     1109void UIFileManagerGuestTable::sltCommitDataSignalReceived()
     1110{
     1111    m_comMachine.detach();
     1112}
     1113
     1114void UIFileManagerGuestTable::sltAdditionsChange()
     1115{
     1116    setSessionDependentWidgetsEnabled(isSessionPossible());
     1117
    11001118}
    11011119
     
    11061124        m_pGuestSessionPanel->setEnabled(pEnabled);
    11071125}
     1126
     1127void UIFileManagerGuestTable::closeSession()
     1128{
     1129    if (!m_comGuestSession.isNull())
     1130        m_comGuestSession.Close();
     1131
     1132    reset();
     1133
     1134    if (!m_comSession.isNull())
     1135        m_comSession.UnlockMachine();
     1136
     1137    cleanupGuestListener();
     1138    cleanupSessionListener();
     1139
     1140    emit sigLogOutput("Guest session is closed", m_strTableName, FileManagerLogType_Info);
     1141    postGuestSessionClosed();
     1142}
     1143
    11081144
    11091145/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
     
    11151151
    11161152
    1117 void UIFileManager::closeSession()
    1118 {
    1119 }
    1120 
    11211153
    11221154
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.h

    r92766 r92787  
    100100    void sltHandleCloseSessionRequest();
    101101    void sltMachineStateChange(const QUuid &uMachineId, const KMachineState state);
     102    void sltCommitDataSignalReceived();
     103    void sltAdditionsChange();
    102104
    103105private:
     
    132134    /** Creates a shared machine session, opens a guest session and registers event listeners. */
    133135    bool openSession(const QString& strUserName, const QString& strPassword);
     136    void closeSession();
    134137    bool isGuestAdditionsAvailable(CGuest &guest);
    135138    bool isGuestAdditionsAvailable();
Note: See TracChangeset for help on using the changeset viewer.

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