VirtualBox

Changeset 87247 in vbox


Ignore:
Timestamp:
Jan 14, 2021 10:00:18 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142205
Message:

FE/Qt: bugref:9871: UIPortForwardingTable: Expand the table with possibility to redefine current set of rules after it's already created.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/widgets
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.cpp

    r87246 r87247  
    439439
    440440    /** Returns the list of port forwarding rules. */
    441     const UIPortForwardingDataList rules() const;
     441    UIPortForwardingDataList rules() const;
     442    /** Defines the list of port forwarding @a newRules. */
     443    void setRules(const UIPortForwardingDataList &newRules);
    442444    /** Adds empty port forwarding rule for certain @a index. */
    443445    void addRule(const QModelIndex &index);
     
    531533}
    532534
    533 const UIPortForwardingDataList UIPortForwardingModel::rules() const
     535UIPortForwardingDataList UIPortForwardingModel::rules() const
    534536{
    535537    /* Return the cached data: */
     
    540542                                         pRow->guestIp(), pRow->guestPort());
    541543    return data;
     544}
     545
     546void UIPortForwardingModel::setRules(const UIPortForwardingDataList &newRules)
     547{
     548    /* Clear old data first of all: */
     549    beginRemoveRows(QModelIndex(), 0, m_dataList.size() - 1);
     550    foreach (const UIPortForwardingRow *pRow, m_dataList)
     551        delete pRow;
     552    m_dataList.clear();
     553    endRemoveRows();
     554
     555    /* Fetch incoming data: */
     556    beginInsertRows(QModelIndex(), 0, newRules.size() - 1);
     557    foreach (const UIDataPortForwardingRule &rule, newRules)
     558        m_dataList << new UIPortForwardingRow(qobject_cast<QITableView*>(parent()),
     559                                              rule.name, rule.protocol,
     560                                              rule.hostIp, rule.hostPort,
     561                                              rule.guestIp, rule.guestPort);
     562    endInsertRows();
    542563}
    543564
     
    769790}
    770791
    771 const UIPortForwardingDataList UIPortForwardingTable::rules() const
     792UIPortForwardingDataList UIPortForwardingTable::rules() const
    772793{
    773794    return m_pTableModel->rules();
     795}
     796
     797void UIPortForwardingTable::setRules(const UIPortForwardingDataList &newRules)
     798{
     799    m_rules = newRules;
     800    m_pTableModel->setRules(m_rules);
     801    sltAdjustTable();
    774802}
    775803
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.h

    r87246 r87247  
    215215
    216216    /** Returns the list of port forwarding rules. */
    217     const UIPortForwardingDataList rules() const;
     217    UIPortForwardingDataList rules() const;
     218    /** Defines the list of port forwarding @a newRules. */
     219    void setRules(const UIPortForwardingDataList &newRules);
    218220
    219221    /** Validates the table. */
     
    268270    void prepareToolbar();
    269271
    270     /** Holds the _initial_ list of Port Forwarding rules. */
    271     const UIPortForwardingDataList &m_rules;
     272    /** Holds the list of port forwarding rules. */
     273    UIPortForwardingDataList  m_rules;
    272274
    273275    /** Holds whether this table contains IPv6 rules, not IPv4. */
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