MenuBarTree::MenuBarTree(TFilePath & path, QWidget* parent) : QTreeWidget(parent) , m_path(path) { setObjectName("SolidLineFrame"); setAlternatingRowColors(true); setDragEnabled(true); setDropIndicatorShown(true); setDefaultDropAction(Qt::MoveAction); setDragDropMode(QAbstractItemView::DragDrop); setColumnCount(1); header()->close(); /*- m_pathが存在するならファイルから読み込む。無ければテンプレートを読み込む -*/ TFilePath fp; if (TFileStatus(path).isWritable()) fp = m_path; else { fp = m_path.withParentDir(ToonzFolder::getTemplateModuleDir()); if (!TFileStatus(path).isReadable()) fp = ToonzFolder::getTemplateModuleDir() + "menubar_template.xml"; } loadMenuTree(fp); }
EntryView::EntryView(QWidget* parent) : QTreeView(parent) , m_model(new EntryModel(this)) , m_sortModel(new SortFilterHideProxyModel(this)) , m_inEntryListMode(false) { m_sortModel->setSourceModel(m_model); m_sortModel->setDynamicSortFilter(true); m_sortModel->setSortLocaleAware(true); m_sortModel->setSortCaseSensitivity(Qt::CaseInsensitive); m_sortModel->setSupportedDragActions(m_model->supportedDragActions()); QTreeView::setModel(m_sortModel); setUniformRowHeights(true); setRootIsDecorated(false); setAlternatingRowColors(true); setDragEnabled(true); setSortingEnabled(true); setSelectionMode(QAbstractItemView::ExtendedSelection); // QAbstractItemView::startDrag() uses this property as the default drag action setDefaultDropAction(Qt::MoveAction); connect(this, SIGNAL(doubleClicked(QModelIndex)), SLOT(emitEntryActivated(QModelIndex))); connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SIGNAL(entrySelectionChanged())); connect(m_model, SIGNAL(switchedToEntryListMode()), SLOT(switchToEntryListMode())); connect(m_model, SIGNAL(switchedToGroupMode()), SLOT(switchToGroupMode())); }
DeviceExplorerView::DeviceExplorerView(QWidget* parent) : QTreeView(parent), m_hasProxy(false) { setAllColumnsShowFocus(true); setSelectionBehavior(QAbstractItemView::SelectRows); setSelectionMode(QAbstractItemView::ExtendedSelection); header()->setContextMenuPolicy(Qt::CustomContextMenu); connect( header(), &QWidget::customContextMenuRequested, this, &DeviceExplorerView::headerMenuRequested); header()->setMaximumHeight(20); //- Drag'n Drop. setDragEnabled(true); setAcceptDrops(true); setUniformRowHeights(true); setDragDropMode(QAbstractItemView::DragDrop); setDropIndicatorShown(true); setDefaultDropAction(Qt::MoveAction); setDragDropOverwriteMode(false); QFile f(":/DeviceExplorer.qss"); if (f.open(QFile::ReadOnly)) setStyleSheet(f.readAll()); }
IconPickerDialog::IconPickerDialog(QWidget *parent) : QDialog(parent), ui(new Ui::IconPickerDialog) { MultiMCPlatform::fixWM_CLASS(this); ui->setupUi(this); setWindowModality(Qt::WindowModal); auto contentsWidget = ui->iconView; contentsWidget->setViewMode(QListView::IconMode); contentsWidget->setFlow(QListView::LeftToRight); contentsWidget->setIconSize(QSize(48, 48)); contentsWidget->setMovement(QListView::Static); contentsWidget->setResizeMode(QListView::Adjust); contentsWidget->setSelectionMode(QAbstractItemView::SingleSelection); contentsWidget->setSpacing(5); contentsWidget->setWordWrap(false); contentsWidget->setWrapping(true); contentsWidget->setUniformItemSizes(true); contentsWidget->setTextElideMode(Qt::ElideRight); contentsWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); contentsWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); contentsWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); contentsWidget->setItemDelegate(new ListViewDelegate()); //contentsWidget->setAcceptDrops(true); contentsWidget->setDropIndicatorShown(true); contentsWidget->viewport()->setAcceptDrops(true); contentsWidget->setDragDropMode(QAbstractItemView::DropOnly); contentsWidget->setDefaultDropAction(Qt::CopyAction); contentsWidget->installEventFilter(this); contentsWidget->setModel(MMC->icons().get()); auto buttonAdd = ui->buttonBox->addButton(tr("Add Icon"),QDialogButtonBox::ResetRole); auto buttonRemove = ui->buttonBox->addButton(tr("Remove Icon"),QDialogButtonBox::ResetRole); connect(buttonAdd,SIGNAL(clicked(bool)),SLOT(addNewIcon())); connect(buttonRemove,SIGNAL(clicked(bool)),SLOT(removeSelectedIcon())); connect ( contentsWidget, SIGNAL(doubleClicked(QModelIndex)), SLOT(activated(QModelIndex)) ); connect ( contentsWidget->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(selectionChanged(QItemSelection,QItemSelection)) ); }
//------------------------------------------------------------------------------ // FunctionBlockListView // FunctionBlockListView::FunctionBlockListView(QWidget* parent) : QListView(parent) { setAcceptDrops(false); setDefaultDropAction(Qt::IgnoreAction); setDragEnabled(true); setSelectionBehavior(QAbstractItemView::SelectRows); setSelectionMode(QAbstractItemView::ExtendedSelection); }
DropTableWidget::DropTableWidget(QWidget *parent) : QTableWidget(parent) { //set widget default properties: setFrameStyle(QFrame::Sunken | QFrame::StyledPanel); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setEditTriggers(QAbstractItemView::NoEditTriggers); setDragDropMode(QAbstractItemView::DropOnly); setDefaultDropAction(Qt::IgnoreAction); setAlternatingRowColors(true); setSelectionMode(QAbstractItemView::NoSelection); setShowGrid(false); setWordWrap(false); setAcceptDrops(true); }
AnimationListWidget::AnimationListWidget(QWidget *parent): ListWidget(parent) { setDropIndicatorShown(false); setMovement(Static); setDefaultDropAction(Qt::IgnoreAction); setEditTriggers(DoubleClicked | EditKeyPressed); setDragDropMode(DragOnly); setDragEnabled(true); setAcceptDrops(false); setSortingEnabled(true); createActions(); connect( m_addToPlaylistAction, &QAction::triggered, this, &AnimationListWidget::addSelectedItemsToPlaylist); }
MusicListView::MusicListView(QWidget *parent) : ListView(parent), d_ptr(new MusicListViewPrivate(this)) { Q_D(MusicListView); DThemeManager::instance()->registerWidget(this); setObjectName("MusicListView"); d->model = new MusiclistModel(0, 1, this); setModel(d->model); d->delegate = new MusicItemDelegate; setItemDelegate(d->delegate); setDragEnabled(true); viewport()->setAcceptDrops(true); setDropIndicatorShown(true); setDragDropOverwriteMode(false); setVerticalScrollMode(QAbstractItemView::ScrollPerItem); setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); setDefaultDropAction(Qt::MoveAction); setDragDropMode(QAbstractItemView::InternalMove); setMovement(QListView::Free); setSelectionMode(QListView::ExtendedSelection); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setEditTriggers(QAbstractItemView::NoEditTriggers); setSelectionBehavior(QAbstractItemView::SelectRows); setContextMenuPolicy(Qt::CustomContextMenu); connect(this, &MusicListView::customContextMenuRequested, this, &MusicListView::requestCustomContextMenu); connect(this, &MusicListView::doubleClicked, this, [ = ](const QModelIndex & index) { MetaPtr meta = d->model->meta(index); Q_EMIT playMedia(meta); }); // For debug // connect(selectionModel(), &QItemSelectionModel::selectionChanged, // this, [ = ](const QItemSelection & /*selected*/, const QItemSelection & deselected) { // if (!deselected.isEmpty()) { // qDebug() << "cancel" << deselected; // } // }); }
AnimationView::AnimationView( Project* project, QWidget *parent /*= 0 */ ) : QListView( parent ) { this->project = project; setFlow( QListView::LeftToRight ); setItemDelegate(new AnimationViewDelegate); setDragEnabled( true ); setAcceptDrops( true ); setDropIndicatorShown( true ); setDragDropMode( QAbstractItemView::DragDrop ); setDefaultDropAction( Qt::MoveAction ); setSelectionMode( ExtendedSelection ); }
TabTree::TabTree(QWidget *parent) : QTreeWidget(parent) { connect( this, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(onCurrentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)) ); setDragEnabled(true); setDragDropMode(QAbstractItemView::InternalMove); setDragDropOverwriteMode(false); setDefaultDropAction(Qt::CopyAction); // otherwise tab is lost if moved outside tree setFrameShape(QFrame::NoFrame); setHeaderHidden(true); setSelectionMode(QAbstractItemView::SingleSelection); verticalScrollBar()->installEventFilter(this); }
DeviceExplorerView::DeviceExplorerView(QWidget* parent) : QTreeView(parent), m_hasProxy(false) { setAllColumnsShowFocus(true); setSelectionBehavior(QAbstractItemView::SelectRows); setSelectionMode(QAbstractItemView::ExtendedSelection); //cf http://qt-project.org/doc/qt-5/qabstractitemview.html#SelectionBehavior-enum header()->setContextMenuPolicy(Qt::CustomContextMenu); //header will emit the signal customContextMenuRequested() connect(header(), SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(headerMenuRequested(const QPoint&))); //- Drag'n Drop. setDragEnabled(true); setAcceptDrops(true); setUniformRowHeights(true); //setDragDropMode(QAbstractItemView::InternalMove); //The view accepts move (not copy) operations only from itself. setDragDropMode(QAbstractItemView::DragDrop); setDropIndicatorShown(true); setDefaultDropAction(Qt::MoveAction); //default DefaultDropAction is CopyAction setDragDropOverwriteMode(false); /* - if setDragDropMode(QAbstractItemView::InternalMove); : it is impossible to have copyAction in model::dropMimeData(). -- if model::supportedDragActions & supportedDropActions() return only Copy, it is visually forbidden to drop (model::dropMimeData() is never called) -- if model::supportedDragActions & supportedDropActions() return Move|Copy, Action in model::dropMimeData() will always be a Move. - if setDragDropMode(QAbstractItemView::DragDrop); : we only have copyAction in model::dropMimeData(). [even if model::supportedDragActions & supportedDropActions() return Move|Copy ; even if setDragDropOverwriteMode(false or true) ] ==> setDefaultDropAction(Qt::MoveAction); is needed to have CopyAction */ QFile f(":/DeviceExplorer.qss"); if(f.open(QFile::ReadOnly)) setStyleSheet(f.readAll()); }
QgsLayerTreeView::QgsLayerTreeView( QWidget *parent ) : QTreeView( parent ) , mDefaultActions( nullptr ) , mMenuProvider( nullptr ) { setHeaderHidden( true ); setDragEnabled( true ); setAcceptDrops( true ); setDropIndicatorShown( true ); setEditTriggers( EditKeyPressed ); setExpandsOnDoubleClick( false ); // normally used for other actions setSelectionMode( ExtendedSelection ); setDefaultDropAction( Qt::MoveAction ); connect( this, SIGNAL( collapsed( QModelIndex ) ), this, SLOT( updateExpandedStateToNode( QModelIndex ) ) ); connect( this, SIGNAL( expanded( QModelIndex ) ), this, SLOT( updateExpandedStateToNode( QModelIndex ) ) ); }
DirectoryTree::DirectoryTree(QWidget *parent) : QTreeView(parent) { assert(NULL != parent); // model PkmPlugin *plugin = dynamic_cast<PkmPlugin*>(get_plugin().pointer()); assert(NULL != plugin); DirectoryTreeModel *model = new DirectoryTreeModel(plugin->get_data_source()->get_db(), parent); connect(this, SIGNAL(expanded(QModelIndex)), model, SLOT(on_expanded(QModelIndex))); connect(this, SIGNAL(collapsed(QModelIndex)), model, SLOT(on_collapsed(QModelIndex))); setModel(model); // actions init_actions(); // menus init_menus(); // 双击展开而非进入编辑模式 setExpandsOnDoubleClick(true); setAutoExpandDelay(600); // 拖拽时自动展开节点的延时(ms) setEditTriggers(EditKeyPressed); setMinimumWidth(140); // 隐藏首部 setHeaderHidden(true); // 拖拽相关 setSelectionMode(QAbstractItemView::SingleSelection); // 单选 setDragEnabled(true); // 允许"拖" setAcceptDrops(true); // 允许"放" setDropIndicatorShown(true); // ? setDragDropMode(QAbstractItemView::DragDrop); setDefaultDropAction(Qt::MoveAction); // signals connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(on_item_activated(QModelIndex))); // connect(this, SIGNAL(clicked(QModelIndex)), this, SLOT(on_item_activated(QModelIndex))); connect(selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(on_item_selected(QModelIndex,QModelIndex))); plugin->locate_directory.connect(this, &DirectoryTree::on_locate_directory); }
QgsColorSchemeList::QgsColorSchemeList( QWidget *parent , QgsColorScheme *scheme, const QString context, const QColor baseColor ) : QTreeView( parent ) , mScheme( scheme ) { mModel = new QgsColorSchemeModel( scheme, context, baseColor, this ); //for testing: //new ModelTest( mModel, this ); setModel( mModel ); mSwatchDelegate = new QgsColorSwatchDelegate( this ); setItemDelegateForColumn( 0, mSwatchDelegate ); setRootIsDecorated( false ); setSelectionMode( QAbstractItemView::ExtendedSelection ); setSelectionBehavior( QAbstractItemView::SelectRows ); setDragEnabled( true ); setAcceptDrops( true ); setDragDropMode( QTreeView::DragDrop ); setDropIndicatorShown( true ); setDefaultDropAction( Qt::MoveAction ); }
ConnectionList::ConnectionList(QWidget *parent = NULL) : QTreeView(parent) { this->setContextMenuPolicy ( Qt::CustomContextMenu ); setContentsMargins (1, 1, 1, 1); setDefaultDropAction ( Qt::IgnoreAction ); setCursor(Qt::ArrowCursor); setSortingEnabled(true); this->setItemsExpandable(false); this->setRootIsDecorated(false); connItemModel = new ConnItemModel(this); this->setModel(connItemModel); progressBarDlg = new ProgressBarDelegate(); this->setItemDelegate(progressBarDlg); connections = new CONN_LIST(); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(connItemClicked(const QPoint &))); connect(this, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(connItemDoubleClicked(const QModelIndex&))); searchThread = new SearchThread(this); connect(searchThread, SIGNAL(localConnFound(QString&)), this, SLOT(createLocalConnection(QString&))); }
GroupView::GroupView(Database* db, QWidget* parent) : QTreeView(parent) , m_model(new GroupModel(db, this)) , m_updatingExpanded(false) { QTreeView::setModel(m_model); setHeaderHidden(true); setUniformRowHeights(true); connect(this, SIGNAL(expanded(QModelIndex)), this, SLOT(expandedChanged(QModelIndex))); connect(this, SIGNAL(collapsed(QModelIndex)), this, SLOT(expandedChanged(QModelIndex))); connect(m_model, SIGNAL(rowsInserted(QModelIndex,int,int)), SLOT(syncExpandedState(QModelIndex,int,int))); connect(m_model, SIGNAL(modelReset()), SLOT(modelReset())); connect(selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), SLOT(emitGroupChanged())); modelReset(); setDragEnabled(true); viewport()->setAcceptDrops(true); setDropIndicatorShown(true); setDefaultDropAction(Qt::MoveAction); }
void LayerTreeSidebar::createForms() { QVBoxLayout *mainLayout = new QVBoxLayout(); mainLayout->setSpacing(0); mainLayout->setContentsMargins(0, 0, 0, 0); { auto view = new QTreeView(); if (d->uiController) view->setItemDelegate(new LayerModelViewDelegate(d->uiController, this)); view->setHeaderHidden(true); view->setSelectionMode(QAbstractItemView::ExtendedSelection); view->setDragDropMode(QAbstractItemView::DragDrop); view->setDefaultDropAction(Qt::MoveAction); view->setDropIndicatorShown(true); if (d->document) { view->setModel(d->document->layerScene()->itemModel()); view->setSelectionModel(d->document->layerScene()->itemSelectionModel()); connect(d->document->layerScene(), SIGNAL(thumbnailsUpdated(QPointSet)), view, SLOT(update())); } view->setContextMenuPolicy(Qt::CustomContextMenu); connect(view, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showViewContextMenu(QPoint))); view->installEventFilter(this); d->view = view; mainLayout->addWidget(view); } { auto lowerLayout = new QVBoxLayout(); lowerLayout->setSpacing(6); lowerLayout->setContentsMargins(6,6,6,6); { auto editor = new LayerPropertyEditor(d->document ? d->document->layerScene() : 0); lowerLayout->addWidget(editor); } // buttons { auto layout = new QHBoxLayout(); layout->setSpacing(0); auto addButton = new SimpleButton(":/icons/16x16/add.svg", QSize(16,16)); addButton->setMargins(4, 0, 4, 0); auto removeButton = new SimpleButton(":/icons/16x16/subtract.svg", QSize(16,16)); removeButton->setMargins(4, 0, 4, 0); auto miscButton = new SimpleButton(":/icons/16x16/menuDown.svg", QSize(16,16)); miscButton->setMargins(4, 0, 4, 0); if (d->uiController) { auto addMenu = new QMenu(this); addMenu->addAction(d->uiController->action(LayerUIController::ActionNewRaster)); addMenu->addAction(d->uiController->action(LayerUIController::ActionNewGroup)); addMenu->addAction(d->uiController->action(LayerUIController::ActionImport)); addButton->setMenu(addMenu); connect(removeButton, SIGNAL(pressed()), d->uiController, SLOT(removeLayers())); QMenu *miscMenu = new QMenu(this); miscMenu->addAction(d->uiController->action(LayerUIController::ActionMerge)); miscButton->setMenu(miscMenu); } layout->addWidget(addButton); layout->addWidget(removeButton); layout->addWidget(miscButton); layout->addStretch(1); lowerLayout->addLayout(layout); } mainLayout->addLayout(lowerLayout); } setLayout(mainLayout); }
int QAbstractItemView::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QAbstractScrollArea::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 39) qt_static_metacall(this, _c, _id, _a); _id -= 39; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< bool*>(_v) = hasAutoScroll(); break; case 1: *reinterpret_cast< int*>(_v) = autoScrollMargin(); break; case 2: *reinterpret_cast<int*>(_v) = QFlag(editTriggers()); break; case 3: *reinterpret_cast< bool*>(_v) = tabKeyNavigation(); break; case 4: *reinterpret_cast< bool*>(_v) = showDropIndicator(); break; case 5: *reinterpret_cast< bool*>(_v) = dragEnabled(); break; case 6: *reinterpret_cast< bool*>(_v) = dragDropOverwriteMode(); break; case 7: *reinterpret_cast< DragDropMode*>(_v) = dragDropMode(); break; case 8: *reinterpret_cast< Qt::DropAction*>(_v) = defaultDropAction(); break; case 9: *reinterpret_cast< bool*>(_v) = alternatingRowColors(); break; case 10: *reinterpret_cast< SelectionMode*>(_v) = selectionMode(); break; case 11: *reinterpret_cast< SelectionBehavior*>(_v) = selectionBehavior(); break; case 12: *reinterpret_cast< QSize*>(_v) = iconSize(); break; case 13: *reinterpret_cast< Qt::TextElideMode*>(_v) = textElideMode(); break; case 14: *reinterpret_cast< ScrollMode*>(_v) = verticalScrollMode(); break; case 15: *reinterpret_cast< ScrollMode*>(_v) = horizontalScrollMode(); break; } _id -= 16; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setAutoScroll(*reinterpret_cast< bool*>(_v)); break; case 1: setAutoScrollMargin(*reinterpret_cast< int*>(_v)); break; case 2: setEditTriggers(QFlag(*reinterpret_cast<int*>(_v))); break; case 3: setTabKeyNavigation(*reinterpret_cast< bool*>(_v)); break; case 4: setDropIndicatorShown(*reinterpret_cast< bool*>(_v)); break; case 5: setDragEnabled(*reinterpret_cast< bool*>(_v)); break; case 6: setDragDropOverwriteMode(*reinterpret_cast< bool*>(_v)); break; case 7: setDragDropMode(*reinterpret_cast< DragDropMode*>(_v)); break; case 8: setDefaultDropAction(*reinterpret_cast< Qt::DropAction*>(_v)); break; case 9: setAlternatingRowColors(*reinterpret_cast< bool*>(_v)); break; case 10: setSelectionMode(*reinterpret_cast< SelectionMode*>(_v)); break; case 11: setSelectionBehavior(*reinterpret_cast< SelectionBehavior*>(_v)); break; case 12: setIconSize(*reinterpret_cast< QSize*>(_v)); break; case 13: setTextElideMode(*reinterpret_cast< Qt::TextElideMode*>(_v)); break; case 14: setVerticalScrollMode(*reinterpret_cast< ScrollMode*>(_v)); break; case 15: setHorizontalScrollMode(*reinterpret_cast< ScrollMode*>(_v)); break; } _id -= 16; } else if (_c == QMetaObject::ResetProperty) { _id -= 16; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 16; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 16; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 16; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 16; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 16; } #endif // QT_NO_PROPERTIES return _id; }