forked from qt-creator/qt-creator
Merge branch '0.9.1-beta' of git@scm.dev.nokia.troll.no:creator/mainline into 0.9.1-beta
This commit is contained in:
@@ -814,21 +814,26 @@
|
|||||||
a pointer to some private data structure, you will see a list of children,
|
a pointer to some private data structure, you will see a list of children,
|
||||||
signals and slots.
|
signals and slots.
|
||||||
|
|
||||||
Similarily, instead of showing a bunch of pointers and ints,
|
Similarly, instead of displaying many pointers and integers, Qt Creator's
|
||||||
a QHash or QMap will display its contents in an orderly fashion,
|
debugger will display the contents of a QHash or QMap in an orderly manner.
|
||||||
a QFileInfo will expose e.g. access data, and the otherwise
|
Also, the debugger will display access data for QFileInfo and provide
|
||||||
"opaque" QVariant gives access to the "real" contents.
|
access to the "real" contents of QVariant.
|
||||||
|
|
||||||
The \gui{Locals and Watchers View} can be used to change the
|
The \gui{Locals and Watchers} view can be used to change the contents of
|
||||||
contents of variables of simple data types like int or float
|
variables of simple data types such as \c int or \c float when the program
|
||||||
while the program is stopped. To do so, click into the 'Value'
|
is stopped. To do so, click on the \gui Value column, modify the value
|
||||||
column, modify the value there, and hit \key{Return}.
|
with the inplace editor, and hit \key Enter (or \key Return).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\section2 Modules
|
\section2 Modules
|
||||||
|
|
||||||
The \gui{Modules View} is hidden by default and only useful in
|
By default, the \gui Modules view is hidden as it is only useful with the
|
||||||
|
experimental delayed debug information loading feature. You can turn this
|
||||||
|
feature on by selecting \gui{Fast Debugger Start}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The \gui Modules view is hidden by default and only useful in
|
||||||
connection with the experimental feature of delayed debug
|
connection with the experimental feature of delayed debug
|
||||||
information loading. This feature is accessible by selecting
|
information loading. This feature is accessible by selecting
|
||||||
\gui{Debug} and \gui{Fast Debugger Start}. When using the
|
\gui{Debug} and \gui{Fast Debugger Start}. When using the
|
||||||
@@ -849,29 +854,28 @@
|
|||||||
commands
|
commands
|
||||||
|
|
||||||
|
|
||||||
|
\section1 A Walkthrough for the Debugger Frontend
|
||||||
|
|
||||||
\section1 A short walk through the debugger frontend
|
In our \l{Writing a Simple Program with Qt Creator}{TextFinder} example, we
|
||||||
|
read a text file into a QString and then display it with a QTextEdit.
|
||||||
In our \l{Writing a Simple Program with Qt Creator}{TextFinder}
|
Suppose, you would like to look at this QString, \c{line}, and see what
|
||||||
example, we read a text file into a QString and then display it with a
|
data it actually stores. Follow the steps described below to place a
|
||||||
QTextEdit. Suppose, you would like to look at this QString, \c{line},
|
breakpoint and view the QString object's data.
|
||||||
and see what data it actually stores. Follow the steps described below
|
|
||||||
to place a break point and view the QString object's data.
|
|
||||||
|
|
||||||
\table
|
\table
|
||||||
\row
|
\row
|
||||||
\i \inlineimage qtcreator-setting-breakpoint1.png
|
\i \inlineimage qtcreator-setting-breakpoint1.png
|
||||||
\i \bold{Setting a Breakpoint}
|
\i \bold{Setting a Breakpoint}
|
||||||
|
|
||||||
First, we set a breakpoint on the line where we invoke
|
First, we set a breakpoint on the line where we invoke
|
||||||
\l{QTextEdit::}{setPlainText()} by clicking between the line number and
|
\l{QTextEdit::}{setPlainText()} by clicking between the line number and the
|
||||||
the window border. Then, select \gui{Start Debugging} from the
|
window border. Then, select \gui{Start Debugging} from the \gui{Debug} menu
|
||||||
\gui{Debug} menu or press \key{F5}.
|
or press \key{F5}.
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
Breakpoints are visible in the \gui{Breakpoints} view, shown below, in
|
Breakpoints are visible in the \gui{Breakpoints} view, shown below, in
|
||||||
\gui{Debug} mode. If you wish to remove a breakpoint, simply right
|
\gui{Debug} mode. If you wish to remove a breakpoint, simply right-click on
|
||||||
click on it and select \gui{Delete breakpoint} from the context menu.
|
it and select \gui{Delete breakpoint} from the context menu.
|
||||||
|
|
||||||
\image qtcreator-setting-breakpoint2.png
|
\image qtcreator-setting-breakpoint2.png
|
||||||
|
|
||||||
@@ -880,10 +884,10 @@
|
|||||||
|
|
||||||
\image qtcreator-watcher.png
|
\image qtcreator-watcher.png
|
||||||
|
|
||||||
Suppose we modify our \c{on_findButton_clicked()} function to move back
|
Suppose we modify our \c{on_findButton_clicked()} function to move back to
|
||||||
to the start of the document and continue searching once the cursor
|
the start of the document and continue searching once the cursor hits the
|
||||||
hits the end of the document. Adding this functionality can be done
|
end of the document. Adding this functionality can be done with the code
|
||||||
with the code snippet below:
|
snippet below:
|
||||||
|
|
||||||
\code
|
\code
|
||||||
void TextFinder::on_findButton_clicked()
|
void TextFinder::on_findButton_clicked()
|
||||||
@@ -915,9 +919,9 @@
|
|||||||
}
|
}
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
However, if you compile and run this code, the application will not
|
However, if you compile and run this code, the application will not work
|
||||||
work correctly due to a logic error. To locate this logic error, you
|
correctly due to a logic error. To locate this logic error, you can step
|
||||||
can step through the code using the following buttons:
|
through the code using the following buttons:
|
||||||
|
|
||||||
\image qtcreator-debugging-buttons.png
|
\image qtcreator-debugging-buttons.png
|
||||||
*/
|
*/
|
||||||
@@ -931,20 +935,20 @@
|
|||||||
|
|
||||||
\title Tips and Tricks
|
\title Tips and Tricks
|
||||||
|
|
||||||
\bold{Quick mode switch}
|
\bold{Quickly Switching between Modes}
|
||||||
|
|
||||||
You can quickly switch between modes by pressing \key{Ctrl+1},
|
You can quickly switch between modes by pressing \key{Ctrl+1},
|
||||||
\key{Ctrl+2}, etc.
|
\key{Ctrl+2}, and so on.
|
||||||
|
|
||||||
\bold{Other keyboard shortcuts}
|
\bold{Keyboard Shortcuts}
|
||||||
|
|
||||||
There are a lot of other \l{keyboard-shortcuts}{keyboard shortcuts}.
|
Qt Creator provides a lot of useful keyboard shortcuts. A complete list can
|
||||||
|
be found \l{Keyboard Shortcuts}{here}.
|
||||||
|
|
||||||
\bold{Command line}
|
\bold{Running Qt Creator from the Command Line}
|
||||||
|
|
||||||
You can start Qt Creator from a command prompt with an already
|
You can start Qt Creator from a command prompt with an existing session or
|
||||||
existing session or \c{.pro} file by giving the name as argument on the
|
\c{.pro} file by giving the name as argument on the command line.
|
||||||
command line.
|
|
||||||
|
|
||||||
\bold{Sidebar}
|
\bold{Sidebar}
|
||||||
|
|
||||||
|
|||||||
@@ -33,26 +33,65 @@
|
|||||||
|
|
||||||
#include "filenamevalidatinglineedit.h"
|
#include "filenamevalidatinglineedit.h"
|
||||||
|
|
||||||
|
#include <QtCore/QRegExp>
|
||||||
|
#include <QtCore/QDebug>
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
namespace Utils {
|
namespace Utils {
|
||||||
|
|
||||||
FileNameValidatingLineEdit::FileNameValidatingLineEdit(QWidget *parent) :
|
|
||||||
BaseValidatingLineEdit(parent)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Validate a file base name, check for forbidden characters/strings. */
|
|
||||||
|
|
||||||
static const char *notAllowedChars = "/?:&\\*\"|#%<> ";
|
|
||||||
static const char *notAllowedSubStrings[] = {".."};
|
|
||||||
|
|
||||||
// Naming a file like a device name will break on Windows, even if it is
|
// Naming a file like a device name will break on Windows, even if it is
|
||||||
// "com1.txt". Since we are cross-platform, we generally disallow such file
|
// "com1.txt". Since we are cross-platform, we generally disallow such file
|
||||||
// names.
|
// names.
|
||||||
static const char *notAllowedStrings[] = {"CON", "AUX", "PRN", "COM1", "COM2", "LPT1", "LPT2" };
|
static const QRegExp &windowsDeviceNoSubDirPattern()
|
||||||
|
{
|
||||||
|
static const QRegExp rc(QLatin1String("CON|AUX|PRN|COM1|COM2|LPT1|LPT2|NUL"),
|
||||||
|
Qt::CaseInsensitive);
|
||||||
|
Q_ASSERT(rc.isValid());
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
bool FileNameValidatingLineEdit::validateFileName(const QString &name, QString *errorMessage /* = 0*/)
|
static const QRegExp &windowsDeviceSubDirPattern()
|
||||||
|
{
|
||||||
|
static const QRegExp rc(QLatin1String(".*[/\\\\]CON|.*[/\\\\]AUX|.*[/\\\\]PRN|.*[/\\\\]COM1|.*[/\\\\]COM2|.*[/\\\\]LPT1|.*[/\\\\]LPT2|.*[/\\\\]NUL"),
|
||||||
|
Qt::CaseInsensitive);
|
||||||
|
Q_ASSERT(rc.isValid());
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------- FileNameValidatingLineEdit
|
||||||
|
FileNameValidatingLineEdit::FileNameValidatingLineEdit(QWidget *parent) :
|
||||||
|
BaseValidatingLineEdit(parent),
|
||||||
|
m_allowDirectories(false),
|
||||||
|
m_unused(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FileNameValidatingLineEdit::allowDirectories() const
|
||||||
|
{
|
||||||
|
return m_allowDirectories;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileNameValidatingLineEdit::setAllowDirectories(bool v)
|
||||||
|
{
|
||||||
|
m_allowDirectories = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Validate a file base name, check for forbidden characters/strings. */
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
# define SLASHES "/\\"
|
||||||
|
#else
|
||||||
|
# define SLASHES "/"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static const char *notAllowedCharsSubDir = "?:&*\"|#%<> ";
|
||||||
|
static const char *notAllowedCharsNoSubDir = "?:&*\"|#%<> "SLASHES;
|
||||||
|
|
||||||
|
static const char *notAllowedSubStrings[] = {".."};
|
||||||
|
|
||||||
|
bool FileNameValidatingLineEdit::validateFileName(const QString &name,
|
||||||
|
bool allowDirectories,
|
||||||
|
QString *errorMessage /* = 0*/)
|
||||||
{
|
{
|
||||||
if (name.isEmpty()) {
|
if (name.isEmpty()) {
|
||||||
if (errorMessage)
|
if (errorMessage)
|
||||||
@@ -60,6 +99,7 @@ bool FileNameValidatingLineEdit::validateFileName(const QString &name, QString *
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Characters
|
// Characters
|
||||||
|
const char *notAllowedChars = allowDirectories ? notAllowedCharsSubDir : notAllowedCharsNoSubDir;
|
||||||
for (const char *c = notAllowedChars; *c; c++)
|
for (const char *c = notAllowedChars; *c; c++)
|
||||||
if (name.contains(QLatin1Char(*c))) {
|
if (name.contains(QLatin1Char(*c))) {
|
||||||
if (errorMessage)
|
if (errorMessage)
|
||||||
@@ -76,22 +116,22 @@ bool FileNameValidatingLineEdit::validateFileName(const QString &name, QString *
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Strings
|
// Windows devices
|
||||||
const int notAllowedStringCount = sizeof(notAllowedStrings)/sizeof(const char *);
|
bool matchesWinDevice = windowsDeviceNoSubDirPattern().exactMatch(name);
|
||||||
for (int s = 0; s < notAllowedStringCount; s++) {
|
if (!matchesWinDevice && allowDirectories)
|
||||||
const QLatin1String notAllowedString(notAllowedStrings[s]);
|
matchesWinDevice = windowsDeviceSubDirPattern().exactMatch(name);
|
||||||
if (name == notAllowedString) {
|
if (matchesWinDevice) {
|
||||||
if (errorMessage)
|
if (errorMessage)
|
||||||
*errorMessage = tr("The name must not be '%1'.").arg(QString(notAllowedString));
|
*errorMessage = tr("The name must not match that of a MS Windows device. (%1).").
|
||||||
return false;
|
arg(windowsDeviceNoSubDirPattern().pattern().replace(QLatin1Char('|'), QLatin1Char(',')));
|
||||||
}
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FileNameValidatingLineEdit::validate(const QString &value, QString *errorMessage) const
|
bool FileNameValidatingLineEdit::validate(const QString &value, QString *errorMessage) const
|
||||||
{
|
{
|
||||||
return validateFileName(value, errorMessage);
|
return validateFileName(value, m_allowDirectories, errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Utils
|
} // namespace Utils
|
||||||
|
|||||||
@@ -43,14 +43,23 @@ class QWORKBENCH_UTILS_EXPORT FileNameValidatingLineEdit : public BaseValidating
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_DISABLE_COPY(FileNameValidatingLineEdit)
|
Q_DISABLE_COPY(FileNameValidatingLineEdit)
|
||||||
|
Q_PROPERTY(bool allowDirectories READ allowDirectories WRITE setAllowDirectories)
|
||||||
public:
|
public:
|
||||||
explicit FileNameValidatingLineEdit(QWidget *parent = 0);
|
explicit FileNameValidatingLineEdit(QWidget *parent = 0);
|
||||||
|
|
||||||
static bool validateFileName(const QString &name, QString *errorMessage /* = 0*/);
|
static bool validateFileName(const QString &name,
|
||||||
|
bool allowDirectories = false,
|
||||||
|
QString *errorMessage = 0);
|
||||||
|
|
||||||
|
bool allowDirectories() const;
|
||||||
|
void setAllowDirectories(bool v);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool validate(const QString &value, QString *errorMessage) const;
|
virtual bool validate(const QString &value, QString *errorMessage) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_allowDirectories;
|
||||||
|
void *m_unused;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Utils
|
} // namespace Utils
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ void FileWizardPage::slotActivated()
|
|||||||
|
|
||||||
bool FileWizardPage::validateBaseName(const QString &name, QString *errorMessage /* = 0*/)
|
bool FileWizardPage::validateBaseName(const QString &name, QString *errorMessage /* = 0*/)
|
||||||
{
|
{
|
||||||
return FileNameValidatingLineEdit::validateFileName(name, errorMessage);
|
return FileNameValidatingLineEdit::validateFileName(name, false, errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Utils
|
} // namespace Utils
|
||||||
|
|||||||
@@ -346,6 +346,21 @@ void NewClassWidget::setFormExtension(const QString &e)
|
|||||||
m_d->m_formExtension = fixSuffix(e);
|
m_d->m_formExtension = fixSuffix(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NewClassWidget::allowDirectories() const
|
||||||
|
{
|
||||||
|
return m_d->m_ui.headerFileLineEdit->allowDirectories();
|
||||||
|
}
|
||||||
|
|
||||||
|
void NewClassWidget::setAllowDirectories(bool v)
|
||||||
|
{
|
||||||
|
// We keep all in sync
|
||||||
|
if (allowDirectories() != v) {
|
||||||
|
m_d->m_ui.sourceFileLineEdit->setAllowDirectories(v);
|
||||||
|
m_d->m_ui.headerFileLineEdit->setAllowDirectories(v);
|
||||||
|
m_d->m_ui.formFileLineEdit->setAllowDirectories(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void NewClassWidget::slotValidChanged()
|
void NewClassWidget::slotValidChanged()
|
||||||
{
|
{
|
||||||
const bool newValid = isValid();
|
const bool newValid = isValid();
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ class QWORKBENCH_UTILS_EXPORT NewClassWidget : public QWidget
|
|||||||
Q_PROPERTY(QString formExtension READ formExtension WRITE setFormExtension DESIGNABLE true)
|
Q_PROPERTY(QString formExtension READ formExtension WRITE setFormExtension DESIGNABLE true)
|
||||||
Q_PROPERTY(bool formInputCheckable READ formInputCheckable WRITE setFormInputCheckable DESIGNABLE true)
|
Q_PROPERTY(bool formInputCheckable READ formInputCheckable WRITE setFormInputCheckable DESIGNABLE true)
|
||||||
Q_PROPERTY(bool formInputChecked READ formInputChecked WRITE setFormInputChecked DESIGNABLE true)
|
Q_PROPERTY(bool formInputChecked READ formInputChecked WRITE setFormInputChecked DESIGNABLE true)
|
||||||
|
Q_PROPERTY(bool allowDirectories READ allowDirectories WRITE setAllowDirectories)
|
||||||
// Utility "USER" property for wizards containing file names.
|
// Utility "USER" property for wizards containing file names.
|
||||||
Q_PROPERTY(QStringList files READ files DESIGNABLE false USER true)
|
Q_PROPERTY(QStringList files READ files DESIGNABLE false USER true)
|
||||||
public:
|
public:
|
||||||
@@ -97,7 +98,7 @@ public:
|
|||||||
QString sourceExtension() const;
|
QString sourceExtension() const;
|
||||||
QString headerExtension() const;
|
QString headerExtension() const;
|
||||||
QString formExtension() const;
|
QString formExtension() const;
|
||||||
|
bool allowDirectories() const;
|
||||||
|
|
||||||
bool isValid(QString *error = 0) const;
|
bool isValid(QString *error = 0) const;
|
||||||
|
|
||||||
@@ -125,6 +126,7 @@ public slots:
|
|||||||
void setSourceExtension(const QString &e);
|
void setSourceExtension(const QString &e);
|
||||||
void setHeaderExtension(const QString &e);
|
void setHeaderExtension(const QString &e);
|
||||||
void setFormExtension(const QString &e);
|
void setFormExtension(const QString &e);
|
||||||
|
void setAllowDirectories(bool v);
|
||||||
|
|
||||||
/* Suggest a class name from the base class by stripping the leading 'Q'
|
/* Suggest a class name from the base class by stripping the leading 'Q'
|
||||||
* character. This will happen automagically if the base class combo
|
* character. This will happen automagically if the base class combo
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ ProjectNameValidatingLineEdit::ProjectNameValidatingLineEdit(QWidget *parent)
|
|||||||
bool ProjectNameValidatingLineEdit::validateProjectName(const QString &name, QString *errorMessage /* = 0*/)
|
bool ProjectNameValidatingLineEdit::validateProjectName(const QString &name, QString *errorMessage /* = 0*/)
|
||||||
{
|
{
|
||||||
// Validation is file name + checking for dots
|
// Validation is file name + checking for dots
|
||||||
if (!FileNameValidatingLineEdit::validateFileName(name, errorMessage))
|
if (!FileNameValidatingLineEdit::validateFileName(name, false, errorMessage))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// We don't want dots in the directory name for some legacy Windows
|
// We don't want dots in the directory name for some legacy Windows
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ ClassNamePage::ClassNamePage(const QString &sourceSuffix,
|
|||||||
m_newClassWidget->setBaseClassEditable(true);
|
m_newClassWidget->setBaseClassEditable(true);
|
||||||
m_newClassWidget->setFormInputVisible(false);
|
m_newClassWidget->setFormInputVisible(false);
|
||||||
m_newClassWidget->setNamespacesEnabled(true);
|
m_newClassWidget->setNamespacesEnabled(true);
|
||||||
|
m_newClassWidget->setAllowDirectories(true);
|
||||||
|
|
||||||
connect(m_newClassWidget, SIGNAL(validChanged()),
|
connect(m_newClassWidget, SIGNAL(validChanged()),
|
||||||
this, SLOT(slotValidChanged()));
|
this, SLOT(slotValidChanged()));
|
||||||
|
|||||||
@@ -40,13 +40,13 @@ using namespace CPlusPlus;
|
|||||||
using namespace CppTools::Internal;
|
using namespace CppTools::Internal;
|
||||||
|
|
||||||
SearchSymbols::SearchSymbols():
|
SearchSymbols::SearchSymbols():
|
||||||
symbolsToSearchFor(ClassesMethodsFunctionsAndEnums)
|
symbolsToSearchFor(Classes | Functions | Enums)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void SearchSymbols::setSymbolsToSearchFor(SymbolType type)
|
void SearchSymbols::setSymbolsToSearchFor(SymbolTypes types)
|
||||||
{
|
{
|
||||||
symbolsToSearchFor = type;
|
symbolsToSearchFor = types;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ModelItemInfo> SearchSymbols::operator()(Document::Ptr doc, const QString &scope)
|
QList<ModelItemInfo> SearchSymbols::operator()(Document::Ptr doc, const QString &scope)
|
||||||
@@ -69,7 +69,7 @@ QString SearchSymbols::switchScope(const QString &scope)
|
|||||||
|
|
||||||
bool SearchSymbols::visit(Enum *symbol)
|
bool SearchSymbols::visit(Enum *symbol)
|
||||||
{
|
{
|
||||||
if (symbolsToSearchFor != ClassesMethodsFunctionsAndEnums)
|
if (!(symbolsToSearchFor & Enums))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
QString name = symbolName(symbol);
|
QString name = symbolName(symbol);
|
||||||
@@ -89,7 +89,7 @@ bool SearchSymbols::visit(Enum *symbol)
|
|||||||
|
|
||||||
bool SearchSymbols::visit(Function *symbol)
|
bool SearchSymbols::visit(Function *symbol)
|
||||||
{
|
{
|
||||||
if (symbolsToSearchFor != ClassesMethodsFunctionsAndEnums)
|
if (!(symbolsToSearchFor & Functions))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
QString name = symbolName(symbol);
|
QString name = symbolName(symbol);
|
||||||
@@ -131,6 +131,9 @@ bool SearchSymbols::visit(Declaration *symbol)
|
|||||||
|
|
||||||
bool SearchSymbols::visit(Class *symbol)
|
bool SearchSymbols::visit(Class *symbol)
|
||||||
{
|
{
|
||||||
|
if (!(symbolsToSearchFor & Classes))
|
||||||
|
return false;
|
||||||
|
|
||||||
QString name = symbolName(symbol);
|
QString name = symbolName(symbol);
|
||||||
QString previousScope = switchScope(name);
|
QString previousScope = switchScope(name);
|
||||||
QIcon icon = icons.iconForSymbol(symbol);
|
QIcon icon = icons.iconForSymbol(symbol);
|
||||||
|
|||||||
@@ -80,15 +80,16 @@ class SearchSymbols: public std::unary_function<CPlusPlus::Document::Ptr, QList<
|
|||||||
protected CPlusPlus::SymbolVisitor
|
protected CPlusPlus::SymbolVisitor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// TODO: Probably should use QFlags
|
|
||||||
enum SymbolType {
|
enum SymbolType {
|
||||||
Classes,
|
Classes = 0x1,
|
||||||
ClassesMethodsFunctionsAndEnums
|
Functions = 0x2,
|
||||||
|
Enums = 0x4
|
||||||
};
|
};
|
||||||
|
Q_DECLARE_FLAGS(SymbolTypes, SymbolType)
|
||||||
|
|
||||||
SearchSymbols();
|
SearchSymbols();
|
||||||
|
|
||||||
void setSymbolsToSearchFor(SymbolType type);
|
void setSymbolsToSearchFor(SymbolTypes types);
|
||||||
|
|
||||||
QList<ModelItemInfo> operator()(CPlusPlus::Document::Ptr doc)
|
QList<ModelItemInfo> operator()(CPlusPlus::Document::Ptr doc)
|
||||||
{ return operator()(doc, QString()); }
|
{ return operator()(doc, QString()); }
|
||||||
@@ -117,9 +118,11 @@ private:
|
|||||||
CPlusPlus::Overview overview;
|
CPlusPlus::Overview overview;
|
||||||
CPlusPlus::Icons icons;
|
CPlusPlus::Icons icons;
|
||||||
QList<ModelItemInfo> items;
|
QList<ModelItemInfo> items;
|
||||||
SymbolType symbolsToSearchFor;
|
SymbolTypes symbolsToSearchFor;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Q_DECLARE_OPERATORS_FOR_FLAGS(SearchSymbols::SymbolTypes)
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace CppTools
|
} // namespace CppTools
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ FormClassWizardPage::FormClassWizardPage(QWidget * parent) :
|
|||||||
|
|
||||||
m_ui->newClassWidget->setBaseClassInputVisible(false);
|
m_ui->newClassWidget->setBaseClassInputVisible(false);
|
||||||
m_ui->newClassWidget->setNamespacesEnabled(true);
|
m_ui->newClassWidget->setNamespacesEnabled(true);
|
||||||
|
m_ui->newClassWidget->setAllowDirectories(true);
|
||||||
|
|
||||||
connect(m_ui->newClassWidget, SIGNAL(validChanged()), this, SLOT(slotValidChanged()));
|
connect(m_ui->newClassWidget, SIGNAL(validChanged()), this, SLOT(slotValidChanged()));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user