context menu and cleanup
This commit is contained in:
parent
7b1c599947
commit
65bc2d3f39
@ -4,9 +4,6 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include "emb.h"
|
#include "emb.h"
|
||||||
#include "pybindings.h"
|
#include "pybindings.h"
|
||||||
#include "qtpropertymanager.h"
|
|
||||||
#include "qttreepropertybrowser.h"
|
|
||||||
#include "qtvariantproperty.h"
|
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
|
|
||||||
#include <QDate>
|
#include <QDate>
|
||||||
@ -18,6 +15,9 @@ MainWindow::MainWindow(Design *_design, QWidget *parent)
|
|||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->treeWidget->setColumnCount(1);
|
ui->treeWidget->setColumnCount(1);
|
||||||
ui->treeWidget->setHeaderLabel(QString("Items"));
|
ui->treeWidget->setHeaderLabel(QString("Items"));
|
||||||
|
ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
connect(ui->treeWidget, &QTreeWidget::customContextMenuRequested, this,
|
||||||
|
&MainWindow::prepareMenu);
|
||||||
|
|
||||||
QTreeWidgetItem *bel_root = new QTreeWidgetItem(ui->treeWidget);
|
QTreeWidgetItem *bel_root = new QTreeWidgetItem(ui->treeWidget);
|
||||||
bel_root->setText(0, QString("Bels"));
|
bel_root->setText(0, QString("Bels"));
|
||||||
@ -62,7 +62,8 @@ MainWindow::MainWindow(Design *_design, QWidget *parent)
|
|||||||
emb::set_stdout(write);
|
emb::set_stdout(write);
|
||||||
std::string title = "nextpnr-ice40 - " + design->chip.getChipName();
|
std::string title = "nextpnr-ice40 - " + design->chip.getChipName();
|
||||||
setWindowTitle(title.c_str());
|
setWindowTitle(title.c_str());
|
||||||
QtVariantPropertyManager *variantManager = new QtVariantPropertyManager();
|
|
||||||
|
variantManager = new QtVariantPropertyManager();
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
QtProperty *topItem = variantManager->addProperty(
|
QtProperty *topItem = variantManager->addProperty(
|
||||||
@ -221,9 +222,9 @@ MainWindow::MainWindow(Design *_design, QWidget *parent)
|
|||||||
QString::number(i++) + QLatin1String(" Color Property"));
|
QString::number(i++) + QLatin1String(" Color Property"));
|
||||||
topItem->addSubProperty(item);
|
topItem->addSubProperty(item);
|
||||||
|
|
||||||
QtVariantEditorFactory *variantFactory = new QtVariantEditorFactory();
|
variantFactory = new QtVariantEditorFactory();
|
||||||
|
|
||||||
QtTreePropertyBrowser *variantEditor = new QtTreePropertyBrowser();
|
variantEditor = new QtTreePropertyBrowser();
|
||||||
variantEditor->setFactoryForManager(variantManager, variantFactory);
|
variantEditor->setFactoryForManager(variantManager, variantFactory);
|
||||||
variantEditor->addProperty(topItem);
|
variantEditor->addProperty(topItem);
|
||||||
variantEditor->setPropertiesWithoutValueMarked(true);
|
variantEditor->setPropertiesWithoutValueMarked(true);
|
||||||
@ -234,13 +235,37 @@ MainWindow::MainWindow(Design *_design, QWidget *parent)
|
|||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
{
|
{
|
||||||
|
delete variantManager;
|
||||||
// delete variantManager;
|
delete variantFactory;
|
||||||
// delete variantFactory;
|
delete variantEditor;
|
||||||
// delete variantEditor;
|
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::prepareMenu(const QPoint &pos)
|
||||||
|
{
|
||||||
|
QTreeWidget *tree = ui->treeWidget;
|
||||||
|
|
||||||
|
QTreeWidgetItem *item = tree->itemAt(pos);
|
||||||
|
|
||||||
|
QAction *selectAction = new QAction("&Select", this);
|
||||||
|
selectAction->setStatusTip("Select item on view");
|
||||||
|
connect(selectAction, SIGNAL(triggered()), this, SLOT(selectObject(item)));
|
||||||
|
|
||||||
|
QMenu menu(this);
|
||||||
|
menu.addAction(selectAction);
|
||||||
|
|
||||||
|
QPoint pt(pos);
|
||||||
|
menu.exec(tree->mapToGlobal(pos));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::selectObject(QTreeWidgetItem *item)
|
||||||
|
{
|
||||||
|
ui->plainTextEdit->moveCursor(QTextCursor::End);
|
||||||
|
ui->plainTextEdit->insertPlainText(
|
||||||
|
std::string("selected " + item->text(0).toStdString() + "\n").c_str());
|
||||||
|
ui->plainTextEdit->moveCursor(QTextCursor::End);
|
||||||
|
}
|
||||||
|
|
||||||
void handle_system_exit() { exit(-1); }
|
void handle_system_exit() { exit(-1); }
|
||||||
|
|
||||||
int MainWindow::executePython(std::string command)
|
int MainWindow::executePython(std::string command)
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
|
|
||||||
#include "emb.h"
|
#include "emb.h"
|
||||||
#include "nextpnr.h"
|
#include "nextpnr.h"
|
||||||
|
#include "qtpropertymanager.h"
|
||||||
|
#include "qttreepropertybrowser.h"
|
||||||
|
#include "qtvariantproperty.h"
|
||||||
|
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
|
|
||||||
@ -27,11 +30,16 @@ class MainWindow : public QMainWindow
|
|||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void on_lineEdit_returnPressed();
|
void on_lineEdit_returnPressed();
|
||||||
|
void prepareMenu(const QPoint &pos);
|
||||||
|
void selectObject(QTreeWidgetItem *item);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
emb::stdout_write_type write;
|
emb::stdout_write_type write;
|
||||||
Design *design;
|
Design *design;
|
||||||
|
QtVariantPropertyManager *variantManager;
|
||||||
|
QtVariantEditorFactory *variantFactory;
|
||||||
|
QtTreePropertyBrowser *variantEditor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
Loading…
Reference in New Issue
Block a user