Changeset 70581 in vbox
- Timestamp:
- Jan 14, 2018 8:54:55 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 120269
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 11 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r70554 r70581 341 341 src/logviewer/UIVMLogViewerPanel.h \ 342 342 src/logviewer/UIVMLogViewerSearchPanel.h \ 343 src/logviewer/UIVMLogViewerSettingsPanel.h \ 343 344 src/logviewer/UIVMLogViewerTextEdit.h \ 344 345 src/logviewer/UIVMLogViewerWidget.h \ … … 661 662 src/logviewer/UIVMLogViewerPanel.cpp \ 662 663 src/logviewer/UIVMLogViewerSearchPanel.cpp \ 664 src/logviewer/UIVMLogViewerSettingsPanel.cpp \ 663 665 src/logviewer/UIVMLogViewerTextEdit.cpp \ 664 666 src/logviewer/UIVMLogViewerWidget.cpp \ -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogPage.cpp
r70578 r70581 44 44 , m_tabIndex(tabIndex) 45 45 , m_bFiltered(false) 46 , m_bShowLineNumbers(true) 47 , m_bWrapLines(false) 46 48 { 47 49 prepare(); … … 192 194 { 193 195 int index = -1; 194 for (int i = 0; i < m_bookmarkVector.size(); ++i)196 for (int i = 0; i < m_bookmarkVector.size(); ++i) 195 197 { 196 if (m_bookmarkVector.at(i).first == bookmark.first)198 if (m_bookmarkVector.at(i).first == bookmark.first) 197 199 { 198 200 index = i; … … 200 202 } 201 203 } 202 if (index != -1)204 if (index != -1) 203 205 deleteBookmark(index); 204 206 } … … 213 215 void UIVMLogPage::scrollToBookmark(int bookmarkIndex) 214 216 { 215 if (!m_pTextEdit)217 if (!m_pTextEdit) 216 218 return; 217 219 if (bookmarkIndex >= m_bookmarkVector.size()) … … 243 245 void UIVMLogPage::updateTextEditBookmarkLineSet() 244 246 { 245 if (!m_pTextEdit)247 if (!m_pTextEdit) 246 248 return; 247 249 QSet<int> bookmarkLinesSet; 248 for (int i = 0; i < m_bookmarkVector.size(); ++i)250 for (int i = 0; i < m_bookmarkVector.size(); ++i) 249 251 { 250 252 bookmarkLinesSet.insert(m_bookmarkVector.at(i).first); … … 260 262 void UIVMLogPage::setFiltered(bool filtered) 261 263 { 262 if (m_bFiltered == filtered)264 if (m_bFiltered == filtered) 263 265 return; 264 266 m_bFiltered = filtered; 265 if (m_pTextEdit)267 if (m_pTextEdit) 266 268 { 267 269 m_pTextEdit->setShownTextIsFiltered(m_bFiltered); … … 270 272 emit sigLogPageFilteredChanged(m_bFiltered); 271 273 } 274 275 void UIVMLogPage::setShowLineNumbers(bool bShowLineNumbers) 276 { 277 if(m_bShowLineNumbers == bShowLineNumbers) 278 return; 279 m_bShowLineNumbers = bShowLineNumbers; 280 if(m_pTextEdit) 281 m_pTextEdit->setShowLineNumbers(m_bShowLineNumbers); 282 update(); 283 } 284 285 void UIVMLogPage::setWrapLines(bool bWrapLines) 286 { 287 if(m_bWrapLines == bWrapLines) 288 return; 289 m_bWrapLines = bWrapLines; 290 if(m_pTextEdit) 291 m_pTextEdit->setWrapLines(m_bWrapLines); 292 update(); 293 } -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogPage.h
r70578 r70581 92 92 void setFiltered(bool filtered); 93 93 94 void setShowLineNumbers(bool bShowLineNumbers); 95 void setWrapLines(bool bWrapLines); 96 94 97 private slots: 95 98 … … 119 122 if m_bFiltered is false than (m_strLog == m_pTextEdit->text()). */ 120 123 bool m_bFiltered; 124 bool m_bShowLineNumbers; 125 bool m_bWrapLines; 121 126 }; 122 127 -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerBookmarksPanel.cpp
r70549 r70581 28 28 # include <QLabel> 29 29 # include <QPushButton> 30 # include <QSpacerItem> 30 31 31 /* GUI includes: */ 32 32 # include "QIToolButton.h" … … 43 43 , m_pDeleteAllButton(0) 44 44 , m_pDeleteCurrentButton(0) 45 , m_pSpacerItem(0)46 45 { 47 46 prepare(); … … 56 55 QStringList bList; 57 56 bList << "Bookmarks List"; 58 for (int i = 0; i < bookmarkVector.size(); ++i)57 for (int i = 0; i < bookmarkVector.size(); ++i) 59 58 { 60 59 QString strItem = QString("BookMark %1 at Line %2: %3").arg(QString::number(i)). … … 113 112 mainLayout()->addWidget(m_pDeleteAllButton, 0); 114 113 115 116 m_pSpacerItem = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); 117 AssertPtrReturnVoid(m_pSpacerItem); 118 mainLayout()->addItem(m_pSpacerItem); 114 mainLayout()->addStretch(4); 119 115 } 120 116 -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerBookmarksPanel.h
r70549 r70581 25 25 class QComboBox; 26 26 class QPushButton; 27 class QSpacerItem;28 27 class QIToolButton; 29 28 … … 76 75 QPushButton *m_pDeleteAllButton; 77 76 QIToolButton *m_pDeleteCurrentButton; 78 QSpacerItem *m_pSpacerItem;79 77 }; 80 78 -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSearchPanel.cpp
r70539 r70581 52 52 , m_pMatchWholeWordCheckBox(0) 53 53 , m_pHighlightAllCheckBox(0) 54 , m_pWarningSpacer(0), m_pWarningIcon(0), m_pInfoLabel(0) 54 , m_pWarningIcon(0) 55 , m_pInfoLabel(0) 55 56 , m_iSearchPosition(0) 56 57 , m_iMatchCount(-1) … … 270 271 } 271 272 272 /* Create warning-spacer: */273 m_pWarningSpacer = new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::Minimum);274 AssertPtrReturnVoid(m_pWarningSpacer);275 {276 /* Add warning-spacer to main-layout: */277 mainLayout()->addItem(m_pWarningSpacer);278 }279 280 273 /* Create warning-icon: */ 281 274 m_pWarningIcon = new QLabel(this); … … 306 299 mainLayout()->addWidget(m_pInfoLabel); 307 300 } 308 309 m_pSpacerItem = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); 310 AssertPtrReturnVoid(m_pSpacerItem); 311 { 312 mainLayout()->addItem(m_pSpacerItem); 313 } 301 mainLayout()->addStretch(2); 314 302 } 315 303 -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSearchPanel.h
r70539 r70581 29 29 class QHBoxLayout; 30 30 class QLabel; 31 class QSpacerItem;32 31 class UIMiniCancelButton; 33 32 class UIRoundRectSegmentedButton; … … 118 117 QCheckBox *m_pMatchWholeWordCheckBox; 119 118 QCheckBox *m_pHighlightAllCheckBox; 120 /** Holds the instance of warning spacer-item we create. */ 121 QSpacerItem *m_pWarningSpacer; 119 122 120 /** Holds the instance of warning icon we create. */ 123 121 QLabel *m_pWarningIcon; 124 122 /** Holds the instance of info label we create. */ 125 123 QLabel *m_pInfoLabel; 126 /** Holds the instance of spacer item we create. */ 127 QSpacerItem *m_pSpacerItem; 124 128 125 /** Holds the position where we start the next search. */ 129 126 int m_iSearchPosition; -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSettingsPanel.cpp
r70578 r70581 26 26 # include <QFontDatabase> 27 27 # endif 28 # include <QLabel> 29 # include <QPushButton> 30 # include <QSpacerItem> 28 # include <QCheckBox> 29 31 30 /* GUI includes: */ 32 31 # include "QIToolButton.h" 33 # include "UIVMLogViewer BookmarksPanel.h"32 # include "UIVMLogViewerSettingsPanel.h" 34 33 # include "UIVMLogViewerWidget.h" 35 34 … … 37 36 38 37 39 UIVMLogViewerBookmarksPanel::UIVMLogViewerBookmarksPanel(QWidget *pParent, UIVMLogViewerWidget *pViewer) 40 : UIVMLogViewerPanel(pParent, pViewer) 41 , m_iMaxBookmarkTextLength(60) 42 , m_pBookmarksComboBox(0) 43 , m_pDeleteAllButton(0) 44 , m_pDeleteCurrentButton(0) 45 , m_pSpacerItem(0) 38 UIVMLogViewerSettingsPanel::UIVMLogViewerSettingsPanel(QWidget *pParent, UIVMLogViewerWidget *pViewer) 39 : UIVMLogViewerPanel(pParent, pViewer) 40 , m_pLineNumberCheckBox(0) 41 , m_pWrapLinesCheckBox(0) 46 42 { 47 43 prepare(); 48 44 } 49 45 50 void UIVMLogViewer BookmarksPanel::updateBookmarkList(const QVector<QPair<int, QString> > &bookmarkVector)46 void UIVMLogViewerSettingsPanel::setShowLineNumbers(bool bShowLineNumbers) 51 47 { 52 if (!m_pBookmarksComboBox || !viewer())48 if(!m_pLineNumberCheckBox) 53 49 return; 54 55 m_pBookmarksComboBox->clear(); 56 QStringList bList; 57 bList << "Bookmarks List"; 58 for(int i = 0; i < bookmarkVector.size(); ++i) 59 { 60 QString strItem = QString("BookMark %1 at Line %2: %3").arg(QString::number(i)). 61 arg(QString::number(bookmarkVector.at(i).first)).arg(bookmarkVector.at(i).second); 62 63 if (strItem.length() > m_iMaxBookmarkTextLength) 64 { 65 strItem.resize(m_iMaxBookmarkTextLength); 66 strItem.replace(m_iMaxBookmarkTextLength, 3, QString("...")); 67 } 68 bList << strItem; 69 } 70 m_pBookmarksComboBox->addItems(bList); 71 /* Goto last item of the combobox: */ 72 m_pBookmarksComboBox->setCurrentIndex(m_pBookmarksComboBox->count()-1); 50 if(m_pLineNumberCheckBox->isChecked() == bShowLineNumbers) 51 return; 52 m_pLineNumberCheckBox->setChecked(bShowLineNumbers); 73 53 } 74 54 75 void UIVMLogViewer BookmarksPanel::setBookmarkIndex(int index)55 void UIVMLogViewerSettingsPanel::setWrapLines(bool bWrapLines) 76 56 { 77 if (!m_pBookmarksComboBox)57 if(!m_pWrapLinesCheckBox) 78 58 return; 79 /* If there is only Title of the combo, then goto that item: */ 80 if (m_pBookmarksComboBox->count() == 1 || index >= m_pBookmarksComboBox->count()) 81 { 82 m_pBookmarksComboBox->setCurrentIndex(0); 59 if(m_pWrapLinesCheckBox->isChecked() == bWrapLines) 83 60 return; 84 } 85 /* index+1 since we always have a 0th item in our combo box. */ 86 m_pBookmarksComboBox->setCurrentIndex(index+1); 61 m_pWrapLinesCheckBox->setChecked(bWrapLines); 87 62 } 88 63 89 void UIVMLogViewerBookmarksPanel::prepareWidgets() 64 65 void UIVMLogViewerSettingsPanel::prepareWidgets() 90 66 { 91 67 if (!mainLayout()) 92 68 return; 93 69 94 m_pBookmarksComboBox = new QComboBox(this); 95 QFontMetrics fontMetrics = m_pBookmarksComboBox->fontMetrics(); 96 AssertPtrReturnVoid(m_pBookmarksComboBox); 97 m_pBookmarksComboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); 98 m_pBookmarksComboBox->setMaximumWidth(fontMetrics.width('a') * (m_iMaxBookmarkTextLength + 2)); 99 /* Make sure we have 0th item in our combo box. */ 100 m_pBookmarksComboBox->insertItem(0, "Bookmarks List"); 70 m_pLineNumberCheckBox = new QCheckBox(this); 71 AssertPtrReturnVoid(m_pLineNumberCheckBox); 72 m_pLineNumberCheckBox->setChecked(true); 73 mainLayout()->addWidget(m_pLineNumberCheckBox, 0, Qt::AlignLeft); 101 74 75 m_pWrapLinesCheckBox = new QCheckBox(this); 76 AssertPtrReturnVoid(m_pWrapLinesCheckBox); 77 m_pWrapLinesCheckBox->setChecked(false); 78 mainLayout()->addWidget(m_pWrapLinesCheckBox, 0, Qt::AlignLeft); 102 79 103 mainLayout()->addWidget(m_pBookmarksComboBox, 2/*, Qt::AlignLeft*/); 104 105 m_pDeleteCurrentButton = new QIToolButton(this); 106 m_pDeleteCurrentButton->setIcon(m_pDeleteCurrentButton->style()->standardIcon(QStyle::SP_TitleBarCloseButton)); 107 108 AssertPtrReturnVoid(m_pBookmarksComboBox); 109 mainLayout()->addWidget(m_pDeleteCurrentButton, 0); 110 111 m_pDeleteAllButton = new QPushButton(this); 112 AssertPtrReturnVoid(m_pDeleteAllButton); 113 mainLayout()->addWidget(m_pDeleteAllButton, 0); 114 115 116 m_pSpacerItem = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); 117 AssertPtrReturnVoid(m_pSpacerItem); 118 mainLayout()->addItem(m_pSpacerItem); 80 mainLayout()->addStretch(2); 119 81 } 120 82 121 void UIVMLogViewer BookmarksPanel::prepareConnections()83 void UIVMLogViewerSettingsPanel::prepareConnections() 122 84 { 123 connect(m_pBookmarksComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), 124 this, &UIVMLogViewerBookmarksPanel::sltBookmarkSelected); 125 126 connect(m_pDeleteAllButton, &QPushButton::clicked, this, &UIVMLogViewerBookmarksPanel::sigDeleteAllBookmarks); 127 connect(m_pDeleteCurrentButton, &QIToolButton::clicked, this, &UIVMLogViewerBookmarksPanel::sltDeleteCurrentBookmark); 85 if (m_pLineNumberCheckBox) 86 connect(m_pLineNumberCheckBox, &QCheckBox::toggled, this, &UIVMLogViewerSettingsPanel::sigShowLineNumbers); 87 if (m_pWrapLinesCheckBox) 88 connect(m_pWrapLinesCheckBox, &QCheckBox::toggled, this, &UIVMLogViewerSettingsPanel::sigWrapLines); 128 89 } 129 90 91 void UIVMLogViewerSettingsPanel::retranslateUi() 92 { 93 UIVMLogViewerPanel::retranslateUi(); 94 m_pLineNumberCheckBox->setText(UIVMLogViewerWidget::tr("Show Line Numbers")); 95 m_pLineNumberCheckBox->setToolTip(UIVMLogViewerWidget::tr("Show Line Numbers")); 130 96 131 void UIVMLogViewerBookmarksPanel::retranslateUi() 132 { 133 if (m_pDeleteCurrentButton) 134 m_pDeleteCurrentButton->setToolTip(UIVMLogViewerWidget::tr("Delete the current bookmark.")); 135 if (m_pDeleteAllButton) 136 { 137 m_pDeleteAllButton->setToolTip(UIVMLogViewerWidget::tr("Delete all bookmarks.")); 138 m_pDeleteAllButton->setText(UIVMLogViewerWidget::tr("Delete all")); 139 } 140 UIVMLogViewerPanel::retranslateUi(); 97 m_pWrapLinesCheckBox->setText(UIVMLogViewerWidget::tr("Wrap Lines")); 98 m_pWrapLinesCheckBox->setToolTip(UIVMLogViewerWidget::tr("Wrap Lines")); 141 99 } 142 143 void UIVMLogViewerBookmarksPanel::sltDeleteCurrentBookmark()144 {145 if (!m_pBookmarksComboBox)146 return;147 148 if (m_pBookmarksComboBox->currentIndex() == 0)149 return;150 emit sigDeleteBookmark(m_pBookmarksComboBox->currentIndex() - 1);151 }152 153 void UIVMLogViewerBookmarksPanel::sltBookmarkSelected(int index)154 {155 /* Do nothing if the index is 0, that is combo box title item: */156 if (index <= 0)157 return;158 emit sigBookmarkSelected(index - 1);159 } -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerSettingsPanel.h
r70578 r70581 16 16 */ 17 17 18 #ifndef ___UIVMLogViewer BookmarksPanel_h___19 #define ___UIVMLogViewer BookmarksPanel_h___18 #ifndef ___UIVMLogViewerSettingssPanel_h___ 19 #define ___UIVMLogViewerSettingssPanel_h___ 20 20 21 21 /* GUI includes: */ … … 23 23 24 24 /* Forward declarations: */ 25 class QComboBox; 26 class QPushButton; 27 class QSpacerItem; 28 class QIToolButton; 25 class QCheckBox; 26 class UIVMLogViewerWidget; 29 27 30 /** UIVMLogViewerPanel extension providing GUI for bookmark management. Show a list of bookmarks currently set 31 for displayed log page. It has controls to navigate and clear bookmarks. */ 32 class UIVMLogViewerBookmarksPanel : public UIVMLogViewerPanel 28 /** UIVMLogViewerPanel extension providing GUI to manage logviewer settings. */ 29 class UIVMLogViewerSettingsPanel : public UIVMLogViewerPanel 33 30 { 34 31 Q_OBJECT; … … 36 33 signals: 37 34 38 void sigDeleteBookmark(int bookmarkIndex); 39 void sigDeleteAllBookmarks(); 40 void sigBookmarkSelected(int index); 35 void sigShowLineNumbers(bool show); 36 void sigWrapLines(bool show); 41 37 42 38 public: 43 39 44 UIVMLogViewer BookmarksPanel(QWidget *pParent, UIVMLogViewerWidget *pViewer);40 UIVMLogViewerSettingsPanel(QWidget *pParent, UIVMLogViewerWidget *pViewer); 45 41 46 /* Adds a single bookmark to an existing list of bookmarks. Possibly called 47 by UIVMLogViewerWidget when user adds a bookmark thru context menu etc. */ 48 void addBookmark(const QPair<int, QString> &newBookmark); 49 /* Clear the bookmark list and show this list instead. Probably done after 50 user switches to another log page tab etc. */ 51 void setBookmarksList(const QVector<QPair<int, QString> > &bookmarkList); 52 void updateBookmarkList(const QVector<QPair<int, QString> > &bookmarkVector); 42 void setShowLineNumbers(bool bShowLineNumbers); 43 void setWrapLines(bool bWrapLines); 53 44 54 45 public slots: 46 55 47 56 48 protected: … … 64 56 private slots: 65 57 66 void sltDeleteCurrentBookmark();67 void sltBookmarkSelected(int index);68 69 58 private: 70 59 71 /* @a index is the index of the curent bookmark. */ 72 void setBookmarkIndex(int index); 73 74 const int m_iMaxBookmarkTextLength; 75 QComboBox *m_pBookmarksComboBox; 76 QPushButton *m_pDeleteAllButton; 77 QIToolButton *m_pDeleteCurrentButton; 78 QSpacerItem *m_pSpacerItem; 60 QCheckBox *m_pLineNumberCheckBox; 61 QCheckBox *m_pWrapLinesCheckBox; 79 62 }; 80 63 81 #endif /* !___UIVMLogViewer BookmarksPanel_h___ */64 #endif /* !___UIVMLogViewerSettingsPanel_h___ */ -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerTextEdit.cpp
r70578 r70581 120 120 QSize sizeHint() const 121 121 { 122 if (!m_pTextEdit)122 if (!m_pTextEdit) 123 123 return QSize(); 124 124 return QSize(m_pTextEdit->lineNumberAreaWidth(), 0); … … 129 129 void paintEvent(QPaintEvent *event) 130 130 { 131 if (m_pTextEdit)131 if (m_pTextEdit) 132 132 m_pTextEdit->lineNumberAreaPaintEvent(event); 133 133 } … … 154 154 , m_mouseCursorLine(-1) 155 155 , m_bShownTextIsFiltered(false) 156 , m_bShowLineNumbers(true) 157 , m_bWrapLines(false) 156 158 { 157 159 setMouseTracking(true); … … 190 192 setWordWrapMode(QTextOption::NoWrap); 191 193 setReadOnly(true); 192 if (m_pLineNumberArea)194 if (m_pLineNumberArea) 193 195 m_pLineNumberArea->setFont(font); 194 196 … … 197 199 int UIVMLogViewerTextEdit::lineNumberAreaWidth() 198 200 { 201 if(!m_bShowLineNumbers) 202 return 0; 203 199 204 int digits = 1; 200 205 int max = qMax(1, blockCount()); … … 211 216 void UIVMLogViewerTextEdit::lineNumberAreaPaintEvent(QPaintEvent *event) 212 217 { 218 if(!m_bShowLineNumbers) 219 return; 213 220 QPainter painter(m_pLineNumberArea); 214 221 painter.fillRect(event->rect(), Qt::lightGray); … … 228 235 painter.drawPath(path); 229 236 } 230 if ((blockNumber + 1) == m_mouseCursorLine)237 if ((blockNumber + 1) == m_mouseCursorLine && underMouse()) 231 238 { 232 239 painter.setPen(Qt::red); … … 249 256 /* If shown text is filtered, do not create Bookmark action since 250 257 we disable all bookmarking related functionalities in this case. */ 251 if (m_bShownTextIsFiltered)258 if (m_bShownTextIsFiltered) 252 259 { 253 260 QPlainTextEdit::contextMenuEvent(pEvent); … … 278 285 int rectX = viewport()->width() - rectWidth; 279 286 int rectMargin = 4; 280 if (verticalScrollBar())287 if (verticalScrollBar()) 281 288 rectX -= verticalScrollBar()->width(); 282 289 QPainter painter(viewport()); … … 306 313 } 307 314 315 void UIVMLogViewerTextEdit::leaveEvent(QEvent * pEvent) 316 { 317 QPlainTextEdit::leaveEvent(pEvent); 318 /* Force a redraw as mouse leaves this to remove the mouse 319 cursor track rectangle (the red rectangle we draw on the line number area. */ 320 update(); 321 } 308 322 309 323 void UIVMLogViewerTextEdit::sltUpdateLineNumberAreaWidth(int /* newBlockCount */) … … 331 345 { 332 346 UIIndicatorScrollBar* vScrollBar = qobject_cast<UIIndicatorScrollBar*>(verticalScrollBar()); 333 if (vScrollBar)347 if (vScrollBar) 334 348 vScrollBar->setMarkingsVector(vector); 335 349 } … … 338 352 { 339 353 UIIndicatorScrollBar* vScrollBar = qobject_cast<UIIndicatorScrollBar*>(verticalScrollBar()); 340 if (vScrollBar)354 if (vScrollBar) 341 355 vScrollBar->clearMarkingsVector(); 342 356 } … … 345 359 { 346 360 QTextDocument* pDocument = document(); 347 if (!pDocument)361 if (!pDocument) 348 362 return; 349 363 … … 357 371 { 358 372 int height = 0; 359 if (viewport())373 if (viewport()) 360 374 height = viewport()->height(); 361 if (verticalScrollBar() && verticalScrollBar()->isVisible())375 if (verticalScrollBar() && verticalScrollBar()->isVisible()) 362 376 height -= horizontalScrollBar()->height(); 363 377 int singleLineHeight = fontMetrics().lineSpacing(); 364 if (singleLineHeight == 0)378 if (singleLineHeight == 0) 365 379 return 0; 366 380 return height / singleLineHeight; … … 392 406 void UIVMLogViewerTextEdit::toggleBookmark(const QPair<int, QString>& bookmark) 393 407 { 394 if (m_bShownTextIsFiltered)408 if (m_bShownTextIsFiltered) 395 409 return; 396 410 397 411 int lineNumber = bookmark.first; 398 412 399 if (m_bookmarkLineSet.contains(lineNumber))413 if (m_bookmarkLineSet.contains(lineNumber)) 400 414 emit sigDeleteBookmark(bookmark); 401 415 else … … 405 419 void UIVMLogViewerTextEdit::setShownTextIsFiltered(bool warning) 406 420 { 407 if (m_bShownTextIsFiltered == warning)421 if (m_bShownTextIsFiltered == warning) 408 422 return; 409 423 m_bShownTextIsFiltered = warning; 410 424 } 411 425 426 void UIVMLogViewerTextEdit::setShowLineNumbers(bool bShowLineNumbers) 427 { 428 if(m_bShowLineNumbers == bShowLineNumbers) 429 return; 430 m_bShowLineNumbers = bShowLineNumbers; 431 emit updateRequest(viewport()->rect(), 0); 432 } 433 434 void UIVMLogViewerTextEdit::setWrapLines(bool bWrapLines) 435 { 436 if(m_bWrapLines == bWrapLines) 437 return; 438 m_bWrapLines = bWrapLines; 439 update(); 440 } 441 442 412 443 #include "UIVMLogViewerTextEdit.moc" -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerTextEdit.h
r70578 r70581 49 49 void setShownTextIsFiltered(bool warning); 50 50 51 void setShowLineNumbers(bool bShowLineNumbers); 52 void setWrapLines(bool bWrapLines); 53 51 54 protected: 52 55 … … 55 58 virtual void resizeEvent(QResizeEvent *pEvent) /* override */; 56 59 virtual void mouseMoveEvent(QMouseEvent *pEvent) /* override */; 60 virtual void leaveEvent(QEvent * event) /* override */; 57 61 58 62 private slots: … … 84 88 And we dont display bookmarks and adding/deleting bookmarks are disabled. */ 85 89 bool m_bShownTextIsFiltered; 90 bool m_bShowLineNumbers; 91 bool m_bWrapLines; 92 86 93 friend class UILineNumberArea; 87 94 }; -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp
r70578 r70581 43 43 # include "UIVMLogViewerFilterPanel.h" 44 44 # include "UIVMLogViewerSearchPanel.h" 45 # include "UIVMLogViewerSettingsPanel.h" 45 46 # include "UIToolBar.h" 46 47 … … 61 62 , m_pFilterPanel(0) 62 63 , m_pBookmarksPanel(0) 64 , m_pSettingsPanel(0) 63 65 , m_pMainLayout(0) 64 66 , m_enmEmbedding(enmEmbedding) … … 70 72 , m_pActionBookmark(0) 71 73 , m_pMenu(0) 72 , m_bMarkBookmarkLines(0) 74 , m_bShowLineNumbers(true) 75 , m_bWrapLines(false) 76 73 77 { 74 78 /* Prepare VM Log-Viewer: */ … … 110 114 { 111 115 UIVMLogPage* logPage = currentLogPage(); 112 if (!logPage)116 if (!logPage) 113 117 return; 114 118 logPage->deleteBookmark(index); … … 120 124 { 121 125 UIVMLogPage* logPage = currentLogPage(); 122 if (!logPage)126 if (!logPage) 123 127 return; 124 128 logPage->deleteAllBookmarks(); … … 130 134 void UIVMLogViewerWidget::sltUpdateBookmarkPanel() 131 135 { 132 if (!currentLogPage() || !m_pBookmarksPanel)136 if (!currentLogPage() || !m_pBookmarksPanel) 133 137 return; 134 138 disconnect(m_pBookmarksPanel, &UIVMLogViewerBookmarksPanel::sigBookmarkSelected, … … 141 145 void UIVMLogViewerWidget::gotoBookmark(int bookmarkIndex) 142 146 { 143 if (!currentLogPage())147 if (!currentLogPage()) 144 148 return; 145 149 currentLogPage()->scrollToBookmark(bookmarkIndex); … … 277 281 void UIVMLogViewerWidget::sltFilterApplied(bool isOriginal) 278 282 { 279 if (currentLogPage())283 if (currentLogPage()) 280 284 currentLogPage()->setFiltered(!isOriginal); 281 285 /* Reapply the search to get highlighting etc. correctly */ … … 288 292 /* Disable bookmark panel since bookmarks are stored as line numbers within 289 293 the original log text and does not mean much in a reduced/filtered one. */ 290 if (m_pBookmarksPanel)291 { 292 if (isFiltered)294 if (m_pBookmarksPanel) 295 { 296 if (isFiltered) 293 297 { 294 298 m_pBookmarksPanel->setEnabled(false); … … 300 304 } 301 305 306 void UIVMLogViewerWidget::sltShowLineNumbers(bool bShowLineNumbers) 307 { 308 if (m_bShowLineNumbers == bShowLineNumbers) 309 return; 310 311 m_bShowLineNumbers = bShowLineNumbers; 312 /* Set all log page instances. */ 313 for (int i = 0; i < m_logPageList.size(); ++i) 314 { 315 UIVMLogPage* pLogPage = qobject_cast<UIVMLogPage*>(m_logPageList[i]); 316 if (pLogPage) 317 pLogPage->setShowLineNumbers(m_bShowLineNumbers); 318 } 319 } 320 321 void UIVMLogViewerWidget::sltWrapLines(bool bWrapLines) 322 { 323 if (m_bWrapLines == bWrapLines) 324 return; 325 326 m_bWrapLines = bWrapLines; 327 /* Set all log page instances. */ 328 for (int i = 0; i < m_logPageList.size(); ++i) 329 { 330 UIVMLogPage* pLogPage = qobject_cast<UIVMLogPage*>(m_logPageList[i]); 331 if (pLogPage) 332 pLogPage->setWrapLines(m_bWrapLines); 333 } 334 } 335 336 302 337 void UIVMLogViewerWidget::setMachine(const CMachine &machine) 303 338 { … … 330 365 m_panelActionMap.insert(m_pSearchPanel, m_pActionFind); 331 366 m_panelActionMap.insert(m_pFilterPanel, m_pActionFilter); 367 m_panelActionMap.insert(m_pSettingsPanel, m_pActionSettings); 332 368 } 333 369 … … 389 425 this, &UIVMLogViewerWidget::gotoBookmark); 390 426 } 427 428 m_pSettingsPanel = new UIVMLogViewerSettingsPanel(this, this); 429 AssertPtrReturnVoid(m_pSettingsPanel); 430 { 431 installEventFilter(m_pSettingsPanel); 432 m_pSettingsPanel->hide(); 433 /* Initialize settings' panel checkboxes: */ 434 m_pSettingsPanel->setShowLineNumbers(m_bShowLineNumbers); 435 m_pSettingsPanel->setWrapLines(m_bWrapLines); 436 437 m_pMainLayout->insertWidget(5, m_pSettingsPanel); 438 connect(m_pSettingsPanel, &UIVMLogViewerSettingsPanel::sigShowLineNumbers, this, &UIVMLogViewerWidget::sltShowLineNumbers); 439 connect(m_pSettingsPanel, &UIVMLogViewerSettingsPanel::sigWrapLines, this, &UIVMLogViewerWidget::sltWrapLines); 440 } 391 441 } 392 442 … … 422 472 } 423 473 474 /* Create and configure 'Settings' action: */ 475 m_pActionSettings = new QAction(this); 476 AssertPtrReturnVoid(m_pActionSettings); 477 { 478 m_pActionSettings->setCheckable(true); 479 connect(m_pActionSettings, &QAction::triggered, this, &UIVMLogViewerWidget::sltPanelActionTriggered); 480 } 481 482 424 483 /* Create and configure 'Refresh' action: */ 425 484 m_pActionRefresh = new QAction(this); … … 469 528 if (m_pActionBookmark) 470 529 m_pActionBookmark->setIcon(UIIconPool::iconSet(QString(":/%1_bookmark_24px.png").arg(strPrefix), 530 QString(":/%1_bookmark_disabled_24px.png").arg(strPrefix))); 531 532 if (m_pActionSettings) 533 m_pActionSettings->setIcon(UIIconPool::iconSet(QString(":/%1_bookmark_24px.png").arg(strPrefix), 471 534 QString(":/%1_bookmark_disabled_24px.png").arg(strPrefix))); 472 535 } … … 497 560 if (m_pActionBookmark) 498 561 m_pToolBar->addAction(m_pActionBookmark); 562 563 if (m_pActionSettings) 564 m_pToolBar->addAction(m_pActionSettings); 499 565 500 566 #ifdef VBOX_WS_MAC … … 528 594 if (m_pActionBookmark) 529 595 m_pMenu->addAction(m_pActionBookmark); 530 596 if (m_pActionSettings) 597 m_pMenu->addAction(m_pActionSettings); 531 598 } 532 599 } … … 576 643 m_pActionBookmark->setToolTip(tr("Bookmark the line")); 577 644 m_pActionBookmark->setStatusTip(tr("Bookmark the line")); 645 } 646 647 if (m_pActionSettings) 648 { 649 m_pActionSettings->setText(tr("&Settings")); 650 m_pActionSettings->setToolTip(tr("LogViewer Settings")); 651 m_pActionSettings->setStatusTip(tr("LogViewer Settings")); 578 652 } 579 653 … … 606 680 607 681 /* Make sure the log view widget has the focus: */ 608 if (currentLogPage())682 if (currentLogPage()) 609 683 currentLogPage()->setFocus(); 610 684 } … … 761 835 /* Create page-container: */ 762 836 UIVMLogPage* pLogPage = new UIVMLogPage(this); 837 AssertPtrReturnVoid(pLogPage); 838 763 839 connect(pLogPage, &UIVMLogPage::sigBookmarksUpdated, this, &UIVMLogViewerWidget::sltUpdateBookmarkPanel); 764 840 connect(pLogPage, &UIVMLogPage::sigLogPageFilteredChanged, this, &UIVMLogViewerWidget::sltLogPageFilteredChanged); 765 AssertPtrReturnVoid(pLogPage); 841 /* Initialize setting for this log page */ 842 pLogPage->setShowLineNumbers(m_bShowLineNumbers); 843 pLogPage->setWrapLines(m_bWrapLines); 766 844 /* Set the file name only if we really have log file to read. */ 767 845 if (!noLogsToShow) -
trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.h
r70578 r70581 42 42 class UIVMLogViewerPanel; 43 43 class UIVMLogViewerSearchPanel; 44 class UIVMLogViewerSettingsPanel; 44 45 45 46 /* Type definitions: */ … … 115 116 void sltLogPageFilteredChanged(bool isFiltered); 116 117 118 void sltShowLineNumbers(bool bShowLineNumbers); 119 void sltWrapLines(bool bWrapLine); 120 117 121 private: 118 122 … … 174 178 QVector<QWidget*> m_logPageList; 175 179 176 /** Holds the index to the current tab: */ 177 //int m_iCurrentTabIndex; 178 179 /** Holds the instance of search-panel. */ 180 UIVMLogViewerSearchPanel *m_pSearchPanel; 181 /** Holds the instance of filter panel. */ 182 UIVMLogViewerFilterPanel *m_pFilterPanel; 183 UIVMLogViewerBookmarksPanel *m_pBookmarksPanel; 184 QMap<UIVMLogViewerPanel*, QAction*> m_panelActionMap; 185 186 /** Holds the list of log file content. */ 187 // VMLogMap m_logMap; 188 // mutable BookmarkMap m_bookmarkMap; 180 /** @name Panel instances and a QMap for mapping panel instances to related actions. 181 * @{ */ 182 UIVMLogViewerSearchPanel *m_pSearchPanel; 183 UIVMLogViewerFilterPanel *m_pFilterPanel; 184 UIVMLogViewerBookmarksPanel *m_pBookmarksPanel; 185 UIVMLogViewerSettingsPanel *m_pSettingsPanel; 186 QMap<UIVMLogViewerPanel*, QAction*> m_panelActionMap; 187 /** @} */ 189 188 QVBoxLayout *m_pMainLayout; 190 189 … … 194 193 /** @name Toolbar and menu variables. 195 194 * @{ */ 196 /** Holds the toolbar widget instance. */197 195 UIToolBar *m_pToolBar; 198 /** Holds the Find action instance. */199 196 QAction *m_pActionFind; 200 /** Holds the Filter action instance. */201 197 QAction *m_pActionFilter; 202 /** Holds the Refresh action instance. */203 198 QAction *m_pActionRefresh; 204 /** Holds the Save action instance. */205 199 QAction *m_pActionSave; 206 /** Holds the Bookmark action instance. */207 200 QAction *m_pActionBookmark; 208 /** Holds the menu object instance. */201 QAction *m_pActionSettings; 209 202 QMenu *m_pMenu; 210 203 /** @} */ 211 const bool m_bMarkBookmarkLines; 204 205 /** @name Toolbar and menu variables. 206 * @{ */ 207 /** Showing/hiding line numbers and line wraping settings are set per 208 UIVMLogViewerWidget and applies to all log pages (all tabs) */ 209 bool m_bShowLineNumbers; 210 bool m_bWrapLines; 211 /** @} */ 212 212 213 friend class UIVMLogViewerBookmarksPanel; 213 214 friend class UIVMLogViewerFilterPanel; 214 215 friend class UIVMLogViewerSearchPanel; 216 friend class UIVMLogViewerSettingsPanel; 215 217 friend class UIVMLogViewerPanel; 216 218 };
Note:
See TracChangeset
for help on using the changeset viewer.