QWidget *ExplorerPane::createOutputPage() { QTextEdit *page = new QTextEdit; page->setReadOnly(true); page->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); return (QWidget *)page; }
QTextEdit* VBoxVMLogViewer::createLogPage (const QString &aName) { QWidget *pageContainer = new QWidget(); QVBoxLayout *pageLayout = new QVBoxLayout (pageContainer); QTextEdit *logViewer = new QTextEdit (pageContainer); pageLayout->addWidget (logViewer); pageLayout->setContentsMargins (10, 10, 10, 10); QFont font = logViewer->currentFont(); font.setFamily ("Courier New,courier"); logViewer->setFont (font); logViewer->setWordWrapMode (QTextOption::NoWrap); logViewer->setVerticalScrollBarPolicy (Qt::ScrollBarAlwaysOn); logViewer->setReadOnly (true); mLogList->addTab (pageContainer, aName); return logViewer; }
QMap<int, QList<QRectF>> TextDocumentAdapter::GetTextPositions (const QString& text, Qt::CaseSensitivity cs) { const auto& pageSize = Doc_->pageSize (); const auto pageHeight = pageSize.height (); QTextEdit hackyEdit; hackyEdit.setHorizontalScrollBarPolicy (Qt::ScrollBarAlwaysOff); hackyEdit.setVerticalScrollBarPolicy (Qt::ScrollBarAlwaysOff); hackyEdit.setFixedSize (Doc_->pageSize ().toSize ()); hackyEdit.setDocument (Doc_.get ()); Doc_->setPageSize (pageSize); const auto tdFlags = cs == Qt::CaseSensitive ? QTextDocument::FindCaseSensitively : QTextDocument::FindFlags (); QMap<int, QList<QRectF>> result; auto cursor = Doc_->find (text, 0, tdFlags); while (!cursor.isNull ()) { auto endRect = hackyEdit.cursorRect (cursor); auto startCursor = cursor; startCursor.setPosition (cursor.selectionStart ()); auto rect = hackyEdit.cursorRect (startCursor); const int pageNum = rect.y () / pageHeight; rect.moveTop (rect.y () - pageHeight * pageNum); endRect.moveTop (endRect.y () - pageHeight * pageNum); if (rect.y () != endRect.y ()) { rect.setWidth (pageSize.width () - rect.x ()); endRect.setX (0); } auto bounding = rect | endRect; result [pageNum] << bounding; cursor = Doc_->find (text, cursor, tdFlags); } return result; }
TrayNotificationWidget::TrayNotificationWidget(QPixmap pixmapIcon, QString headerText, QString messageText) : QWidget(0) { setWindowFlags( #ifdef Q_OS_MAC Qt::SubWindow | // This type flag is the second point #else Qt::Tool | #endif Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowStaysOnTopHint ); setAttribute(Qt::WA_NoSystemBackground, true); // set the parent widget's background to translucent setAttribute(Qt::WA_TranslucentBackground, true); //setAttribute(Qt::WA_ShowWithoutActivating, true); setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); // create a display widget for displaying child widgets QWidget* displayWidget = new QWidget; displayWidget->setStyleSheet(".QWidget { background-color: rgba(0, 0, 0, 75%); border-width: 1px; border-style: solid; border-radius: 10px; border-color: #555555; } .QWidget:hover { background-color: rgba(68, 68, 68, 75%); border-width: 2px; border-style: solid; border-radius: 10px; border-color: #ffffff; }"); QLabel* icon = new QLabel; icon->setPixmap(pixmapIcon); icon->setMaximumSize(32, 32); QLabel* header = new QLabel; header->setMaximumSize(250, 50); header->setWordWrap(true); header->setText(headerText); header->setStyleSheet("QLabel { color: #ffffff; font-weight: bold; font-size: 12px; }"); QTextEdit *message = new QTextEdit; message->setReadOnly(true); message->setFrameStyle(QFrame::NoFrame); message->setLineWrapMode(QTextEdit::WidgetWidth); message->setWordWrapMode(QTextOption::WrapAnywhere); QPalette pal = palette(); pal.setColor(QPalette::Base, Qt::transparent); message->setPalette(pal); message->setStyleSheet("QTextEdit { color: #ffffff; font-size: 10px; }"); message->setText(messageText); message->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); QVBoxLayout* vl = new QVBoxLayout; vl->addWidget(header); vl->addWidget(message); QHBoxLayout* displayMainLayout = new QHBoxLayout; displayMainLayout->addWidget(icon); displayMainLayout->addLayout(vl); displayWidget->setLayout(displayMainLayout); QHBoxLayout* containerLayout = new QHBoxLayout; containerLayout->addWidget(displayWidget); setLayout(containerLayout); show(); setMinimumHeight((int)(message->document()->size().height() *1.5 + header->height() +70)); timeout = new QTimer(this); connect(timeout, SIGNAL(timeout()), this, SLOT(fadeOut())); timeout->start(3000); }
PmQuery::PmQuery(bool inputflag, bool printflag, bool noframeflag, bool nosliderflag, bool usesliderflag, bool exclusiveflag) : QDialog() { QHBoxLayout *hboxLayout; QVBoxLayout *vboxLayout; QSpacerItem *spacerItem; QSpacerItem *spacerItem1; QVBoxLayout *vboxLayout1; QHBoxLayout *hboxLayout1; QSpacerItem *spacerItem2; QString filename; if (iconic == HOST_ICON) filename = tr(":images/dialog-host.png"); else if (iconic == ERROR_ICON) filename = tr(":images/dialog-error.png"); else if (iconic == WARNING_ICON) filename = tr(":images/dialog-warning.png"); else if (iconic == ARCHIVE_ICON) filename = tr(":images/dialog-archive.png"); else if (iconic == QUESTION_ICON) filename = tr(":images/dialog-question.png"); else // (iconic == INFO_ICON) filename = tr(":images/dialog-information.png"); QIcon icon(filename); QPixmap pixmap(filename); setWindowIcon(icon); setWindowTitle(tr(title)); QGridLayout *gridLayout = new QGridLayout(this); gridLayout->setSpacing(6); gridLayout->setMargin(9); hboxLayout = new QHBoxLayout(); hboxLayout->setSpacing(6); hboxLayout->setMargin(0); vboxLayout = new QVBoxLayout(); vboxLayout->setSpacing(6); vboxLayout->setMargin(0); spacerItem = new QSpacerItem(20, 2, QSizePolicy::Minimum, QSizePolicy::Expanding); vboxLayout->addItem(spacerItem); QLabel *imageLabel = new QLabel(this); imageLabel->setPixmap(pixmap); vboxLayout->addWidget(imageLabel); spacerItem1 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); vboxLayout->addItem(spacerItem1); hboxLayout->addLayout(vboxLayout); vboxLayout1 = new QVBoxLayout(); vboxLayout1->setSpacing(6); vboxLayout1->setMargin(0); int height; int width = DEFAULT_EDIT_WIDTH; QLineEdit* lineEdit = NULL; QTextEdit* textEdit = NULL; if (inputflag && messagecount <= 1) { lineEdit = new QLineEdit(this); if (messagecount == 1) lineEdit->setText(tr(messages[0])); height = lineEdit->font().pointSize() + 4; if (height < 0) height = lineEdit->font().pixelSize() + 4; if (height < 0) height = lineEdit->heightForWidth(width) + 4; lineEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); lineEdit->setMinimumSize(QSize(width, height)); lineEdit->setGeometry(QRect(0, 0, width, height)); vboxLayout1->addWidget(lineEdit); } else { QFont fixed("monospace"); fixed.setStyleHint(QFont::TypeWriter); textEdit = new QTextEdit(this); textEdit->setFont(fixed); textEdit->setLineWrapMode(QTextEdit::FixedColumnWidth); textEdit->setLineWrapColumnOrWidth(80); textEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); if (nosliderflag) textEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); else if (usesliderflag) textEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); else textEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); for (int m = 0; m < messagecount; m++) textEdit->append(tr(messages[m])); if (inputflag) textEdit->setReadOnly(false); else { textEdit->setLineWidth(1); textEdit->setFrameStyle(noframeflag ? QFrame::NoFrame : QFrame::Box | QFrame::Sunken); textEdit->setReadOnly(true); } if (usesliderflag) height = DEFAULT_EDIT_HEIGHT; else { height = textEdit->font().pointSize() + 4; if (height < 0) height = textEdit->font().pixelSize() + 4; if (height < 0) height = textEdit->heightForWidth(width) + 4; height *= messagecount; } textEdit->setMinimumSize(QSize(width, height)); textEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); textEdit->moveCursor(QTextCursor::Start); textEdit->ensureCursorVisible(); vboxLayout1->addWidget(textEdit); } hboxLayout1 = new QHBoxLayout(); hboxLayout1->setSpacing(6); hboxLayout1->setMargin(0); spacerItem2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); hboxLayout1->addItem(spacerItem2); for (int i = 0; i < buttoncount; i++) { QueryButton *button = new QueryButton(printflag, this); button->setMinimumSize(QSize(72, 32)); button->setDefault(buttons[i] == defaultbutton); button->setQuery(this); button->setText(tr(buttons[i])); button->setStatus(statusi[i]); if (inputflag && buttons[i] == defaultbutton) { if (textEdit) button->setEditor(textEdit); else if (lineEdit) { button->setEditor(lineEdit); if (buttons[i] == defaultbutton) connect(lineEdit, SIGNAL(returnPressed()), button, SLOT(click())); } } connect(button, SIGNAL(clicked()), this, SLOT(buttonClicked())); hboxLayout1->addWidget(button); } vboxLayout1->addLayout(hboxLayout1); hboxLayout->addLayout(vboxLayout1); gridLayout->addLayout(hboxLayout, 0, 0, 1, 1); gridLayout->setSizeConstraint(QLayout::SetFixedSize); if (inputflag && messagecount <= 1) resize(QSize(320, 83)); else resize(QSize(320, 132)); if (timeout) startTimer(timeout * 1000); if (exclusiveflag) setWindowModality(Qt::WindowModal); }