VirtualBox

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


Ignore:
Timestamp:
Apr 28, 2022 5:52:03 PM (3 years ago)
Author:
vboxsync
Message:

FE/Qt/Ds: bugref:10205: More rework and cleanup for UIUpdateDefs; Optimizing save/load stuff.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateDefs.cpp

    r94738 r94740  
    6767VBoxUpdateData::VBoxUpdateData(const QString &strData)
    6868    : m_strData(strData)
    69     , m_enmUpdatePeriod(UpdatePeriodType_1Day)
    70     , m_enmUpdateChannel(KUpdateChannel_Stable)
    71 {
    72     /* Parse standard values: */
     69    , m_enmUpdatePeriod(UpdatePeriodType_Never)
     70    , m_enmUpdateChannel(KUpdateChannel_Invalid)
     71{
     72    /* Skip 'never' case: */
    7373    if (m_strData == "never")
    74         m_enmUpdatePeriod = UpdatePeriodType_Never;
    75     /* Parse other values: */
    76     else
    77     {
     74        return;
     75
    7876#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
    79         QStringList parser = m_strData.split(", ", Qt::SkipEmptyParts);
     77    const QStringList parser = m_strData.split(", ", Qt::SkipEmptyParts);
    8078#else
    81         QStringList parser = m_strData.split(", ", QString::SkipEmptyParts);
     79    const QStringList parser = m_strData.split(", ", QString::SkipEmptyParts);
    8280#endif
    8381
    84         /* Parse 'period' value: */
    85         if (parser.size() > 0)
    86         {
    87             if (s_days.isEmpty())
    88                 populate();
    89             const UpdatePeriodType enmUpdatePeriod = (UpdatePeriodType)s_days.indexOf(VBoxUpdateDay(QString(), parser.at(0)));
    90             m_enmUpdatePeriod = enmUpdatePeriod == UpdatePeriodType_Never ? UpdatePeriodType_1Day : enmUpdatePeriod;
    91         }
    92 
    93         /* Parse 'date' value: */
    94         if (parser.size() > 1)
    95         {
    96             QDate date = QDate::fromString(parser.at(1), Qt::ISODate);
    97             m_date = date.isValid() ? date : QDate::currentDate();
    98         }
    99 
    100         /* Parse 'update channel' value: */
    101         if (parser.size() > 2)
    102         {
    103             m_enmUpdateChannel = updateChannelFromInternalString(parser.at(2));
    104         }
    105 
    106         /* Parse 'version' value: */
    107         if (parser.size() > 3)
    108         {
    109             m_version = UIVersion(parser.at(3));
    110         }
     82    /* Parse 'period' value: */
     83    if (parser.size() > 0)
     84    {
     85        if (s_days.isEmpty())
     86            populate();
     87        m_enmUpdatePeriod = (UpdatePeriodType)s_days.indexOf(VBoxUpdateDay(QString(), parser.at(0)));
     88        if (m_enmUpdatePeriod == UpdatePeriodType_Never)
     89            m_enmUpdatePeriod = UpdatePeriodType_1Day;
     90    }
     91
     92    /* Parse 'date' value: */
     93    if (parser.size() > 1)
     94    {
     95        QDate date = QDate::fromString(parser.at(1), Qt::ISODate);
     96        m_date = date.isValid() ? date : QDate::currentDate();
     97    }
     98
     99    /* Parse 'update channel' value: */
     100    if (parser.size() > 2)
     101    {
     102        m_enmUpdateChannel = updateChannelFromInternalString(parser.at(2));
     103    }
     104
     105    /* Parse 'version' value: */
     106    if (parser.size() > 3)
     107    {
     108        m_version = UIVersion(parser.at(3));
    111109    }
    112110}
    113111
    114112VBoxUpdateData::VBoxUpdateData(UpdatePeriodType enmUpdatePeriod, KUpdateChannel enmUpdateChannel)
    115     : m_strData(QString())
     113    : m_strData("never")
    116114    , m_enmUpdatePeriod(enmUpdatePeriod)
    117115    , m_enmUpdateChannel(enmUpdateChannel)
    118116{
    119     /* Encode standard values: */
     117    /* Skip 'UpdatePeriodType_Never' case: */
    120118    if (m_enmUpdatePeriod == UpdatePeriodType_Never)
    121         m_strData = "never";
    122     /* Encode other values: */
    123     else
    124     {
    125         /* Encode 'period' value: */
    126         if (s_days.isEmpty())
    127             populate();
    128         QString remindPeriod = s_days.at(m_enmUpdatePeriod).key;
    129 
    130         /* Encode 'date' value: */
    131         m_date = QDate::currentDate();
    132         QStringList parser(remindPeriod.split(' '));
    133         if (parser[1] == "d")
    134             m_date = m_date.addDays(parser[0].toInt());
    135         else if (parser[1] == "w")
    136             m_date = m_date.addDays(parser[0].toInt() * 7);
    137         else if (parser[1] == "m")
    138             m_date = m_date.addMonths(parser[0].toInt());
    139         QString remindDate = m_date.toString(Qt::ISODate);
    140 
    141         /* Encode 'update channel' value: */
    142         QString strUpdateChannel = updateChannelName();
    143 
    144         /* Encode 'version' value: */
    145         QString versionValue = UIVersion(uiCommon().vboxVersionStringNormalized()).toString();
    146 
    147         /* Composite m_strData: */
    148         m_strData = QString("%1, %2, %3, %4").arg(remindPeriod, remindDate, strUpdateChannel, versionValue);
    149     }
    150 }
    151 
    152 bool VBoxUpdateData::isNoNeedToCheck() const
    153 {
    154     /* No need to check if Period == Never: */
    155     return m_enmUpdatePeriod == UpdatePeriodType_Never;
    156 }
    157 
    158 bool VBoxUpdateData::isNeedToCheck() const
    159 {
    160     /* Return 'false' if there is no need to check: */
    161     if (isNoNeedToCheck())
     119        return;
     120
     121    /* Encode 'period' value: */
     122    if (s_days.isEmpty())
     123        populate();
     124    const QString strRemindPeriod = s_days.at(m_enmUpdatePeriod).key;
     125
     126    /* Encode 'date' value: */
     127    m_date = QDate::currentDate();
     128    QStringList parser(strRemindPeriod.split(' '));
     129    if (parser[1] == "d")
     130        m_date = m_date.addDays(parser[0].toInt());
     131    else if (parser[1] == "w")
     132        m_date = m_date.addDays(parser[0].toInt() * 7);
     133    else if (parser[1] == "m")
     134        m_date = m_date.addDays(parser[0].toInt() * 30);
     135    const QString strRemindDate = m_date.toString(Qt::ISODate);
     136
     137    /* Encode 'update channel' value: */
     138    const QString strUpdateChannel = updateChannelName();
     139
     140    /* Encode 'version' value: */
     141    m_version = UIVersion(uiCommon().vboxVersionStringNormalized());
     142    const QString strVersionValue = m_version.toString();
     143
     144    /* Compose m_strData: */
     145    m_strData = QString("%1, %2, %3, %4").arg(strRemindPeriod, strRemindDate, strUpdateChannel, strVersionValue);
     146}
     147
     148bool VBoxUpdateData::isCheckEnabled() const
     149{
     150    /* Check is enabled if Period != Never: */
     151    return m_enmUpdatePeriod != UpdatePeriodType_Never;
     152}
     153
     154bool VBoxUpdateData::isCheckRequired() const
     155{
     156    /* Return 'false' if there check is disabled: */
     157    if (!isCheckEnabled())
    162158        return false;
    163159
     
    191187QString VBoxUpdateData::dateToString() const
    192188{
    193     return isNoNeedToCheck() ? QCoreApplication::translate("UIUpdateManager", "Never")
    194                              : QLocale::system().toString(m_date, QLocale::ShortFormat);
     189    return   isCheckEnabled()
     190           ? QLocale::system().toString(m_date, QLocale::ShortFormat)
     191           : QCoreApplication::translate("UIUpdateManager", "Never");
    195192}
    196193
  • trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateDefs.h

    r94738 r94740  
    6464    }
    6565
    66     QString     val;
    67     QString     key;
     66    QString  val;
     67    QString  key;
    6868};
    6969typedef QList<VBoxUpdateDay> VBoxUpdateDayList;
     
    8585    VBoxUpdateData(UpdatePeriodType enmUpdatePeriod, KUpdateChannel enmUpdateChannel);
    8686
    87     /** Returns whether there is no need to check. */
    88     bool isNoNeedToCheck() const;
    89     /** Returns whether there is really need to check. */
    90     bool isNeedToCheck() const;
     87    /** Returns whether check is enabled. */
     88    bool isCheckEnabled() const;
     89    /** Returns whether check is required. */
     90    bool isCheckRequired() const;
    9191
    9292    /** Returns update data. */
     
    129129    /** Holds the update data. */
    130130    QString  m_strData;
     131
    131132    /** Holds the update period. */
    132     UpdatePeriodType      m_enmUpdatePeriod;
     133    UpdatePeriodType  m_enmUpdatePeriod;
    133134    /** Holds the update date. */
    134     QDate           m_date;
     135    QDate             m_date;
    135136    /** Holds the update channel. */
    136     KUpdateChannel  m_enmUpdateChannel;
     137    KUpdateChannel    m_enmUpdateChannel;
    137138    /** Holds the update version. */
    138     UIVersion       m_version;
     139    UIVersion         m_version;
    139140};
    140141
    141142
    142143#endif /* !FEQT_INCLUDED_SRC_networking_UIUpdateDefs_h */
    143 
  • trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateManager.cpp

    r94733 r94740  
    347347        true ||
    348348#endif
    349         fForcedCall || currentData.isNeedToCheck())
     349        fForcedCall || currentData.isCheckRequired())
    350350    {
    351351        /* Prepare update queue: */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUpdateSettingsEditor.cpp

    r94738 r94740  
    5252        if (m_pCheckBox)
    5353        {
    54             m_pCheckBox->setChecked(!m_guiValue.isNoNeedToCheck());
     54            m_pCheckBox->setChecked(m_guiValue.isCheckEnabled());
    5555
    5656            if (m_pCheckBox->isChecked())
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