33 #define ENABLE_PANEL_DND_CHECKS 44 setSelectionMode(QAbstractItemView::SingleSelection);
46 setExpandsOnDoubleClick(
true);
47 setMouseTracking(
true);
52 setDropIndicatorShown(
true);
53 setAutoExpandDelay(1000);
57 QPalette qp = palette();
58 qp.setColor(QPalette::Text, Qt::black);
59 qp.setColor(QPalette::Base, Qt::white);
60 qp.setColor(QPalette::AlternateBase, QColor(
"#e8e8e8"));
61 qp.setColor(QPalette::Highlight, QColor(
"#678db2"));
62 qp.setColor(QPalette::HighlightedText, Qt::black);
71 setContextMenuPolicy(Qt::CustomContextMenu);
85 Q_UNUSED(supportedActions);
99 QString location_string = location.
toString();
101 QMimeData *mime_data =
new QMimeData();
102 mime_data -> setText(location_string);
103 mime_data -> setData(
"application/x-qet-titleblock-uri", location_string.toLatin1());
105 QDrag *drag =
new QDrag(
this);
106 drag -> setMimeData(mime_data);
108 drag -> start(Qt::CopyAction);
128 Q_UNUSED(parent_item)
136 invisibleRootItem() -> insertChild(
140 if (first_add) qtwi_project -> setExpanded(
true);
144 if (first_add) tbt_collection_qtwi -> setExpanded(
true);
148 qtwi_project -> setStatusTip(0,
tr(
"Double-cliquez pour réduire ou développer ce projet",
"Status tip"));
150 return(qtwi_project);
155 if (tbt_collection && tbt_collection -> parentProject()) {
156 tbtc_qtwi -> setText(0,
tr(
"Cartouches embarqués"));
157 tbtc_qtwi -> setStatusTip(0,
tr(
"Double-cliquez pour réduire ou développer cette collection de cartouches embarquée",
"Status tip"));
164 item -> setStatusTip(
167 "Glissez-déposez ce modèle de cartouche sur un folio pour l'y appliquer.",
168 "Status tip displayed when selecting a title block template" 178 if (!item)
return(
false);
181 if (
filter.isEmpty())
return(
true);
183 bool item_matches = item -> text(0).contains(
filter, Qt::CaseInsensitive);
185 return(item_matches);
194 Q_UNUSED(reload_collections);
196 QIcon system_icon(
":/ico/16x16/qet.png");
197 QIcon user_icon(
":/ico/16x16/go-home.png");
203 common_tbt_collection_item_ -> setStatusTip(0,
tr(
"Double-cliquez pour réduire ou développer la collection de cartouches QElectroTech",
"Status tip"));
204 common_tbt_collection_item_ -> setWhatsThis(0,
tr(
"Ceci est la collection de cartouches fournie avec QElectroTech. Installée en tant que composant système, vous ne pouvez normalement pas la personnaliser.",
"\"What's this\" tip"));
211 custom_tbt_collection_item_ -> setStatusTip(0,
tr(
"Double-cliquez pour réduire ou développer votre collection personnelle de cartouches",
"Status tip"));
212 custom_tbt_collection_item_ -> setWhatsThis(0,
tr(
"Ceci est votre collection personnelle de cartouches -- utilisez-la pour créer, stocker et éditer vos propres cartouches.",
"\"What's this\" tip"));
233 int qtwi_type = qtwi -> type();
235 QETProject *project = valueForItem<QETProject *>(qtwi);
238 Diagram *diagram = valueForItem<Diagram *>(qtwi);
252 if (!file_path.isEmpty()) {
253 QFileInfo path_info(file_path);
254 if (path_info.isDir()) {
258 return(path_info.canonicalPath());
269 if (!item)
return(QString());
273 if (tbt_collection && tbt_collection -> hasFilePath()) {
274 return(tbt_collection -> filePath());
279 return(project -> filePath());
295 QList<QTreeWidgetItem *> items = findItems(
"*", Qt::MatchRecursive | Qt::MatchWildcard);
296 const int expanded_role = 42;
299 foreach (QTreeWidgetItem *item, items) {
300 item -> setData(0, expanded_role, item -> isExpanded());
309 QTreeWidgetItem *current_item = currentItem();
312 foreach (QTreeWidgetItem *qtwi, items) {
313 qtwi -> setHidden(
false);
314 qtwi -> setExpanded(qtwi -> data(0, expanded_role).toBool());
320 scrollToItem(current_item);
368 QList<QTreeWidgetItem *> matching_items;
370 foreach (QTreeWidgetItem *item, items) {
371 bool item_matches =
true;
375 if ( !
filter.isEmpty() ) {
379 if (item_matches) matching_items << item;
380 item -> setHidden(!item_matches);
391 QSet<QTreeWidgetItem *> parent_items;
392 foreach(QTreeWidgetItem *item, items) {
393 for (QTreeWidgetItem *parent_qtwi = item -> parent() ; parent_qtwi ; parent_qtwi = parent_qtwi -> parent()) {
394 parent_items << parent_qtwi;
399 foreach(QTreeWidgetItem *parent_qtwi, parent_items) {
400 if (!parent_qtwi -> isExpanded()) parent_qtwi -> setExpanded(
true);
404 foreach(QTreeWidgetItem *parent_qtwi, parent_items) {
405 if (parent_qtwi -> isHidden()) parent_qtwi -> setHidden(
false);
static TitleBlockTemplatesFilesCollection * commonTitleBlockTemplatesCollection()
QStringList filter_list_
Currently applied list of filter.
void panelContentChanged()
ElementsPanel(QWidget *=nullptr)
void requestForDiagram(Diagram *)
QTreeWidgetItem * addProject(QETProject *, QTreeWidgetItem *=nullptr, PanelOptions=AddAllChild) override
virtual QTreeWidgetItem * addProject(QETProject *, QTreeWidgetItem *=nullptr, PanelOptions=AddAllChild)
virtual QTreeWidgetItem * itemForProject(QETProject *)
void slot_doubleClick(QTreeWidgetItem *, int)
QString dirPathForItem(QTreeWidgetItem *)
void startTitleBlockTemplateDrag(const TitleBlockTemplateLocation &)
void projectWasOpened(QETProject *)
virtual TitleBlockTemplateLocation templateLocationForItem(QTreeWidgetItem *) const
bool first_reload_
used to distinguish the first time this panel is reloaded
virtual QTreeWidgetItem * updateTemplatesCollectionItem(QTreeWidgetItem *, TitleBlockTemplatesCollection *, PanelOptions=AddAllChild, bool=false)
virtual void deleteItem(QTreeWidgetItem *, bool=false)
QTreeWidgetItem * custom_tbt_collection_item_
pointer to the item representing the user templates collection
void filter(const QString &, QET::Filtering=QET::RegularFilter)
void requestForTitleBlockTemplate(const TitleBlockTemplateLocation &)
virtual TitleBlockTemplateLocation selectedTemplateLocation() const
~ElementsPanel() override
void projectWasClosed(QETProject *)
static TitleBlockTemplatesFilesCollection * customTitleBlockTemplatesCollection()
virtual QTreeWidgetItem * addTemplatesCollection(TitleBlockTemplatesCollection *, QTreeWidgetItem *=nullptr, PanelOptions=AddAllChild)
void ensureHierarchyIsVisible(const QList< QTreeWidgetItem *> &)
void requestForProject(QETProject *)
bool matchesFilter(const QTreeWidgetItem *, const QString &) const
virtual QETProject * projectForItem(QTreeWidgetItem *) const
QString filePathForItem(QTreeWidgetItem *)
QTreeWidgetItem * updateTemplateItem(QTreeWidgetItem *, const TitleBlockTemplateLocation &, PanelOptions, bool=false) override
virtual QTreeWidgetItem * updateTemplateItem(QTreeWidgetItem *, const TitleBlockTemplateLocation &, PanelOptions=AddAllChild, bool=false)
void startDrag(Qt::DropActions) override
void reload(bool=false)
ElementsPanel::reload Reload the elements tree.
void applyCurrentFilter(const QList< QTreeWidgetItem *> &)
QSet< QETProject * > projects_to_display_
list of projects that have been added to this panel
QString filter_
Currently applied filter.
void panelContentChange()
TitleBlockTemplatesCollection * parentCollection() const
virtual QTreeWidgetItem * itemForTemplatesCollection(TitleBlockTemplatesCollection *)
QTreeWidgetItem * common_tbt_collection_item_
pointer to the item representing the common templates collection
QTreeWidgetItem * updateTemplatesCollectionItem(QTreeWidgetItem *, TitleBlockTemplatesCollection *, PanelOptions=AddAllChild, bool=false) override