15 #include <QDialogButtonBox>
16 #include <QGridLayout>
17 #include <QPushButton>
21 #include <QMessageBox>
22 #include <QApplication>
28 mExcludeIds(excludeIds),
33 mPickerModeActivated(false),
39 mButtonPick =
new QPushButton(
"Pick module from graph",
this);
67 mTabWidget->
addTab(mTreeView,
"Module tree");
69 mTableView =
new ModuleSelectView(
false, mSearchbar, &mExcludeIds, mTabWidget);
72 mTabWidget->
addTab(mTableView,
"Module list");
76 mLastUsed =
new ModuleSelectView(
true, mSearchbar, &mExcludeIds, mTabWidget);
80 mTabWidget->
addTab(mLastUsed,
"Recent selection");
96 mTreeView->
setModel(mModuleTreeProxyModel);
102 mToggleSearchbar =
new QAction(
this);
129 void ModuleDialog::enableButtons()
144 ModuleModel* treeModel =
static_cast<ModuleModel*
>(mModuleTreeProxyModel->
sourceModel());
147 if (!sourceIndex.
isValid())
return 0;
148 ModuleItem* item = treeModel->getItem(sourceIndex);
155 Q_UNUSED(deselected);
163 void ModuleDialog::handleTreeDoubleClick(
const QModelIndex& index)
165 u32 moduleId = treeModuleId(index);
173 if (mSelectedId && doubleClick)
accept();
182 Q_ASSERT(firstAccepted);
204 void ModuleDialog::handlePickFromGraph()
208 mPickerModeActivated =
true;
218 void ModuleDialog::handleCreateNewModule()
224 void ModuleDialog::handleToggleSearchbar()
238 void ModuleDialog::handleCurrentTabChanged(
int index)
245 mSearchbar->
setColumnNames(
static_cast<ModuleSelectProxy*
>(mTableView->
model())->getColumnNames());
Adds an item to a module or grouping.
void handleModulesPicked(const QSet< u32 > &mods) override
GraphTabWidget * getGraphTabWidget()
Get hal's graph tab widget.
static SettingsItemKeybind * sSettingSearch
ModuleWidget * getModuleWidget()
void keybindToggleSearchbar(const QKeySequence &seq)
void handleTableSelection(u32 id, bool doubleClick)
ModuleDialog(const QSet< u32 > &excludeIds={}, const QString &title=QString("Select module"), bool omitCreateNew=false, ModuleSelectReceiver *receiver=nullptr, QWidget *parent=nullptr)
std::string get_name() const
Enables filtering in the ModuleModel.
void startSearch(QString text, int options) override
QSet< u32 > modules() const
QString selectionToString() const
selectionToString function is used to generate selection as text for message box
bool isAccepted(u32 modId) const
QSet< u32 > gates() const
static ModuleSelectHistory * instance()
The ModuleSelectPicker class instance gets spawned to pick module from graph.
The ModuleSelectProxy class allows sorting and filtering of module tables.
void startSearch(QString text, int options) override
The ModuleSelectView class is the table widget for module selection.
void moduleSelected(u32 modId, bool doubleClick)
Module * get_module_by_id(u32 module_id) const
virtual QList< QString > getColumnNames()
A QFrame with a QLineEdit that can be used to input a substring to search for.
void setColumnNames(QList< QString > list)
void triggerNewSearch(const QString &text, int searchOptions)
void setFocus(ItemType ftype, u32 fid, Subfocus sfoc=Subfocus::None, u32 sfinx=0)
void relaySelectionChanged(void *sender)
void keySequenceChanged(QKeySequence value)
virtual void setObject(const UserActionObject &obj)
The UserActionObject class represents a single object used in UserAction.
ContentManager * gContentManager
SelectionRelay * gSelectionRelay
virtual int rowCount(const QModelIndex &parent) const const=0
void doubleClicked(const QModelIndex &index)
QAbstractItemModel * model() const const
QItemSelectionModel * selectionModel() const const
void setShortcut(const QKeySequence &shortcut)
void triggered(bool checked)
QModelIndexList indexes() const const
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
QMessageBox::StandardButton question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton)
bool isValid() const const
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QSet::const_iterator constBegin() const const
void setDynamicSortFilter(bool enable)
void setFilterKeyColumn(int column)
virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const const override
virtual void setSourceModel(QAbstractItemModel *sourceModel) override
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
QString fromStdString(const std::string &str)
virtual void setModel(QAbstractItemModel *model) override