338
347
, mViewer (aViewer)
339
348
, mButtonClose (0)
340
349
, mSearchName (0), mSearchString (0)
341
, mButtonPrev (0), mButtonNext (0)
350
, mButtonsNextPrev (0)
342
351
, mCaseSensitive (0)
343
352
, mWarningSpacer (0), mWarningIcon (0), mWarningString (0)
345
mButtonClose = new QToolButton (this);
346
mButtonClose->setAutoRaise (true);
347
mButtonClose->setFocusPolicy (Qt::TabFocus);
348
mButtonClose->setShortcut (QKeySequence (Qt::Key_Escape));
354
mButtonClose = new VBoxMiniCancelButton (this);
349
355
connect (mButtonClose, SIGNAL (clicked()), this, SLOT (hide()));
350
mButtonClose->setIcon (VBoxGlobal::iconSet (":/delete_16px.png",
351
":/delete_dis_16px.png"));
353
357
mSearchName = new QLabel (this);
354
mSearchString = new QLineEdit (this);
358
mSearchString = new VBoxSearchField (this);
355
359
mSearchString->setSizePolicy (QSizePolicy::Preferred,
356
360
QSizePolicy::Fixed);
357
361
connect (mSearchString, SIGNAL (textChanged (const QString &)),
358
362
this, SLOT (findCurrent (const QString &)));
360
mButtonNext = new QToolButton (this);
361
mButtonNext->setEnabled (false);
362
mButtonNext->setAutoRaise (true);
363
mButtonNext->setFocusPolicy (Qt::TabFocus);
364
mButtonNext->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
365
connect (mButtonNext, SIGNAL (clicked()), this, SLOT (findNext()));
366
mButtonNext->setIcon (VBoxGlobal::iconSet (":/list_movedown_16px.png",
367
":/list_movedown_disabled_16px.png"));
369
mButtonPrev = new QToolButton (this);
370
mButtonPrev->setEnabled (false);
371
mButtonPrev->setAutoRaise (true);
372
mButtonPrev->setFocusPolicy (Qt::TabFocus);
373
mButtonPrev->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
374
connect (mButtonPrev, SIGNAL (clicked()), this, SLOT (findBack()));
375
mButtonPrev->setIcon (VBoxGlobal::iconSet (":/list_moveup_16px.png",
376
":/list_moveup_disabled_16px.png"));
364
mButtonsNextPrev = new VBoxSegmentedButton (2, this);
365
mButtonsNextPrev->setEnabled (0, false);
366
mButtonsNextPrev->setIcon (0, VBoxGlobal::iconSet (":/list_movedown_16px.png",
367
":/list_movedown_disabled_16px.png"));
368
mButtonsNextPrev->setEnabled (1, false);
369
mButtonsNextPrev->setIcon (1, VBoxGlobal::iconSet (":/list_moveup_16px.png",
370
":/list_moveup_disabled_16px.png"));
371
connect (mButtonsNextPrev, SIGNAL (clicked (int)), this, SLOT (find (int)));
378
373
mCaseSensitive = new QCheckBox (this);
391
386
QSpacerItem *spacer = new QSpacerItem (0, 0, QSizePolicy::Expanding,
392
387
QSizePolicy::Minimum);
389
#ifdef VBOX_DARWIN_USE_NATIVE_CONTROLS
390
QFont font = mSearchName->font();
391
font.setPointSize (::darwinSmallFontSize());
392
mSearchName->setFont (font);
393
mCaseSensitive->setFont (font);
394
mWarningString->setFont (font);
395
#endif /* VBOX_DARWIN_USE_NATIVE_CONTROLS */
394
397
QHBoxLayout *mainLayout = new QHBoxLayout (this);
395
398
mainLayout->setSpacing (5);
396
399
mainLayout->setContentsMargins (0, 0, 0, 0);
397
400
mainLayout->addWidget (mButtonClose);
398
401
mainLayout->addWidget (mSearchName);
399
402
mainLayout->addWidget (mSearchString);
400
mainLayout->addWidget (mButtonNext);
401
mainLayout->addWidget (mButtonPrev);
403
mainLayout->addWidget (mButtonsNextPrev);
402
404
mainLayout->addWidget (mCaseSensitive);
403
405
mainLayout->addItem (mWarningSpacer);
404
406
mainLayout->addWidget (mWarningIcon);
418
420
mSearchName->setText (tr ("Find "));
419
421
mSearchString->setToolTip (tr ("Enter a search string here"));
421
VBoxGlobal::setTextLabel (mButtonPrev, tr ("&Previous"));
422
mButtonPrev->setToolTip (tr ("Search for the previous occurrence "
425
VBoxGlobal::setTextLabel (mButtonNext, tr ("&Next"));
426
mButtonNext->setToolTip (tr ("Search for the next occurrence of "
423
mButtonsNextPrev->setTitle (0, tr ("&Next"));
424
mButtonsNextPrev->setToolTip (0, tr ("Search for the next occurrence of "
427
mButtonsNextPrev->setTitle (1, tr ("&Previous"));
428
mButtonsNextPrev->setToolTip (1, tr ("Search for the previous occurrence "
429
432
mCaseSensitive->setText (tr ("C&ase Sensitive"));
430
433
mCaseSensitive->setToolTip (tr ("Perform case sensitive search "
436
439
void VBoxLogSearchPanel::findCurrent (const QString &aSearchString)
438
mButtonNext->setEnabled (aSearchString.length());
439
mButtonPrev->setEnabled (aSearchString.length());
441
mButtonsNextPrev->setEnabled (0, aSearchString.length());
442
mButtonsNextPrev->setEnabled (1, aSearchString.length());
440
443
toggleWarning (!aSearchString.length());
441
444
if (aSearchString.length())
442
445
search (true, true);
506
515
e->QInputEvent::modifiers() & Qt::KeypadModifier) &&
507
516
(e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return))
509
mButtonNext->animateClick();
518
mButtonsNextPrev->animateClick (0);
512
521
/* handle other search next/previous shortcuts */
513
522
else if (e->key() == Qt::Key_F3)
515
524
if (e->QInputEvent::modifiers() == 0)
516
mButtonNext->animateClick();
525
mButtonsNextPrev->animateClick (0);
517
526
else if (e->QInputEvent::modifiers() == Qt::ShiftModifier)
518
mButtonPrev->animateClick();
527
mButtonsNextPrev->animateClick (1);
521
530
/* handle ctrl-f key combination as a shortcut to