Changeset 103940 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Mar 20, 2024 9:14:53 AM (13 months ago)
- svn:sync-xref-src-repo-rev:
- 162314
- 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 39 39 40 40 /********************************************************************************************************************************* 41 * UIVMLogBookmarkManager definition. * 42 *********************************************************************************************************************************/ 43 44 class UIVMLogBookmarkManager 45 { 46 public: 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 56 private: 57 58 QVector<UIVMLogBookmark> m_bookmarks; 59 }; 60 61 62 /********************************************************************************************************************************* 63 * UIVMLogBookmarkManager implementation. * 64 *********************************************************************************************************************************/ 65 66 67 void 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 75 void 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 83 void 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 94 void UIVMLogBookmarkManager::deleteBookmarkByIndex(int iIndex) 95 { 96 if (iIndex >= m_bookmarks.size() || iIndex < 0) 97 return; 98 m_bookmarks.removeAt(iIndex); 99 } 100 101 void UIVMLogBookmarkManager::deleteAllBookmarks() 102 { 103 m_bookmarks.clear(); 104 } 105 106 int UIVMLogBookmarkManager::cursorPosition(int bookmarkIndex) 107 { 108 if (bookmarkIndex >= m_bookmarks.size()) 109 return 0; 110 return m_bookmarks[bookmarkIndex].m_iCursorPosition; 111 } 112 113 QSet<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 121 const QVector<UIVMLogBookmark>& UIVMLogBookmarkManager::bookmarkList() const 122 { 123 return m_bookmarks; 124 } 125 126 127 /********************************************************************************************************************************* 41 128 * UIVMLogTab implementation. * 42 129 *********************************************************************************************************************************/ … … 67 154 , m_pMainLayout(0) 68 155 , m_pTextEdit(0) 156 , m_pBookmarkManager(new UIVMLogBookmarkManager) 69 157 , m_iSelectedBookmarkIndex(-1) 70 158 , m_bFiltered(false) … … 130 218 void UIVMLogPage::cleanup() 131 219 { 220 delete m_pBookmarkManager; 132 221 } 133 222 … … 218 307 void UIVMLogPage::deleteAllBookmarks() 219 308 { 220 m_bookmarkManager.deleteAllBookmarks(); 309 if (m_pBookmarkManager) 310 m_pBookmarkManager->deleteAllBookmarks(); 221 311 updateTextEditBookmarkLineSet(); 222 312 } … … 226 316 if (!m_pTextEdit) 227 317 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 322 QVector<UIVMLogBookmark> UIVMLogPage::bookmarkList() const 323 { 324 if (!m_pBookmarkManager) 325 return QVector<UIVMLogBookmark>(); 326 return m_pBookmarkManager->bookmarkList(); 234 327 } 235 328 236 329 void UIVMLogPage::sltAddBookmark(const UIVMLogBookmark& bookmark) 237 330 { 238 m_bookmarkManager.addBookmark(bookmark); 331 if (m_pBookmarkManager) 332 m_pBookmarkManager->addBookmark(bookmark); 239 333 updateTextEditBookmarkLineSet(); 240 334 emit sigBookmarksUpdated(); … … 243 337 void UIVMLogPage::sltDeleteBookmark(const UIVMLogBookmark& bookmark) 244 338 { 245 m_bookmarkManager.deleteBookmark(bookmark); 339 if (m_pBookmarkManager) 340 m_pBookmarkManager->deleteBookmark(bookmark); 246 341 updateTextEditBookmarkLineSet(); 247 342 emit sigBookmarksUpdated(); … … 250 345 void UIVMLogPage::deleteBookmarkByIndex(int iIndex) 251 346 { 252 m_bookmarkManager.deleteBookmarkByIndex(iIndex); 347 if (m_pBookmarkManager) 348 m_pBookmarkManager->deleteBookmarkByIndex(iIndex); 253 349 updateTextEditBookmarkLineSet(); 254 350 emit sigBookmarksUpdated(); … … 259 355 if (!m_pTextEdit) 260 356 return; 261 m_pTextEdit->setBookmarkLineSet(m_bookmarkManager.lineSet()); 357 if (m_pBookmarkManager) 358 m_pTextEdit->setBookmarkLineSet(m_pBookmarkManager->lineSet()); 262 359 } 263 360 -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogPage.h
r103925 r103940 45 45 class QTextDocument; 46 46 class 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 47 class UIVMLogBookmarkManager; 115 48 116 49 class UIVMLogTab : public QWidget … … 168 101 void documentUndo(); 169 102 170 const QVector<UIVMLogBookmark>&bookmarkList() const;103 QVector<UIVMLogBookmark> bookmarkList() const; 171 104 172 105 void deleteAllBookmarks(); … … 218 151 QString m_strLogFileName; 219 152 /** Stores the bookmarks of the logpage. All other bookmark related containers are updated wrt. this one. */ 220 UIVMLogBookmarkManager m_bookmarkManager;153 UIVMLogBookmarkManager *m_pBookmarkManager; 221 154 222 155 /** 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.