Beispiel #1
0
QtUiStyle::QtUiStyle(QObject* parent)
    : UiStyle(parent)
{
    ChatViewSettings s;
    s.initAndNotify("UseCustomTimestampFormat", this, &QtUiStyle::updateUseCustomTimestampFormat);
    s.initAndNotify("TimestampFormat", this, &QtUiStyle::updateTimestampFormatString);
    s.initAndNotify("SenderPrefixMode", this, &QtUiStyle::updateSenderPrefixDisplay);
    s.initAndNotify("ShowSenderBrackets", this, &QtUiStyle::updateShowSenderBrackets);

    // If no style sheet exists, generate it on first run.
    initializeSettingsQss();
}
BufferWidget::BufferWidget(QWidget *parent)
  : AbstractBufferContainer(parent),
    _chatViewSearchController(new ChatViewSearchController(this)),
    _autoMarkerLine(true)
{
  ui.setupUi(this);
  layout()->setContentsMargins(0, 0, 0, 0);
  layout()->setSpacing(0);
  // ui.searchBar->hide();

  _chatViewSearchController->setCaseSensitive(ui.searchBar->caseSensitiveBox()->isChecked());
  _chatViewSearchController->setSearchSenders(ui.searchBar->searchSendersBox()->isChecked());
  _chatViewSearchController->setSearchMsgs(ui.searchBar->searchMsgsBox()->isChecked());
  _chatViewSearchController->setSearchOnlyRegularMsgs(ui.searchBar->searchOnlyRegularMsgsBox()->isChecked());

  connect(ui.searchBar, SIGNAL(searchChanged(const QString &)),
    _chatViewSearchController, SLOT(setSearchString(const QString &)));
  connect(ui.searchBar->caseSensitiveBox(), SIGNAL(toggled(bool)),
    _chatViewSearchController, SLOT(setCaseSensitive(bool)));
  connect(ui.searchBar->searchSendersBox(), SIGNAL(toggled(bool)),
    _chatViewSearchController, SLOT(setSearchSenders(bool)));
  connect(ui.searchBar->searchMsgsBox(), SIGNAL(toggled(bool)),
    _chatViewSearchController, SLOT(setSearchMsgs(bool)));
  connect(ui.searchBar->searchOnlyRegularMsgsBox(), SIGNAL(toggled(bool)),
    _chatViewSearchController, SLOT(setSearchOnlyRegularMsgs(bool)));
  connect(ui.searchBar->searchUpButton(), SIGNAL(clicked()),
    _chatViewSearchController, SLOT(highlightPrev()));
  connect(ui.searchBar->searchDownButton(), SIGNAL(clicked()),
    _chatViewSearchController, SLOT(highlightNext()));

  connect(ui.searchBar, SIGNAL(hidden()), this, SLOT(setFocus()));

  connect(_chatViewSearchController, SIGNAL(newCurrentHighlight(QGraphicsItem *)),
    this, SLOT(scrollToHighlight(QGraphicsItem *)));

  ActionCollection *coll = QtUi::actionCollection();

  Action *zoomInChatview = coll->add<Action>("ZoomInChatView", this, SLOT(zoomIn()));
  zoomInChatview->setText(tr("Zoom In"));
  zoomInChatview->setIcon(SmallIcon("zoom-in"));
  zoomInChatview->setShortcut(QKeySequence::ZoomIn);

  Action *zoomOutChatview = coll->add<Action>("ZoomOutChatView", this, SLOT(zoomOut()));
  zoomOutChatview->setIcon(SmallIcon("zoom-out"));
  zoomOutChatview->setText(tr("Zoom Out"));
  zoomOutChatview->setShortcut(QKeySequence::ZoomOut);

  Action *zoomOriginalChatview = coll->add<Action>("ZoomOriginalChatView", this, SLOT(zoomOriginal()));
  zoomOriginalChatview->setIcon(SmallIcon("zoom-original"));
  zoomOriginalChatview->setText(tr("Actual Size"));
  //zoomOriginalChatview->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_0)); // used for RTS switching

  Action *setMarkerLine = coll->add<Action>("SetMarkerLineToBottom", this, SLOT(setMarkerLine()));
  setMarkerLine->setText(tr("Set Marker Line"));
  setMarkerLine->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));

  Action *jumpToMarkerLine = QtUi::actionCollection("Navigation")->add<Action>("JumpToMarkerLine", this, SLOT(jumpToMarkerLine()));
  jumpToMarkerLine->setText(tr("Go to Marker Line"));
  jumpToMarkerLine->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_K));

  ChatViewSettings s;
  s.initAndNotify("AutoMarkerLine", this, SLOT(setAutoMarkerLine(QVariant)), true);
}