1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
/*
SPDX-FileCopyrightText: 2008 Aleix Pol <aleixpol@gmail.com>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef KDEVPLATFORM_PROJECTITEMLINEEDIT_H
#define KDEVPLATFORM_PROJECTITEMLINEEDIT_H
#include <QLineEdit>
#include "projectexport.h"
namespace KDevelop {
class ProjectBaseItem;
class IProject;
}
class ProjectItemLineEditPrivate;
class KDEVPLATFORMPROJECT_EXPORT ProjectItemLineEdit : public QLineEdit
{
Q_OBJECT
public:
explicit ProjectItemLineEdit(QWidget* parent=nullptr);
~ProjectItemLineEdit() override;
/**
* Sets this lineedit to show the given @p path, eventually removing
* parts from the beginning if a base item is set
* @note This should be preferred over using setText()
*/
void setItemPath( const QStringList& path );
/**
* Generates a path from the content of the lineedit, including
* the base item if present
* @returns a path identifying the item selected in this lineedit
*/
QStringList itemPath() const;
/**
* Sets @p item as the base item for this lineedit, the user
* then doesn't need to specify the path leading to this item
* and can just start typing the name of one of the subitems
*/
void setBaseItem( KDevelop::ProjectBaseItem* item );
/**
* @returns the currently used base item
*/
KDevelop::ProjectBaseItem* baseItem() const;
KDevelop::ProjectBaseItem* currentItem() const;
void setSuggestion(KDevelop::IProject* project);
public Q_SLOTS:
bool selectItemDialog();
private Q_SLOTS:
void showCtxMenu(const QPoint& p);
private:
const QScopedPointer<class ProjectItemLineEditPrivate> d_ptr;
Q_DECLARE_PRIVATE(ProjectItemLineEdit)
};
#endif
|