//! //! Splits the panel frame according to the given orientation. //! //! \param orientation The orientation in which to split the panel frame. //! void PanelFrame::split ( Qt::Orientation orientation ) { QMainWindow *mainWindow = qobject_cast<QMainWindow *>(parentWidget()); QSplitter *parentSplitter = qobject_cast<QSplitter *>(parentWidget()); parentSplitter->setHandleWidth(1); if (!parentSplitter && !mainWindow) { QMessageBox::information(this, "Split Panel", "Splitting this panel is not possible."); return; } // flip the orientation if (orientation == Qt::Horizontal) orientation = Qt::Vertical; else orientation = Qt::Horizontal; // save the size of this panel QSize panelSize = size(); int widthHeight = orientation == Qt::Horizontal ? panelSize.width() : panelSize.height(); // clone this panel frame PanelFrame *clonedPanelFrame = new PanelFrame(m_panelType, parentWidget(), windowFlags()); QList<int> sizes; int panelIndex; if (parentSplitter) { // save the parent splitter's sizes sizes = parentSplitter->sizes(); // obtain the index of this panel in its parent splitter panelIndex = parentSplitter->indexOf(this); } // create new splitter for this panel and its clone QSplitter *newSplitter = new QSplitter(orientation); newSplitter->setHandleWidth(1); newSplitter->addWidget(this); newSplitter->addWidget(clonedPanelFrame); // give both panels in the new splitter the same space QList<int> newSizes; newSizes << widthHeight / 2 << widthHeight / 2; newSplitter->setSizes(newSizes); if (parentSplitter) { // insert the new splitter into the panel's former parent splitter parentSplitter->insertWidget(panelIndex, newSplitter); // restore the parent splitter's sizes parentSplitter->setSizes(sizes); } else { mainWindow->setCentralWidget(newSplitter); } }
//! //! Maximizes the given widget inside its parent widget. //! //! The widget can be a panel frame or a splitter widget. //! //! \param widget The widget to maximize. //! void PanelFrame::maximizeWidget ( QWidget *widget ) { QWidget *parentWidget = widget->parentWidget(); QSplitter *parentSplitter = qobject_cast<QSplitter *>(parentWidget); parentSplitter->setHandleWidth(1); if (!parentSplitter) { QMessageBox::information(this, "Maximize Panel", "The panel is already maximized."); return; } int index = parentSplitter->indexOf(widget); QList<int> sizes = parentSplitter->sizes(); // count number of visible panel frames int visiblePanelFrames = 0; for (int i = 0; i < sizes.size(); ++i) if (sizes[i] > 0) ++visiblePanelFrames; if (visiblePanelFrames == 1) maximizeWidget(parentSplitter); else { // hide all other panels in the same splitter for (int i = 0; i < sizes.size(); ++i) if (i != index) sizes[i] = 0; parentSplitter->setSizes(sizes); } }
//! //! Minimizes the given widget inside its parent widget. //! //! The widget can be a panel frame or a splitter widget. //! //! \param widget The widget to minimize. //! void PanelFrame::minimizeWidget ( QWidget *widget ) { QWidget *parentWidget = widget->parentWidget(); QSplitter *parentSplitter = qobject_cast<QSplitter *>(parentWidget); parentSplitter->setHandleWidth(1); if (!parentSplitter) { QMessageBox::information(this, "Minimize Panel", "The last visible panel cannot be minimized."); return; } int index = parentSplitter->indexOf(widget); QList<int> sizes = parentSplitter->sizes(); // count number of visible panel frames int visiblePanelFrames = 0; for (int i = 0; i < sizes.size(); ++i) if (sizes[i] > 0) ++visiblePanelFrames; if (visiblePanelFrames == 1) minimizeWidget(parentSplitter); else { sizes[index] = 0; parentSplitter->setSizes(sizes); } }
MainWindow::MainWindow(FilesList *filesList) { this->filesList = filesList; player = new Player(this); filesListWidget = new FilesListWidget(this->filesList, this); filesCountLabel = new QLabel(FILES_COUNT_TEXT.arg(0), this); QSplitter *splitter = new QSplitter(Qt::Vertical, this); //splitter->setStyleSheet("QSplitter::handle {background-color: black;}"); splitter->addWidget(initVideoFrame()); splitter->addWidget(initControlFrame()); splitter->setChildrenCollapsible(false); //splitter->setCursor(Qt::SizeVerCursor); splitter->setHandleWidth(10); initMenu(); setCentralWidget(splitter); setWindowTitle("Visual Renamer"); setWindowIcon(QIcon(":/resources/logo_small.png")); resize(850, 650); connect(filesListWidget, SIGNAL(fileSelected(int)), SLOT(fileSelected(int))); connect(this->filesList, SIGNAL(renamed(int,int)), SLOT(filesRenamed(int,int))); connect(this->filesList, &FilesList::reseted, this, [=](){fileSelected(-1); filesCountLabel->setText(FILES_COUNT_TEXT.arg(this->filesList->getSize()));}); connect(this->filesList, &FilesList::filesAdded, this, [=](){filesCountLabel->setText(FILES_COUNT_TEXT.arg(this->filesList->getSize()));}); connect(this->filesList, &FilesList::removed, this, [=](){fileSelected(-1); filesCountLabel->setText(FILES_COUNT_TEXT.arg(this->filesList->getSize()));}); this->setFocus(); }
QueryWidget::QueryWidget(IServerSPtr server, QWidget* parent) : QWidget(parent) { shellWidget_ = new BaseShellWidget(server); outputWidget_ = new OutputWidget(server); VERIFY(connect(shellWidget_, &BaseShellWidget::rootCreated, outputWidget_, &OutputWidget::rootCreate)); VERIFY(connect(shellWidget_, &BaseShellWidget::rootCompleated, outputWidget_, &OutputWidget::rootCompleate)); VERIFY(connect(shellWidget_, &BaseShellWidget::addedChild, outputWidget_, &OutputWidget::addChild)); VERIFY(connect(shellWidget_, &BaseShellWidget::itemUpdated, outputWidget_, &OutputWidget::itemUpdate)); QSplitter* splitter = new QSplitter; #ifdef OS_WIN splitter->setStyleSheet("QSplitter::handle { background-color: gray }"); #endif splitter->setOrientation(Qt::Vertical); splitter->setHandleWidth(1); QVBoxLayout *mainLayout = new QVBoxLayout; splitter->addWidget(shellWidget_); splitter->addWidget(outputWidget_); splitter->setStretchFactor(0, 0); splitter->setStretchFactor(1, 1); mainLayout->addWidget(splitter); setMinimumSize(QSize(min_width, min_height)); setLayout(mainLayout); }
void SM_DriveEngine::reset(void) { QHBoxLayout *hBoxLayout = new QHBoxLayout(SUi::inst()->panelsWidget); QSplitter *hSplitter = new QSplitter(Qt::Horizontal, SUi::inst()->panelsWidget); filesViews[ELeft] = new SM_FilePanel(ELeft); filesViews[ERight] = new SM_FilePanel(ERight); hBoxLayout->setContentsMargins(0, 0, 0, 0); hBoxLayout->addWidget(hSplitter); hSplitter->setHandleWidth(1); hSplitter->addWidget(filesViews[ELeft]); hSplitter->addWidget(filesViews[ERight]); for(int i = 0; i < EPanelsCount; ++i) { contentMngr[i].reset(new SM_ContentManager); contentMngr[i]->init(); } checkUI.reset(new SM_CheckUI); filesTransferUI.reset(new SM_FilesTransferUI); filesUI.reset(new SM_ContentUI); connect(filesViews[ELeft], SIGNAL(signalAccountChanged(int, const QString&)), SLOT(slotAccountChanged(int, const QString&))); connect(filesViews[ERight], SIGNAL(signalAccountChanged(int, const QString&)), SLOT(slotAccountChanged(int, const QString&))); }
dtkComposerNodeFactoryView::dtkComposerNodeFactoryView(QWidget *parent) : QWidget(parent), d(new dtkComposerNodeFactoryViewPrivate) { d->factory = NULL; d->scope = new dtkWidgetsTagCloudScope(this); d->scope->toggle(); d->cloud = new dtkWidgetsTagCloud(this); d->cloud->setSortingType(dtkWidgetsTagCloud::Alpha); d->cloud->setSortingOrder(dtkWidgetsTagCloud::Asc); d->cloud->setFontSize(17); d->cloud->setFontRange(15); d->view = new dtkWidgetsTagCloudView(this); d->controller = new dtkWidgetsTagCloudController; d->controller->attach(d->scope); d->controller->attach(d->view); d->controller->attach(d->cloud); d->controller->onUnionMode(false); QSplitter *splitter = new QSplitter(this); splitter->addWidget(d->cloud); splitter->addWidget(d->view); splitter->setOrientation(Qt::Vertical); splitter->setHandleWidth(1); QVBoxLayout *layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->addWidget(d->scope); layout->addWidget(splitter); this->addNote(); }
void IrcClient::createLayout() { setWindowTitle(tr("Communi %1 example client").arg(IRC_VERSION_STR)); // a read-only text editor for showing the messages textEdit = new QTextEdit(this); textEdit->setReadOnly(true); // a line editor for entering commands lineEdit = new QLineEdit(this); lineEdit->setAttribute(Qt::WA_MacShowFocusRect, false); textEdit->setFocusProxy(lineEdit); connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(onTextEntered())); connect(lineEdit, SIGNAL(textEdited(QString)), this, SLOT(onTextEdited())); // the rest is just setting up the UI layout... QSplitter* splitter = new QSplitter(this); splitter->setHandleWidth(1); splitter->addWidget(textEdit); splitter->addWidget(userList); splitter->setStretchFactor(0, 5); splitter->setStretchFactor(1, 1); QWidget* container = new QWidget(this); QVBoxLayout* layout = new QVBoxLayout(container); layout->setSpacing(0); layout->setMargin(0); layout->addWidget(splitter); layout->addWidget(lineEdit); addWidget(container); setHandleWidth(1); }
MainStatusBar::MainStatusBar(QWidget *parent) : QStatusBar(parent) { QSplitter *splitter = new QSplitter(this); QString ready_msg(DEF_READY_MESSAGE); QWidget *info_progress = new QWidget(this); QHBoxLayout *info_progress_hb = new QHBoxLayout(info_progress); #if defined(Q_WS_WIN) // Handles are the same color as widgets, at least on Windows 7. splitter->setHandleWidth(3); splitter->setStyleSheet(QString( "QSplitter::handle {" " border-left: 1px solid palette(mid);" " border-right: 1px solid palette(mid);" "}" )); #elif defined(Q_WS_MAC) expert_status_.setAttribute(Qt::WA_MacSmallSize, true); #endif expert_status_.setTextFormat(Qt::RichText); expert_status_.hide(); // XXX Add the comment icon info_progress_hb->setContentsMargins(0, 0, 0, 0); info_status_.setTemporaryContext(STATUS_CTX_TEMPORARY); info_progress_hb->addWidget(&expert_status_); info_progress_hb->addWidget(&info_status_); info_progress_hb->addWidget(&progress_bar_); info_progress_hb->addStretch(10); splitter->addWidget(info_progress); splitter->addWidget(&packet_status_); splitter->addWidget(&profile_status_); splitter->setStretchFactor(0, 3); splitter->setStretchFactor(1, 3); splitter->setStretchFactor(2, 1); addWidget(splitter, 1); cur_main_status_bar_ = this; splitter->hide(); info_status_.pushText(ready_msg, STATUS_CTX_MAIN); packets_bar_update(); connect(wsApp, SIGNAL(appInitialized()), splitter, SLOT(show())); connect(&info_status_, SIGNAL(toggleTemporaryFlash(bool)), this, SLOT(toggleBackground(bool))); }
EncodeDecodeDialog::EncodeDecodeDialog(QWidget* parent) : QDialog(parent) { setWindowIcon(GuiFactory::instance().encodeDecodeIcon()); setWindowTitle(translations::trEncodeDecode); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); QVBoxLayout* layout = new QVBoxLayout; QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Close); QPushButton* closeButton = buttonBox->button(QDialogButtonBox::Close); buttonBox->addButton(closeButton, QDialogButtonBox::ButtonRole(QDialogButtonBox::RejectRole | QDialogButtonBox::AcceptRole)); VERIFY(connect(buttonBox, &QDialogButtonBox::rejected, this, &EncodeDecodeDialog::reject)); QToolButton* decode = new QToolButton; decode->setIcon(GuiFactory::instance().executeIcon()); VERIFY(connect(decode, &QToolButton::clicked, this, &EncodeDecodeDialog::decode)); decoders_ = new QComboBox; for(int i = 0; i < SIZEOFMASS(common::EDecoderTypes); ++i) { decoders_->addItem(common::convertFromString<QString>(common::EDecoderTypes[i])); } QHBoxLayout* toolBarLayout = new QHBoxLayout; toolBarLayout->setContentsMargins(0, 0, 0, 0); toolBarLayout->addWidget(decode); toolBarLayout->addWidget(decoders_); encodeButton_ = new QRadioButton; decodeButton_ = new QRadioButton; toolBarLayout->addWidget(encodeButton_); toolBarLayout->addWidget(decodeButton_); QSplitter* splitter = new QSplitter; splitter->setOrientation(Qt::Horizontal); splitter->setHandleWidth(1); splitter->setContentsMargins(0, 0, 0, 0); toolBarLayout->addWidget(splitter); input_ = new FastoEditor; input_->installEventFilter(this); output_ = new FastoEditor; output_->installEventFilter(this); layout->addWidget(input_); layout->addLayout(toolBarLayout); layout->addWidget(output_); layout->addWidget(buttonBox); setMinimumSize(QSize(width, height)); setLayout(layout); retranslateUi(); }
void PersonalMessageWidget::initialize() { setWindowTitle("Trek Personal Chat"); // QFont f = mUsernameLabel.font(); // f.setPointSize(11); // mUsernameLabel.setFont(f); mSendButton.setText("Send"); mSendButton.setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); mConversationText.setReadOnly(true); mInputText.installEventFilter(this); QHBoxLayout* inputLayout = new QHBoxLayout(); QWidget* inputWidget = new QWidget(); inputLayout->addWidget(&mInputText); inputLayout->addWidget(&mSendButton); inputWidget->setLayout(inputLayout); QSplitter* splitter = new QSplitter(); splitter->setOrientation(Qt::Vertical); splitter->addWidget(&mConversationText); splitter->addWidget(inputWidget); splitter->setCollapsible(0,false); splitter->setCollapsible(1,false); splitter->setHandleWidth(15); mToolbar.setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); mSaveAction = mToolbar.addAction("Save"); mClearAction = mToolbar.addAction("Clear"); mGMainLayout.addWidget(&mUserIconLabel,0,2,2,1,Qt::AlignRight); mGMainLayout.addWidget(&mToolbar, 1,0,1,2); //,1,2); mGMainLayout.addWidget(&mUsernameLabel,0,0,Qt::AlignLeft); mGMainLayout.addWidget(splitter, 2,0,1,3); setLayout(&mGMainLayout); QList<int> sizes; sizes.append(400); sizes.append(100); splitter->setSizes(sizes); userDataAltered(); connect(mClearAction, SIGNAL(triggered()), &mConversationText, SLOT(clear())); connect(mSaveAction, SIGNAL(triggered()), this, SLOT(save())); connect(&mSendButton, SIGNAL(clicked()), this, SLOT(send())); connect(mUserData, SIGNAL(dataAltered()), this, SLOT(userDataAltered())); connect(this, SIGNAL(controller_serverPersonalSpeak(const QUuid&, const QString&)), Controller::self(), SIGNAL(serverPersonalSpeak(const QUuid&, const QString&))); connect(Controller::self(), SIGNAL(personalCommuniqueReceived(const QUuid&, const QString&)), this, SLOT(controller_personalCommuniqueReceived(const QUuid&, const QString&))); }
ServerHistoryDialog::ServerHistoryDialog(const QString& title, connectionTypes type, QWidget* parent) : QDialog(parent, Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint ), type_(type) { using namespace translations; setWindowIcon(GuiFactory::instance().icon(type_)); setWindowTitle(title); graphWidget_ = new fasto::qt::gui::GraphWidget; settingsGraph_ = new QWidget; QHBoxLayout *mainL = new QHBoxLayout; QSplitter *splitter = new QSplitter; splitter->setOrientation(Qt::Horizontal); splitter->setHandleWidth(1); splitter->setContentsMargins(0, 0, 0, 0); mainL->addWidget(splitter); splitter->addWidget(settingsGraph_); serverInfoGroupsNames_ = new QComboBox; serverInfoFields_ = new QComboBox; typedef void (QComboBox::*curc)(int); VERIFY(connect(serverInfoGroupsNames_, static_cast<curc>(&QComboBox::currentIndexChanged), this, &ServerHistoryDialog::refreshInfoFields )); VERIFY(connect(serverInfoFields_, static_cast<curc>(&QComboBox::currentIndexChanged), this, &ServerHistoryDialog::refreshGraph )); if(type_ == REDIS){ for(int i = 0; i < redisHeaders.size(); ++i){ serverInfoGroupsNames_->addItem(common::convertFromString<QString>(redisHeaders[i])); } } else if(type_ == MEMCACHED){ for(int i = 0; i < memcachedHeaders.size(); ++i){ serverInfoGroupsNames_->addItem(common::convertFromString<QString>(memcachedHeaders[i])); } } else if(type_ == SSDB){ for(int i = 0; i < SsdbHeaders.size(); ++i){ serverInfoGroupsNames_->addItem(common::convertFromString<QString>(SsdbHeaders[i])); } } QVBoxLayout *setingsLayout = new QVBoxLayout; setingsLayout->addWidget(serverInfoGroupsNames_); setingsLayout->addWidget(serverInfoFields_); settingsGraph_->setLayout(setingsLayout); splitter->addWidget(graphWidget_); setLayout(mainL); glassWidget_ = new fasto::qt::gui::GlassWidget(GuiFactory::instance().pathToLoadingGif(), trLoading, 0.5, QColor(111, 111, 100), this); }
QSplitter* PaneSubWidget::createSplitter(QWidget* A,QWidget* B,QWidget* parent,bool vertical){ QSplitter *split = new QSplitter(parent); split->setChildrenCollapsible(false); split->setHandleWidth(10); A->setParent(split); B->setParent(split); split->addWidget(A); // add new widget "left of old" split->addWidget(B); // add old widget B->show(); A->show(); return split; }
//----------------------------------------------------------------------------- // Function: AddressSpaceEditor::setupLayout() //----------------------------------------------------------------------------- void AddressSpaceEditor::setupLayout() { QScrollArea* scrollArea = new QScrollArea(this); scrollArea->setWidgetResizable(true); scrollArea->setFrameShape(QFrame::NoFrame); QVBoxLayout* scrollLayout = new QVBoxLayout(this); scrollLayout->addWidget(scrollArea); scrollLayout->setContentsMargins(0, 0, 0, 0); QWidget* topWidget = new QWidget(scrollArea); topWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); QVBoxLayout* topLayout = new QVBoxLayout(topWidget); QHBoxLayout* nameAndGeneralLayout = new QHBoxLayout(); nameAndGeneralLayout->addWidget(&nameEditor_, 0, Qt::AlignTop); nameAndGeneralLayout->addWidget(&generalEditor_); topLayout->addLayout(nameAndGeneralLayout); topLayout->addWidget(&segmentsEditor_, 1); topLayout->setContentsMargins(0, 0, 0, 0); QWidget* bottomWidget = new QWidget(scrollArea); bottomWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); QVBoxLayout* bottomLayout = new QVBoxLayout(bottomWidget); bottomLayout->addWidget(&localMemMapEditor_); bottomLayout->setContentsMargins(0, 0, 0, 0); QSplitter* verticalSplitter = new QSplitter(Qt::Vertical, scrollArea); verticalSplitter->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); verticalSplitter->addWidget(topWidget); verticalSplitter->addWidget(bottomWidget); verticalSplitter->setStretchFactor(1, 1); QSplitterHandle* handle = verticalSplitter->handle(1); QVBoxLayout* handleLayout = new QVBoxLayout(handle); handleLayout->setSpacing(0); handleLayout->setMargin(0); QFrame* line = new QFrame(handle); line->setLineWidth(2); line->setMidLineWidth(2); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); handleLayout->addWidget(line); verticalSplitter->setHandleWidth(10); scrollArea->setWidget(verticalSplitter); }
OutputWidget::OutputWidget(IServerSPtr server, QWidget* parent) : QWidget(parent) { commonModel_ = new FastoCommonModel(this); VERIFY(connect(commonModel_, &FastoCommonModel::changedValue, server.get(), &IServer::changeValue, Qt::DirectConnection)); VERIFY(connect(server.get(), &IServer::startedChangeDbValue, this, &OutputWidget::startChangeDbValue, Qt::DirectConnection)); VERIFY(connect(server.get(), &IServer::finishedChangeDbValue, this, &OutputWidget::finishChangeDbValue, Qt::DirectConnection)); treeView_ = new FastoTreeView; treeView_->setModel(commonModel_); tableView_ = new FastoTableView; tableView_->setModel(commonModel_); textView_ = new FastoTextView(server->outputDelemitr()); textView_->setModel(commonModel_); textView_->setReadOnly(true); timeLabel_ = new fasto::qt::gui::IconLabel(GuiFactory::instance().timeIcon(), "0", QSize(32, 32)); QVBoxLayout* mainL = new QVBoxLayout; QHBoxLayout* topL = new QHBoxLayout; QSplitter* splitter = new QSplitter; splitter->setOrientation(Qt::Horizontal); splitter->setHandleWidth(1); splitter->setContentsMargins(0, 0, 0, 0); treeButton_ = new QPushButton; tableButton_ = new QPushButton; textButton_ = new QPushButton; treeButton_->setIcon(GuiFactory::instance().treeIcon()); VERIFY(connect(treeButton_, SIGNAL(clicked()), this, SLOT(setTreeView()))); tableButton_->setIcon(GuiFactory::instance().tableIcon()); VERIFY(connect(tableButton_, SIGNAL(clicked()), this, SLOT(setTableView()))); textButton_->setIcon(GuiFactory::instance().textIcon()); VERIFY(connect(textButton_, SIGNAL(clicked()), this, SLOT(setTextView()))); topL->addWidget(treeButton_); topL->addWidget(tableButton_); topL->addWidget(textButton_); topL->addWidget(splitter); topL->addWidget(timeLabel_); mainL->addLayout(topL); mainL->addWidget(treeView_); mainL->addWidget(tableView_); mainL->addWidget(textView_); setLayout(mainL); syncWithSettings(); }
ServerHistoryDialog::ServerHistoryDialog(IServerSPtr server, QWidget* parent) : QDialog(parent, Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint ), server_(server) { using namespace translations; CHECK(server_); setWindowIcon(GuiFactory::instance().icon(server_->type())); graphWidget_ = new fasto::qt::gui::GraphWidget; settingsGraph_ = new QWidget; QHBoxLayout *mainL = new QHBoxLayout; QSplitter *splitter = new QSplitter; splitter->setOrientation(Qt::Horizontal); splitter->setHandleWidth(1); mainL->addWidget(splitter); splitter->addWidget(settingsGraph_); clearHistory_ = new QPushButton; VERIFY(connect(clearHistory_, &QPushButton::clicked, this, &ServerHistoryDialog::clearHistory)); serverInfoGroupsNames_ = new QComboBox; serverInfoFields_ = new QComboBox; typedef void (QComboBox::*curc)(int); VERIFY(connect(serverInfoGroupsNames_, static_cast<curc>(&QComboBox::currentIndexChanged), this, &ServerHistoryDialog::refreshInfoFields )); VERIFY(connect(serverInfoFields_, static_cast<curc>(&QComboBox::currentIndexChanged), this, &ServerHistoryDialog::refreshGraph )); const std::vector<std::string> headers = infoHeadersFromType(server_->type()); for(int i = 0; i < headers.size(); ++i){ serverInfoGroupsNames_->addItem(common::convertFromString<QString>(headers[i])); } QVBoxLayout *setingsLayout = new QVBoxLayout; setingsLayout->addWidget(clearHistory_); setingsLayout->addWidget(serverInfoGroupsNames_); setingsLayout->addWidget(serverInfoFields_); settingsGraph_->setLayout(setingsLayout); splitter->addWidget(graphWidget_); setLayout(mainL); glassWidget_ = new fasto::qt::gui::GlassWidget(GuiFactory::instance().pathToLoadingGif(), trLoading, 0.5, QColor(111, 111, 100), this); VERIFY(connect(server.get(), &IServer::startedLoadServerHistoryInfo, this, &ServerHistoryDialog::startLoadServerHistoryInfo)); VERIFY(connect(server.get(), &IServer::finishedLoadServerHistoryInfo, this, &ServerHistoryDialog::finishLoadServerHistoryInfo)); VERIFY(connect(server.get(), &IServer::startedClearServerHistory, this, &ServerHistoryDialog::startClearServerHistory)); VERIFY(connect(server.get(), &IServer::finishedClearServerHistory, this, &ServerHistoryDialog::finishClearServerHistory)); VERIFY(connect(server.get(), &IServer::serverInfoSnapShoot, this, &ServerHistoryDialog::snapShotAdd)); retranslateUi(); }
QueryWidget::QueryWidget(proxy::IServerSPtr server, QWidget* parent) : QWidget(parent), server_(server) { shell_widget_ = BaseShellWidget::createWidget(server); output_widget_ = new OutputWidget(server); QVBoxLayout* mainLayout = new QVBoxLayout; QSplitter* splitter = new QSplitter(Qt::Vertical); splitter->addWidget(shell_widget_); splitter->addWidget(output_widget_); splitter->setCollapsible(0, false); splitter->setCollapsible(1, false); splitter->setStretchFactor(0, 1); splitter->setStretchFactor(1, 3); splitter->setHandleWidth(1); mainLayout->addWidget(splitter); setLayout(mainLayout); }
LineGraphView::LineGraphView(QWidget *parent) : QAbstractItemView(parent), m_LineGraphWidget(NULL), m_ListWidget(NULL) { QHBoxLayout *layout = new QHBoxLayout(this); layout->setMargin(0); QSplitter *splitter = new QSplitter(Qt::Horizontal, this); splitter->setHandleWidth(1); layout->addWidget(splitter); m_LineGraphWidget = new LineGraphWidget(this); splitter->addWidget(m_LineGraphWidget); m_ListWidget = new QListWidget(this); splitter->addWidget(m_ListWidget); }
void DirectoryDialog::layoutWindow() { QList<QTreeWidgetItem *> items; setMinimumSize(500, 250); QSplitter *splitter = new QSplitter(this); m_tree = new QTreeWidget(splitter); m_tree->setColumnCount(1); m_tree->setHeaderLabel("Component"); QVBoxLayout *vertLayout = new QVBoxLayout(this); vertLayout->addWidget(splitter); m_table = new QTableWidget(splitter); m_table->setColumnCount(3); m_table->setColumnWidth(0, 120); m_table->setColumnWidth(1, 60); m_table->setColumnWidth(2, 100); m_table->setHorizontalHeaderLabels( QStringList() << tr("Service name") << tr("Port") << tr("Type")); m_table->setSelectionMode(QAbstractItemView::NoSelection); splitter->addWidget(m_tree); splitter->addWidget(m_table); splitter->setHandleWidth(1); setLayout(vertLayout); QList <int> sizeList; sizeList.append(180); sizeList.append(250); splitter->setSizes(sizeList); vertLayout->setContentsMargins(0, 0, 0, 0); // This connection MUST be queued therwise deadlock will occur when a directory entry is removed connect(m_tree, SIGNAL(itemSelectionChanged()), this, SLOT(selectionChanged()), Qt::QueuedConnection); }
QueryWidget::QueryWidget(core::IServerSPtr server, QWidget* parent) : QWidget(parent), server_(server) { shellWidget_ = new shell::BaseShellWidget(server); outputWidget_ = new OutputWidget(server); QSplitter* splitter = new QSplitter; #ifdef OS_WIN splitter->setStyleSheet("QSplitter::handle { background-color: gray }"); #endif splitter->setOrientation(Qt::Vertical); splitter->setHandleWidth(1); QVBoxLayout* mainLayout = new QVBoxLayout; splitter->addWidget(shellWidget_); splitter->addWidget(outputWidget_); splitter->setStretchFactor(0, 0); splitter->setStretchFactor(1, 1); mainLayout->addWidget(splitter); setMinimumSize(QSize(min_width, min_height)); setLayout(mainLayout); }
ProcessingManager::ProcessingManager(QWidget* parent) : QWidget(parent) { QSplitter* mainSplitter = new QSplitter(Qt::Horizontal); mainSplitter->setHandleWidth(4); mainSplitter->addWidget(setupQueueContainer()); mainSplitter->addWidget(setupStatusContainer()); mainSplitter->setStretchFactor(0, 1); mainSplitter->setStretchFactor(1, 1); QGridLayout* mainLayout = new QGridLayout; mainLayout->setMargin(0); mainLayout->setSpacing(0); mainLayout->addWidget(mainSplitter); setLayout(mainLayout); setQueueCount(queueModel_->rowCount()); connect(queueModel_, &ProcessingModel::rowCountChanged, this, &ProcessingManager::setQueueCount); connect(queueModel_, &ProcessingModel::batchAdded, [=]{ if(currentlyExecuting_ && autoProcessButton_->isChecked()) { distributeProcesses(); } }); }
MainStatusBar::MainStatusBar(QWidget *parent) : QStatusBar(parent), cap_file_(NULL), edit_action_(NULL), delete_action_(NULL) { QSplitter *splitter = new QSplitter(this); #ifdef HAVE_LIBPCAP QString ready_msg(tr("Ready to load or capture")); #else QString ready_msg(tr("Ready to load file")); #endif QWidget *info_progress = new QWidget(this); QHBoxLayout *info_progress_hb = new QHBoxLayout(info_progress); QAction *action; #if defined(Q_OS_WIN) // Handles are the same color as widgets, at least on Windows 7. splitter->setHandleWidth(3); splitter->setStyleSheet(QString( "QSplitter::handle {" " border-left: 1px solid palette(mid);" " border-right: 1px solid palette(mid);" "}" )); #elif defined(Q_OS_MAC) expert_status_.setAttribute(Qt::WA_MacSmallSize, true); #endif expert_status_.setTextFormat(Qt::RichText); expert_status_.hide(); // XXX Add the comment icon info_progress_hb->setContentsMargins(0, 0, 0, 0); info_status_.setTemporaryContext(STATUS_CTX_TEMPORARY); info_progress_hb->addWidget(&expert_status_); info_progress_hb->addWidget(&info_status_); info_progress_hb->addWidget(&progress_bar_); info_progress_hb->addStretch(10); splitter->addWidget(info_progress); splitter->addWidget(&packet_status_); splitter->addWidget(&profile_status_); splitter->setStretchFactor(0, 3); splitter->setStretchFactor(1, 3); splitter->setStretchFactor(2, 1); addWidget(splitter, 1); cur_main_status_bar_ = this; splitter->hide(); info_status_.pushText(ready_msg, STATUS_CTX_MAIN); packets_bar_update(); action = ctx_menu_.addAction(tr("Manage Profiles...")); action->setData(ProfileDialog::ShowProfiles); connect(action, SIGNAL(triggered()), this, SLOT(manageProfile())); ctx_menu_.addSeparator(); action = ctx_menu_.addAction(tr("New...")); action->setData(ProfileDialog::NewProfile); connect(action, SIGNAL(triggered()), this, SLOT(manageProfile())); edit_action_ = ctx_menu_.addAction(tr("Edit...")); edit_action_->setData(ProfileDialog::EditCurrentProfile); connect(edit_action_, SIGNAL(triggered()), this, SLOT(manageProfile())); delete_action_ = ctx_menu_.addAction(tr("Delete")); delete_action_->setData(ProfileDialog::DeleteCurrentProfile); connect(delete_action_, SIGNAL(triggered()), this, SLOT(manageProfile())); ctx_menu_.addSeparator(); profile_menu_.setTitle(tr("Switch to")); ctx_menu_.addMenu(&profile_menu_); connect(wsApp, SIGNAL(appInitialized()), splitter, SLOT(show())); connect(wsApp, SIGNAL(appInitialized()), this, SLOT(pushProfileName())); connect(&info_status_, SIGNAL(toggleTemporaryFlash(bool)), this, SLOT(toggleBackground(bool))); connect(wsApp, SIGNAL(captureCaptureUpdateContinue(capture_session*)), this, SLOT(updateCaptureStatistics(capture_session*))); connect(wsApp, SIGNAL(configurationProfileChanged(const gchar *)), this, SLOT(pushProfileName())); connect(&profile_status_, SIGNAL(mousePressedAt(QPoint,Qt::MouseButton)), this, SLOT(showProfileMenu(QPoint,Qt::MouseButton))); }
AutoImportWindow::AutoImportWindow(QWidget* parent) : QWidget(parent) { resultsTable_ = setupFilesTable(); fileNameParser_ = new FileNameParserDialog(this); filePatternLabel_ = new QLabel(); safeIntervalBox = new QSpinBox(); safeIntervalBox->setMinimum(30); safeIntervalBox->setMaximum(84600); safeIntervalBox->setValue(ProjectPreferences().importSafeInterval()); statusLabel_ = new QLabel(this); statusLabel_->setWordWrap(true); QFont font = statusLabel_->font(); font.setBold(true); statusLabel_->setFont(font); deleteLabel_ = new QLabel("Original images will be DELETED after import! If not intended, change the option on left."); deleteLabel_->setWordWrap(true); deleteLabel_->hide(); QPalette pal = deleteLabel_->palette(); pal.setColor(QPalette::WindowText, Qt::red); deleteLabel_->setPalette(pal); importButton_ = new QPushButton(ApplicationData::icon("play"), tr("Start Import")); importButton_->setCheckable(true); importButton_->setChecked(false); connect(importButton_, &QAbstractButton::clicked, this, &AutoImportWindow::executeImport); refreshButton_ = new QPushButton(ApplicationData::icon("refresh"), tr("Rescan Import Folder")); connect(refreshButton_, &QAbstractButton::clicked, this, &AutoImportWindow::analyzeImport); priorityQueueOption_ = new QCheckBox("Prioritize the processing of imported images"); priorityQueueOption_->setChecked(true); continuous = new QCheckBox("Continuously import new images in the import folder"); continuous->setChecked(false); connect(continuous, &QCheckBox::toggled, [ = ] (bool check){ if(check) timer_.start(safeIntervalBox->value()*1000); else timer_.stop(); }); inputContiner_ = setupInputContainer(); QSplitter* mainSplitter = new QSplitter(Qt::Horizontal); mainSplitter->setHandleWidth(4); mainSplitter->addWidget(inputContiner_); mainSplitter->addWidget(setupStatusContinaer()); mainSplitter->setStretchFactor(0, 1); mainSplitter->setStretchFactor(1, 1); int width = mainSplitter->width(); mainSplitter->setSizes(QList<int>() << width/2 << width/2); QGridLayout* mainLayout = new QGridLayout; mainLayout->setMargin(0); mainLayout->setSpacing(0); mainLayout->addWidget(mainSplitter); setLayout(mainLayout); analyzeImport(); if(ProjectPreferences().importRestartCheck()) executeImport(true); connect(&process_, static_cast<void(QProcess::*)(int)>(&QProcess::finished), this, &AutoImportWindow::continueExecution); connect(&watcher_, &QFileSystemWatcher::directoryChanged, [=] { analyzeImport(); if(continuous->isChecked()) executeImport(true); }); connect(&timer_, &QTimer::timeout, [=] { analyzeImport(); if(continuous->isChecked()) executeImport(true); }); }
MusicPage::MusicPage(QWidget *parent) : QWidget(parent) { this->setAttribute(Qt::WA_TranslucentBackground, true);//设置透明:窗体标题栏不透明,背景透明 QHBoxLayout *controlLayout = new QHBoxLayout; addButton = new QPushButton("添加"); addButton->setFixedHeight(22); controlLayout->addWidget(addButton); controlLayout->setSpacing(1); controlLayout->setMargin(0); connect(addButton, SIGNAL(clicked(bool)), this, SIGNAL(addMusics())); QWidget *controlBar = new QWidget; controlBar->setStyleSheet("background:rgba(244,244,244,40%);"); //controlBar->setAttribute(Qt::WA_TranslucentBackground, true); controlBar->setFixedHeight(22); controlBar->setLayout(controlLayout); QPushButton *addList = new QPushButton("+创建列表"); addList->setStyleSheet("background:rgba(244,244,244,40%);"); listList = new ListList; connect(addList, SIGNAL(clicked(bool)), listList, SLOT(wantToCreateList())); connect(listList, SIGNAL(tryToCreateList(QString)), this, SIGNAL(tryToCreateList(QString))); connect(this, SIGNAL(createList(QString)), listList, SLOT(createList(QString))); connect(this, SIGNAL(createList(QString)), this, SLOT(createList())); connect(listList, SIGNAL(changeList(int)), this, SLOT(changeMusicList(int))); connect(listList, SIGNAL(deleteList(QString)), this, SIGNAL(deleteList(QString))); connect(listList, SIGNAL(deleteList(int)), this, SLOT(deleteList(int))); QVBoxLayout *leftLayout = new QVBoxLayout; leftLayout->addWidget(addList); leftLayout->addWidget(listList); leftLayout->setSpacing(1); leftLayout->setMargin(0); QWidget *leftWidget = new QWidget; leftWidget->setLayout(leftLayout); //leftWidget->setFixedWidth(80); leftWidget->setMinimumWidth(80); leftWidget->setMaximumWidth(120); musicLists = new QStackedWidget; musicLists->setMinimumWidth(80); musicLists->setMaximumWidth(420); QSplitter *splitter = new QSplitter(Qt::Horizontal, this); splitter->setOpaqueResize(true); splitter->setChildrenCollapsible(false); splitter->addWidget(leftWidget); splitter->addWidget(musicLists); splitter->setStretchFactor(0, 2); splitter->setStretchFactor(1, 5); splitter->setStyleSheet("QSplitter::handle { background-color: rgba(0,0,0,0%) }"); splitter->setHandleWidth(1); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(controlBar); //mainLayout->addLayout(midLayout); mainLayout->addWidget(splitter); mainLayout->setSpacing(1); mainLayout->setMargin(1); this->setLayout(mainLayout); }
MainWindow::MainWindow(QMainWindow* parent):QMainWindow(parent) { fileWidget = new FileWidget; monitorWidget = new MonitorWidget; udFileWidget = new UDFileWidget; mainSplitter = new QSplitter(Qt::Vertical); QSplitter *baseSplitter = new QSplitter(Qt::Horizontal); //项目列表 QFont font; font.setPointSize(12); projectMenu = new QListWidget; projectMenu->setIconSize(QSize(25,25)); projectMenu->setFrameShape(QListWidget::NoFrame); projectMenu->setStyleSheet("background: #F0FFF0");//F6FAFD projectMenu->setFocusPolicy(Qt::NoFocus); //去掉鼠标选中的虚线框 QListWidgetItem *item1 = new QListWidgetItem(QIcon(":/image/file.png"),tr("我的文件")); item1->setFont(font); item1->setSizeHint(QSize(0,40)); projectMenu->addItem(item1); QListWidgetItem *item2 = new QListWidgetItem(QIcon(":/image/monitor.png"),tr("文件监控")); item2->setFont(font); item2->setSizeHint(QSize(0,40)); projectMenu->addItem(item2); QListWidgetItem *item4 = new QListWidgetItem(QIcon(":/image/trans.jpg"),tr("传输列表")); item4->setFont(font); item4->setSizeHint(QSize(0,40)); projectMenu->addItem(item4); QListWidgetItem *item3 = new QListWidgetItem(QIcon(":/image/message.png"),tr("消息通知")); item3->setFont(font); item3->setSizeHint(QSize(0,40)); projectMenu->addItem(item3); stackWidget = new QStackedWidget(this); stackWidget->addWidget(fileWidget); stackWidget->addWidget(monitorWidget); stackWidget->addWidget(udFileWidget); connect(projectMenu,SIGNAL(currentRowChanged(int)),stackWidget,SLOT(setCurrentIndex(int))); projectMenu->setCurrentRow(0); //顶部窗口 topWidget = new QWidget; font.setPointSize(18); QLabel* titleLabel = new QLabel(tr("云备份")); font.setBold(true); //粗体 titleLabel->setFont(font); titleLabel->setStyleSheet("color: white"); titleLabel->setAlignment(Qt::AlignCenter);//字体居中 QHBoxLayout* topLayout = new QHBoxLayout; topLayout->addWidget(titleLabel); topWidget->setMaximumHeight(56); topWidget->setStyleSheet("background: #63B8FF;"); topWidget->setLayout(topLayout); //下部窗口 baseSplitter->setHandleWidth(1); //分割线宽度 baseSplitter->addWidget(projectMenu); baseSplitter->addWidget(stackWidget); baseSplitter->setStretchFactor(0,1); baseSplitter->setStretchFactor(1,4); //主窗口 // mainSplitter->setStyleSheet("QSplitter::handle { background-color: grey }"); //设置分界线的样式 mainSplitter->setHandleWidth(1); mainSplitter->addWidget(topWidget); mainSplitter->addWidget(baseSplitter); mainSplitter->resize(QSize(800,600)); }
MainWindowImpl::MainWindowImpl( QWidget * parent, Qt::WFlags f) : QMainWindow(parent, f), Ui::MainWindow(), impl(new Impl) { setupUi(this); this->setWindowTitle( QString("QBoard v. %1").arg(qboard::versionString()) ); connect( this->actionSave, SIGNAL(triggered(bool)), this, SLOT(saveGame()) ); connect( this->actionLoad, SIGNAL(triggered(bool)), this, SLOT(loadGame()) ); connect( this->actionNewBoardView, SIGNAL(triggered(bool)), this, SLOT(launchNewBoardView()) ); connect( this->actionAboutQt, SIGNAL(triggered(bool)), qApp, SLOT(aboutQt()) ); connect( this->actionAboutQBoard, SIGNAL(triggered(bool)), this, SLOT(aboutQBoard()) ); connect( this->actionPrint, SIGNAL(triggered(bool)), this, SLOT(printGame()) ); connect( this->actionHelp, SIGNAL(triggered(bool)), this, SLOT(launchHelp()) ); connect( this->actionClearBoard, SIGNAL(triggered(bool)), this, SLOT(clearBoard()) ); connect( this->actionQuickSave, SIGNAL(triggered(bool)), this, SLOT(quickSave()) ); connect( this->actionQuickLoad, SIGNAL(triggered(bool)), this, SLOT(quickLoad()) ); impl->gstate.enablePlacemarker(true); #if ! QBOARD_VERSION // For "end user builds" we won't show this action. connect( this->actionExperiment, SIGNAL(triggered(bool)), this, SLOT(doSomethingExperimental()) ); this->actionExperiment->setEnabled(true); #else this->actionExperiment->setEnabled(false); #endif connect( &S11nClipboard::instance(), SIGNAL(signalUpdated()), this, SLOT(clipboardUpdated()) ); this->actionClearClipboard->setEnabled( 0 != S11nClipboard::instance().contents() ); connect( this->actionClearClipboard, SIGNAL(triggered(bool)), this, SLOT( clearClipboard() ) ); QWidget * cli = this->clientArea; QLayout * lay = new QGridLayout( cli ); lay->setSpacing(0); lay->setContentsMargins(2,2,2,2); QSplitter * splitter = new QSplitter( Qt::Horizontal, cli ); lay->addWidget( splitter ); splitter->setHandleWidth(4); QSplitter * vsplit = new QSplitter( Qt::Vertical, cli ); impl->sidebar = vsplit; splitter->addWidget( vsplit ); vsplit->setHandleWidth(4); impl->tree = new QBoardHomeView(); vsplit->addWidget(impl->tree); connect( this->actionRefreshFileList, SIGNAL(triggered(bool)), impl->tree, SLOT(refresh()) ); connect( impl->tree, SIGNAL(itemActivated(QFileInfo const &)), this, SLOT(loadFile(QFileInfo const &)) ); connect( this->actionToggleBrowserView, SIGNAL(toggled(bool)), this, SLOT(toggleSidebarVisible(bool)) ); impl->gv = new QBoardView( impl->gstate ); //impl->gv->enablePlacemarker(true); connect( this->actionToggleBoardDragMode, SIGNAL(toggled(bool)), impl->gv, SLOT(setHandDragMode(bool)) ); this->actionToggleBoardDragMode->setChecked(false); connect( this->actionCopy, SIGNAL(triggered(bool)), impl->gv, SLOT(clipCopySelected()) ); connect( this->actionCut, SIGNAL(triggered(bool)), impl->gv, SLOT(clipCutSelected()) ); connect( this->actionPaste, SIGNAL(triggered(bool)), impl->gv, SLOT(clipPaste()) ); connect( this->actionSelectAll, SIGNAL(triggered(bool)), impl->gv, SLOT(selectAll()) ); connect( this->actionZoomIn, SIGNAL(triggered(bool)), impl->gv, SLOT(zoomIn()) ); connect( this->actionZoomOut, SIGNAL(triggered(bool)), impl->gv, SLOT(zoomOut()) ); connect( this->actionZoomReset, SIGNAL(triggered(bool)), impl->gv, SLOT(zoomReset()) ); #define BOGO(A) // this->action ## A->setParent(impl->gv); BOGO(Copy); BOGO(Cut); BOGO(Paste); BOGO(ZoomIn); BOGO(ZoomOut); BOGO(ZoomReset); #undef BOGO splitter->addWidget( impl->gv ); splitter->setStretchFactor(0,2); splitter->setStretchFactor(1,3); vsplit->addWidget( impl->paw ); vsplit->setStretchFactor(0,3); vsplit->setStretchFactor(1,1); if(1) { impl->gv->setObjectName("view"); QScriptEngine & js( impl->gstate.jsEngine() ); QScriptValue jo = js.newQObject( impl->gv, QScriptEngine::QtOwnership ); QScriptValue qb = js.globalObject().property("qboard"); qb.setProperty("view",jo); qb.setProperty("window",js.newQObject(this, QScriptEngine::QtOwnership ) ); } this->resize(760,600); }
void PythonEditorWidget::buildWidget() { setWindowIcon(QIcon(":/icons/python.png")); QWidget* content = new QWidget(this); QVBoxLayout* verticalLayout = new QVBoxLayout(content); ////Create Buttons QHBoxLayout* horizontalLayout = new QHBoxLayout(); QToolButton* runButton = new QToolButton(content); QToolButton* newButton = new QToolButton(content); QToolButton* openButton = new QToolButton(content); QToolButton* saveButton = new QToolButton(content); QToolButton* saveAsButton = new QToolButton(content); QPushButton* clearOutputButton = new QPushButton(content); runButton->setShortcut(QKeySequence(tr("F5"))); runButton->setIcon(QIcon(":/icons/python.png")); runButton->setToolTip("Compile and run (F5)"); newButton->setIcon(QIcon(":/icons/new.png")); newButton->setToolTip("New file (Ctrl+N)"); openButton->setIcon(QIcon(":/icons/open.png")); openButton->setToolTip("Open Python script"); saveButton->setIcon(QIcon(":/icons/save.png")); saveButton->setToolTip("Save (Ctrl+S)"); saveAsButton->setIcon(QIcon(":/icons/saveas.png")); saveAsButton->setToolTip("Save as"); clearOutputButton->setText("Clear Output"); QFrame* line1 = new QFrame(content); line1->setFrameShape(QFrame::VLine); line1->setFrameShadow(QFrame::Sunken); QFrame* line2 = new QFrame(content); line2->setFrameShape(QFrame::VLine); line2->setFrameShadow(QFrame::Sunken); QFrame* line3 = new QFrame(content); line3->setFrameShape(QFrame::VLine); line3->setFrameShadow(QFrame::Sunken); horizontalLayout->addWidget(runButton); horizontalLayout->addWidget(line1); horizontalLayout->addWidget(newButton); horizontalLayout->addWidget(openButton); horizontalLayout->addWidget(saveButton); horizontalLayout->addWidget(saveAsButton); horizontalLayout->addWidget(line2); horizontalLayout->addWidget(clearOutputButton); horizontalLayout->addWidget(line3); QSpacerItem* horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); horizontalLayout->addItem(horizontalSpacer); // Done creating buttons QSplitter* splitter = new QSplitter(content); splitter->setOrientation(Qt::Vertical); pythonCode_ = new PythonTextEditor(content); pythonCode_->setObjectName("pythonEditor"); pythonCode_->setUndoRedoEnabled(true); setDefaultText(); pythonOutput_ = new QTextEdit(content); pythonOutput_->setObjectName("pythonConsole"); pythonOutput_->setReadOnly(true); pythonOutput_->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); syntaxHighligther_ = SyntaxHighligther::createSyntaxHighligther<Python>(pythonCode_->document()); verticalLayout->addLayout(horizontalLayout); splitter->addWidget(pythonCode_); splitter->addWidget(pythonOutput_); splitter->setStretchFactor(0, 1); splitter->setStretchFactor(1, 0); splitter->setHandleWidth(2); // enable QSplitter:hover stylesheet // QTBUG-13768 https://bugreports.qt.io/browse/QTBUG-13768 splitter->handle(1)->setAttribute(Qt::WA_Hover); verticalLayout->addWidget(splitter); setWidget(content); connect(pythonCode_, SIGNAL(textChanged()), this, SLOT(onTextChange())); connect(runButton, SIGNAL(clicked()), this, SLOT(run())); connect(newButton, SIGNAL(clicked()), this, SLOT(setDefaultText())); connect(openButton, SIGNAL(clicked()), this, SLOT(open())); connect(saveButton, SIGNAL(clicked()), this, SLOT(save())); connect(saveAsButton, SIGNAL(clicked()), this, SLOT(saveAs())); connect(clearOutputButton, SIGNAL(clicked()), this, SLOT(clearOutput())); updateStyle(); InviwoApplication::getPtr()->getSettingsByType<SystemSettings>()->pythonSyntax_.onChange(this, &PythonEditorWidget::updateStyle); InviwoApplication::getPtr()->getSettingsByType<SystemSettings>()->pyFontSize_.onChange(this, &PythonEditorWidget::updateStyle); }
void ImportDialog::setLayout() { // set ObjectName used in qss for styling _importButton.setObjectName("importButton"); _cancelButton.setObjectName("cancelButton"); // set fixed size _importButton.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); _cancelButton.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); // hide unused embedded widgets in QFileDialog QWidget* widget = findChild<QWidget*>("lookInCombo"); widget->hide(); widget = findChild<QWidget*>("backButton"); widget->hide(); widget = findChild<QWidget*>("forwardButton"); widget->hide(); widget = findChild<QWidget*>("toParentButton"); widget->hide(); widget = findChild<QWidget*>("newFolderButton"); widget->hide(); widget = findChild<QWidget*>("listModeButton"); widget->hide(); widget = findChild<QWidget*>("detailModeButton"); widget->hide(); widget = findChild<QWidget*>("fileNameEdit"); widget->hide(); widget = findChild<QWidget*>("fileTypeCombo"); widget->hide(); widget = findChild<QWidget*>("fileTypeLabel"); widget->hide(); widget = findChild<QWidget*>("fileNameLabel"); widget->hide(); widget = findChild<QWidget*>("buttonBox"); widget->hide(); QSplitter* splitter = findChild<QSplitter*>("splitter"); splitter->setHandleWidth(0); // remove blue outline on Mac widget = findChild<QWidget*>("sidebar"); widget->setAttribute(Qt::WA_MacShowFocusRect, false); widget = findChild<QWidget*>("treeView"); widget->setAttribute(Qt::WA_MacShowFocusRect, false); switchToResourcesParentIfRequired(); QFile styleSheet("resources/styles/import_dialog.qss"); if (styleSheet.open(QIODevice::ReadOnly)) { setStyleSheet(styleSheet.readAll()); } }
CPUWidget::CPUWidget(QWidget* parent) : QWidget(parent), ui(new Ui::CPUWidget) { ui->setupUi(this); setDefaultDisposition(); mDisas = new CPUDisassembly(0); mSideBar = new CPUSideBar(mDisas); connect(mDisas, SIGNAL(tableOffsetChanged(int_t)), mSideBar, SLOT(changeTopmostAddress(int_t))); connect(mDisas, SIGNAL(viewableRows(int)), mSideBar, SLOT(setViewableRows(int))); connect(mDisas, SIGNAL(repainted()), mSideBar, SLOT(repaint())); connect(mDisas, SIGNAL(selectionChanged(int_t)), mSideBar, SLOT(setSelection(int_t))); connect(Bridge::getBridge(), SIGNAL(dbgStateChanged(DBGSTATE)), mSideBar, SLOT(debugStateChangedSlot(DBGSTATE))); connect(Bridge::getBridge(), SIGNAL(updateSideBar()), mSideBar, SLOT(repaint())); QSplitter* splitter = new QSplitter(this); splitter->addWidget(mSideBar); splitter->addWidget(mDisas); splitter->setChildrenCollapsible(false); splitter->setHandleWidth(1); ui->mTopLeftUpperFrameLayout->addWidget(splitter); mInfo = new CPUInfoBox(); ui->mTopLeftLowerFrameLayout->addWidget(mInfo); int height = mInfo->getHeight(); ui->mTopLeftLowerFrame->setMinimumHeight(height + 2); ui->mTopLeftLowerFrame->setMaximumHeight(height + 2); connect(mDisas, SIGNAL(selectionChanged(int_t)), mInfo, SLOT(disasmSelectionChanged(int_t))); mGeneralRegs = new RegistersView(0); mGeneralRegs->setFixedWidth(1000); mGeneralRegs->setFixedHeight(1400); mGeneralRegs->ShowFPU(true); QScrollArea* scrollArea = new QScrollArea; scrollArea->setWidget(mGeneralRegs); scrollArea->horizontalScrollBar()->setStyleSheet("QScrollBar:horizontal{border:1px solid grey;background:#f1f1f1;height:10px}QScrollBar::handle:horizontal{background:#aaa;min-width:20px;margin:1px}QScrollBar::add-line:horizontal,QScrollBar::sub-line:horizontal{width:0;height:0}"); scrollArea->verticalScrollBar()->setStyleSheet("QScrollBar:vertical{border:1px solid grey;background:#f1f1f1;width:10px}QScrollBar::handle:vertical{background:#aaa;min-height:20px;margin:1px}QScrollBar::add-line:vertical,QScrollBar::sub-line:vertical{width:0;height:0}"); QPushButton* button_changeview = new QPushButton(""); mGeneralRegs->SetChangeButton(button_changeview); button_changeview->setStyleSheet("Text-align:left;padding: 4px;padding-left: 10px;"); QFont font = QFont("Lucida Console"); font.setStyleHint(QFont::Monospace); font.setPointSize(8); button_changeview->setFont(font); connect(button_changeview, SIGNAL(clicked()), mGeneralRegs, SLOT(onChangeFPUViewAction())); ui->mTopRightFrameLayout->addWidget(button_changeview); ui->mTopRightFrameLayout->addWidget(scrollArea); mDump = new CPUDump(mDisas, 0); //dump widget ui->mBotLeftFrameLayout->addWidget(mDump); mStack = new CPUStack(0); //stack widget ui->mBotRightFrameLayout->addWidget(mStack); }
MainStatusBar::MainStatusBar(QWidget *parent) : QStatusBar(parent), cap_file_(NULL), edit_action_(NULL), delete_action_(NULL) { QSplitter *splitter = new QSplitter(this); #ifdef HAVE_LIBPCAP QString ready_msg(tr("Ready to load or capture")); #else QString ready_msg(tr("Ready to load file")); #endif QWidget *info_progress = new QWidget(this); QHBoxLayout *info_progress_hb = new QHBoxLayout(info_progress); QAction *action; #if defined(Q_OS_WIN) // Handles are the same color as widgets, at least on Windows 7. splitter->setHandleWidth(3); splitter->setStyleSheet(QString( "QSplitter::handle {" " border-left: 1px solid palette(mid);" " border-right: 1px solid palette(mid);" "}" )); #endif QString button_ss = "QToolButton {" " border: none;" " background: transparent;" // Disables platform style on Windows. " padding: 0px;" " margin: 0px;" "}"; expert_button_ = new QToolButton(this); expert_button_->setIconSize(QSize(icon_size, icon_size)); expert_button_->setStyleSheet(button_ss); expert_button_->hide(); // We just want a clickable image. Using a QPushButton or QToolButton would require // a lot of adjustment. StockIcon comment_icon("x-capture-comment-update"); comment_button_ = new QToolButton(this); comment_button_->setIcon(comment_icon); comment_button_->setIconSize(QSize(icon_size, icon_size)); comment_button_->setStyleSheet(button_ss); comment_button_->setToolTip(tr("Open the Capture File Properties dialog")); comment_button_->setEnabled(false); connect(expert_button_, SIGNAL(clicked(bool)), this, SIGNAL(showExpertInfo())); connect(comment_button_, SIGNAL(clicked(bool)), this, SIGNAL(editCaptureComment())); info_progress_hb->setContentsMargins(icon_size / 2, 0, 0, 0); info_status_.setTemporaryContext(STATUS_CTX_TEMPORARY); info_status_.setShrinkable(true); info_progress_hb->addWidget(expert_button_); info_progress_hb->addWidget(comment_button_); info_progress_hb->addWidget(&info_status_); info_progress_hb->addWidget(&progress_frame_); info_progress_hb->addStretch(10); splitter->addWidget(info_progress); splitter->addWidget(&packet_status_); splitter->addWidget(&profile_status_); splitter->setStretchFactor(0, 3); splitter->setStretchFactor(1, 3); splitter->setStretchFactor(2, 1); addWidget(splitter, 1); cur_main_status_bar_ = this; splitter->hide(); info_status_.pushText(ready_msg, STATUS_CTX_MAIN); packets_bar_update(); action = ctx_menu_.addAction(tr("Manage Profiles" UTF8_HORIZONTAL_ELLIPSIS)); action->setData(ProfileDialog::ShowProfiles); connect(action, SIGNAL(triggered()), this, SLOT(manageProfile())); ctx_menu_.addSeparator(); action = ctx_menu_.addAction(tr("New" UTF8_HORIZONTAL_ELLIPSIS)); action->setData(ProfileDialog::NewProfile); connect(action, SIGNAL(triggered()), this, SLOT(manageProfile())); edit_action_ = ctx_menu_.addAction(tr("Edit" UTF8_HORIZONTAL_ELLIPSIS)); edit_action_->setData(ProfileDialog::EditCurrentProfile); connect(edit_action_, SIGNAL(triggered()), this, SLOT(manageProfile())); delete_action_ = ctx_menu_.addAction(tr("Delete")); delete_action_->setData(ProfileDialog::DeleteCurrentProfile); connect(delete_action_, SIGNAL(triggered()), this, SLOT(manageProfile())); ctx_menu_.addSeparator(); profile_menu_.setTitle(tr("Switch to")); ctx_menu_.addMenu(&profile_menu_); #ifdef QWINTASKBARPROGRESS_H progress_frame_.enableTaskbarUpdates(true); #endif connect(wsApp, SIGNAL(appInitialized()), splitter, SLOT(show())); connect(wsApp, SIGNAL(appInitialized()), this, SLOT(pushProfileName())); connect(&info_status_, SIGNAL(toggleTemporaryFlash(bool)), this, SLOT(toggleBackground(bool))); connect(wsApp, SIGNAL(profileNameChanged(const gchar *)), this, SLOT(pushProfileName())); connect(&profile_status_, SIGNAL(mousePressedAt(QPoint,Qt::MouseButton)), this, SLOT(showProfileMenu(QPoint,Qt::MouseButton))); connect(&progress_frame_, SIGNAL(stopLoading()), this, SIGNAL(stopLoading())); }