VirtualBox

Ignore:
Timestamp:
Mar 20, 2024 9:14:53 AM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
162314
Message:

FE/Qt. bugref:6699. Some refactoring.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogPage.cpp

    r103923 r103940  
    3939
    4040/*********************************************************************************************************************************
     41*   UIVMLogBookmarkManager definition.                                                                                           *
     42*********************************************************************************************************************************/
     43
     44class UIVMLogBookmarkManager
     45{
     46public:
     47    void addBookmark(const UIVMLogBookmark& newBookmark);
     48    void addBookmark(int iCursorPosition, int iLineNumber, QString strBlockText);
     49    void deleteBookmark(const UIVMLogBookmark& bookmark);
     50    void deleteBookmarkByIndex(int iIndex);
     51    void deleteAllBookmarks();
     52    int cursorPosition(int bookmarkIndex);
     53    QSet<int> lineSet() const;
     54    const QVector<UIVMLogBookmark>& bookmarkList() const;
     55
     56private:
     57
     58    QVector<UIVMLogBookmark> m_bookmarks;
     59};
     60
     61
     62/*********************************************************************************************************************************
     63*   UIVMLogBookmarkManager implementation.                                                                                       *
     64*********************************************************************************************************************************/
     65
     66
     67void UIVMLogBookmarkManager::addBookmark(const UIVMLogBookmark& newBookmark)
     68{
     69    foreach (const UIVMLogBookmark& bookmark, m_bookmarks)
     70        if (bookmark == newBookmark)
     71            return;
     72    m_bookmarks << newBookmark;
     73}
     74
     75void UIVMLogBookmarkManager::addBookmark(int iCursorPosition, int iLineNumber, QString strBlockText)
     76{
     77    foreach (const UIVMLogBookmark& bookmark, m_bookmarks)
     78        if (bookmark.m_iLineNumber == iLineNumber)
     79            return;
     80    m_bookmarks << UIVMLogBookmark(iCursorPosition, iLineNumber, strBlockText);
     81}
     82
     83void UIVMLogBookmarkManager::deleteBookmark(const UIVMLogBookmark& bookmark)
     84{
     85    int index = -1;
     86    for (int i = 0; i < m_bookmarks.size() && index == -1; ++i)
     87    {
     88        if (bookmark == m_bookmarks[i])
     89            index = i;
     90    }
     91    deleteBookmarkByIndex(index);
     92}
     93
     94void UIVMLogBookmarkManager::deleteBookmarkByIndex(int iIndex)
     95{
     96    if (iIndex >= m_bookmarks.size() || iIndex < 0)
     97        return;
     98    m_bookmarks.removeAt(iIndex);
     99}
     100
     101void UIVMLogBookmarkManager::deleteAllBookmarks()
     102{
     103    m_bookmarks.clear();
     104}
     105
     106int UIVMLogBookmarkManager::cursorPosition(int bookmarkIndex)
     107{
     108    if (bookmarkIndex >= m_bookmarks.size())
     109        return 0;
     110    return m_bookmarks[bookmarkIndex].m_iCursorPosition;
     111}
     112
     113QSet<int> UIVMLogBookmarkManager::lineSet() const
     114{
     115    QSet<int> lines;
     116    foreach (const UIVMLogBookmark& bookmark, m_bookmarks)
     117        lines << bookmark.m_iLineNumber;
     118    return lines;
     119}
     120
     121const QVector<UIVMLogBookmark>& UIVMLogBookmarkManager::bookmarkList() const
     122{
     123    return m_bookmarks;
     124}
     125
     126
     127/*********************************************************************************************************************************
    41128*   UIVMLogTab implementation.                                                                                                   *
    42129*********************************************************************************************************************************/
     
    67154    , m_pMainLayout(0)
    68155    , m_pTextEdit(0)
     156    , m_pBookmarkManager(new UIVMLogBookmarkManager)
    69157    , m_iSelectedBookmarkIndex(-1)
    70158    , m_bFiltered(false)
     
    130218void UIVMLogPage::cleanup()
    131219{
     220    delete m_pBookmarkManager;
    132221}
    133222
     
    218307void UIVMLogPage::deleteAllBookmarks()
    219308{
    220     m_bookmarkManager.deleteAllBookmarks();
     309    if (m_pBookmarkManager)
     310        m_pBookmarkManager->deleteAllBookmarks();
    221311    updateTextEditBookmarkLineSet();
    222312}
     
    226316    if (!m_pTextEdit)
    227317        return;
    228     m_pTextEdit->setCursorPosition(m_bookmarkManager.cursorPosition(bookmarkIndex));
    229 }
    230 
    231 const QVector<UIVMLogBookmark>& UIVMLogPage::bookmarkList() const
    232 {
    233     return m_bookmarkManager.bookmarkList();
     318    if (m_pBookmarkManager)
     319        m_pTextEdit->setCursorPosition(m_pBookmarkManager->cursorPosition(bookmarkIndex));
     320}
     321
     322QVector<UIVMLogBookmark> UIVMLogPage::bookmarkList() const
     323{
     324    if (!m_pBookmarkManager)
     325        return QVector<UIVMLogBookmark>();
     326    return m_pBookmarkManager->bookmarkList();
    234327}
    235328
    236329void UIVMLogPage::sltAddBookmark(const UIVMLogBookmark& bookmark)
    237330{
    238     m_bookmarkManager.addBookmark(bookmark);
     331    if (m_pBookmarkManager)
     332        m_pBookmarkManager->addBookmark(bookmark);
    239333    updateTextEditBookmarkLineSet();
    240334    emit sigBookmarksUpdated();
     
    243337void UIVMLogPage::sltDeleteBookmark(const UIVMLogBookmark& bookmark)
    244338{
    245     m_bookmarkManager.deleteBookmark(bookmark);
     339    if (m_pBookmarkManager)
     340        m_pBookmarkManager->deleteBookmark(bookmark);
    246341    updateTextEditBookmarkLineSet();
    247342    emit sigBookmarksUpdated();
     
    250345void UIVMLogPage::deleteBookmarkByIndex(int iIndex)
    251346{
    252     m_bookmarkManager.deleteBookmarkByIndex(iIndex);
     347    if (m_pBookmarkManager)
     348        m_pBookmarkManager->deleteBookmarkByIndex(iIndex);
    253349    updateTextEditBookmarkLineSet();
    254350    emit sigBookmarksUpdated();
     
    259355    if (!m_pTextEdit)
    260356        return;
    261     m_pTextEdit->setBookmarkLineSet(m_bookmarkManager.lineSet());
     357    if (m_pBookmarkManager)
     358        m_pTextEdit->setBookmarkLineSet(m_pBookmarkManager->lineSet());
    262359}
    263360
  • trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogPage.h

    r103925 r103940  
    4545class QTextDocument;
    4646class UIVMLogViewerTextEdit;
    47 
    48 class UIVMLogBookmarkManager
    49 {
    50 public:
    51     void addBookmark(const UIVMLogBookmark& newBookmark)
    52     {
    53         foreach (const UIVMLogBookmark& bookmark, m_bookmarks)
    54             if (bookmark == newBookmark)
    55                 return;
    56         m_bookmarks << newBookmark;
    57     }
    58 
    59     void addBookmark(int iCursorPosition, int iLineNumber, QString strBlockText)
    60     {
    61         foreach (const UIVMLogBookmark& bookmark, m_bookmarks)
    62             if (bookmark.m_iLineNumber == iLineNumber)
    63                 return;
    64         m_bookmarks << UIVMLogBookmark(iCursorPosition, iLineNumber, strBlockText);
    65     }
    66 
    67     void deleteBookmark(const UIVMLogBookmark& bookmark)
    68     {
    69         int index = -1;
    70         for (int i = 0; i < m_bookmarks.size() && index == -1; ++i)
    71         {
    72             if (bookmark == m_bookmarks[i])
    73                 index = i;
    74         }
    75         deleteBookmarkByIndex(index);
    76     }
    77 
    78     void deleteBookmarkByIndex(int iIndex)
    79     {
    80         if (iIndex >= m_bookmarks.size() || iIndex < 0)
    81             return;
    82         m_bookmarks.removeAt(iIndex);
    83     }
    84 
    85     void deleteAllBookmarks()
    86     {
    87         m_bookmarks.clear();
    88     }
    89 
    90     int cursorPosition(int bookmarkIndex)
    91     {
    92         if (bookmarkIndex >= m_bookmarks.size())
    93             return 0;
    94         return m_bookmarks[bookmarkIndex].m_iCursorPosition;
    95     }
    96 
    97     QSet<int> lineSet() const
    98     {
    99         QSet<int> lines;
    100         foreach (const UIVMLogBookmark& bookmark, m_bookmarks)
    101             lines << bookmark.m_iLineNumber;
    102         return lines;
    103     }
    104 
    105     const QVector<UIVMLogBookmark>& bookmarkList() const
    106     {
    107         return m_bookmarks;
    108     }
    109 
    110 private:
    111 
    112     QVector<UIVMLogBookmark> m_bookmarks;
    113 };
    114 
     47class UIVMLogBookmarkManager;
    11548
    11649class UIVMLogTab : public QWidget
     
    168101    void documentUndo();
    169102
    170     const QVector<UIVMLogBookmark>& bookmarkList() const;
     103    QVector<UIVMLogBookmark> bookmarkList() const;
    171104
    172105    void deleteAllBookmarks();
     
    218151    QString         m_strLogFileName;
    219152    /** Stores the bookmarks of the logpage. All other bookmark related containers are updated wrt. this one. */
    220     UIVMLogBookmarkManager m_bookmarkManager;
     153    UIVMLogBookmarkManager *m_pBookmarkManager;
    221154
    222155    /** Keeps the index of the selected bookmark. Used especially when moving from one tab to another. */
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