81
89
QString ProjectItemCompleter::pathFromIndex(const QModelIndex& index) const
84
if(mModel->item(index)->folder())
92
if(mModel->itemFromIndex(index)->folder())
86
94
qDebug() << "path from index:" << index << removeProjectBasePath( mModel->pathFromIndex(index), mBase );
87
95
return KDevelop::joinWithEscaping(removeProjectBasePath( mModel->pathFromIndex(index), mBase ), sep, escape)+postfix;
144
152
setCompleter( m_completer );
145
153
setValidator( m_validator );
146
setClearButtonShown( true );
147
154
setClickMessage( i18n("Enter the path to an item from the projects tree" ) );
156
KAction* selectItemAction = new KAction(KIcon("folder-document"), i18n("Select..."), this);
157
connect(selectItemAction, SIGNAL(triggered()), SLOT(selectItemDialog()));
158
addAction(selectItemAction);
160
setContextMenuPolicy(Qt::CustomContextMenu);
161
connect(this, SIGNAL(customContextMenuRequested(QPoint)), SLOT(showCtxMenu(QPoint)));
164
void ProjectItemLineEdit::showCtxMenu(const QPoint& p)
166
QScopedPointer<QMenu> menu(createStandardContextMenu());
167
menu->addActions(actions());
168
menu->exec(mapToGlobal(p));
171
void ProjectItemLineEdit::selectItemDialog()
173
KDevelop::ProjectModel* model=KDevelop::ICore::self()->projectController()->projectModel();
175
QWidget* w=new QWidget;
176
w->setLayout(new QVBoxLayout(w));
177
QTreeView* view = new QTreeView(w);
178
ProjectProxyModel* proxymodel = new ProjectProxyModel(view);
179
proxymodel->setSourceModel(model);
180
view->header()->hide();
181
view->setModel(proxymodel);
182
view->setSelectionMode(QAbstractItemView::SingleSelection);
183
w->layout()->addWidget(new QLabel(i18n("Select the item you want to get the path from.")));
184
w->layout()->addWidget(view);
186
QScopedPointer<KDialog> dialog(new KDialog);
187
dialog->setButtons(KDialog::Ok | KDialog::Cancel);
188
dialog->setCaption(i18n("Select an item..."));
189
dialog->setMainWidget(w);
190
int res = dialog->exec();
192
if(res==KDialog::Accepted && view->selectionModel()->hasSelection()) {
193
QModelIndex idx=proxymodel->mapToSource(view->selectionModel()->selectedIndexes().first());
195
setText(KDevelop::joinWithEscaping(model->pathFromIndex(idx), sep, escape));
151
200
void ProjectItemLineEdit::setItemPath(const QStringList& list)