ObjectViewer::ObjectViewer(QWidget* parent, Qt::WindowFlags f) : ViewerInterface(parent, f) { mainLayout = new QHBoxLayout(this); auto leftLayout = new QVBoxLayout; objectList = new QTableView; objectMenu = new QMenu(objectList); objectList->setContextMenuPolicy(Qt::CustomContextMenu); auto viewModelAction = new QAction("View Model", objectMenu); objectMenu->addAction(viewModelAction); connect(viewModelAction, SIGNAL(triggered()), this, SLOT(menuViewModel())); connect(objectList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onCustomContextMenu(QPoint))); filterModel = new ObjectSearchModel(this); objectList->setModel(filterModel); objectList->setColumnWidth(0, 50); objectList->setColumnWidth(1, 150); objectList->setColumnWidth(2, 200); objectList->setSortingEnabled(true); objectList->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows); connect(objectList->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(showItem(QModelIndex))); leftLayout->addLayout(searchControls(filterModel)); leftLayout->addWidget(objectList); mainLayout->addLayout(leftLayout, 6); previewWidget = createViewer(); previewWidget->setMode(ViewerWidget::Mode::Object); infoLayout = new QGridLayout; previewID = new QLabel; previewModel = new QLabel; previewClass = new QLabel; infoLayout->addWidget(new QLabel("ID"), 1, 0); infoLayout->addWidget(previewID, 1, 1); infoLayout->addWidget(new QLabel("Type"), 2, 0); infoLayout->addWidget(previewClass, 2, 1); infoLayout->addWidget(new QLabel("Model"), 3, 0); infoLayout->addWidget(previewModel, 3, 1); infoLayout->addWidget(QWidget::createWindowContainer(previewWidget), 0, 0, 1, 2); infoLayout->setRowStretch(0, 1); mainLayout->addLayout(infoLayout, 4); setLayout(mainLayout); }
SearchListView::SearchListView(QWidget *parent) : QFrame(parent), ui(new Ui::SearchListView) { ui->setupUi(this); BookmarkModel *model = new BookmarkModel(); ui->bookmarks->setModel(model); ui->bookmarks->header()->hide(); connect(ui->bookmarks, SIGNAL(clicked(QModelIndex)), this, SLOT(onListItemSelected(QModelIndex))); connect(ui->filter, SIGNAL(textChanged(QString)), this, SLOT(onFilterChanged(QString))); connect(ui->bookmarks, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onCustomContextMenu(QPoint))); }
ProjectTree::ProjectTree(QWidget *parent) : QWidget(parent) { setMaximumWidth(250); m_mainLayout = new QHBoxLayout(this); setLayout(m_mainLayout); m_treeWidget = new QTreeWidget(this); m_treeWidget->setContextMenuPolicy(Qt::CustomContextMenu); m_treeWidget->setColumnCount(1); m_treeWidget->setHeaderLabel(tr("Название проекта")); m_sourcesLabel = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString(tr("Исходные файлы")))); m_sourcesLabel->setIcon(0, QIcon(":/icons/actions/edit-find.png")); m_treeWidget->insertTopLevelItem(0, m_sourcesLabel); m_headersLabel = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString(tr("Заголовочные файлы")))); m_headersLabel->setIcon(0, QIcon(":/icons/actions/document-new.png")); m_treeWidget->insertTopLevelItem(0, m_headersLabel); m_mainLayout->addWidget(m_treeWidget); m_deleteAction = new QAction(QIcon(":/icons/actions/edit-undo.png"), tr("Удалить из проекта"), this); QObject::connect(m_deleteAction, SIGNAL(triggered(bool)), this, SLOT(deleteItem())); QObject::connect(m_treeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(onItemClicked(QTreeWidgetItem*,int))); QObject::connect(m_treeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onCustomContextMenu(QPoint))); }