forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.10'
Change-Id: I3c62cf597e33e9978116944a64cdfb600eb3e24d
This commit is contained in:
@@ -276,7 +276,7 @@ void CorePlugin::addToPathChooserContextMenu(Utils::PathChooser *pathChooser, QM
|
|||||||
});
|
});
|
||||||
menu->insertAction(firstAction, showInGraphicalShell);
|
menu->insertAction(firstAction, showInGraphicalShell);
|
||||||
|
|
||||||
auto *showInTerminal = new QAction(Core::FileUtils::msgTerminalAction(), menu);
|
auto *showInTerminal = new QAction(Core::FileUtils::msgTerminalHereAction(), menu);
|
||||||
connect(showInTerminal, &QAction::triggered, pathChooser, [pathChooser]() {
|
connect(showInTerminal, &QAction::triggered, pathChooser, [pathChooser]() {
|
||||||
Core::FileUtils::openTerminal(pathChooser->path());
|
Core::FileUtils::openTerminal(pathChooser->path());
|
||||||
});
|
});
|
||||||
|
@@ -214,7 +214,7 @@ EditorManagerPrivate::EditorManagerPrivate(QObject *parent) :
|
|||||||
m_closeOtherDocumentsContextAction(new QAction(EditorManager::tr("Close Others"), this)),
|
m_closeOtherDocumentsContextAction(new QAction(EditorManager::tr("Close Others"), this)),
|
||||||
m_closeAllEditorsExceptVisibleContextAction(new QAction(EditorManager::tr("Close All Except Visible"), this)),
|
m_closeAllEditorsExceptVisibleContextAction(new QAction(EditorManager::tr("Close All Except Visible"), this)),
|
||||||
m_openGraphicalShellAction(new QAction(FileUtils::msgGraphicalShellAction(), this)),
|
m_openGraphicalShellAction(new QAction(FileUtils::msgGraphicalShellAction(), this)),
|
||||||
m_openTerminalAction(new QAction(FileUtils::msgTerminalAction(), this)),
|
m_openTerminalAction(new QAction(FileUtils::msgTerminalHereAction(), this)),
|
||||||
m_findInDirectoryAction(new QAction(FileUtils::msgFindInDirectory(), this)),
|
m_findInDirectoryAction(new QAction(FileUtils::msgFindInDirectory(), this)),
|
||||||
m_filePropertiesAction(new QAction(tr("Properties..."), this)),
|
m_filePropertiesAction(new QAction(tr("Properties..."), this)),
|
||||||
m_pinAction(new QAction(tr("Pin"), this))
|
m_pinAction(new QAction(tr("Pin"), this))
|
||||||
|
@@ -135,13 +135,20 @@ QString FileUtils::msgGraphicalShellAction()
|
|||||||
return QApplication::translate("Core::Internal", "Show Containing Folder");
|
return QApplication::translate("Core::Internal", "Show Containing Folder");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FileUtils::msgTerminalAction()
|
QString FileUtils::msgTerminalHereAction()
|
||||||
{
|
{
|
||||||
if (HostOsInfo::isWindowsHost())
|
if (HostOsInfo::isWindowsHost())
|
||||||
return QApplication::translate("Core::Internal", "Open Command Prompt Here");
|
return QApplication::translate("Core::Internal", "Open Command Prompt Here");
|
||||||
return QApplication::translate("Core::Internal", "Open Terminal Here");
|
return QApplication::translate("Core::Internal", "Open Terminal Here");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString FileUtils::msgTerminalWithAction()
|
||||||
|
{
|
||||||
|
if (HostOsInfo::isWindowsHost())
|
||||||
|
return QApplication::translate("Core::Internal", "Open Command Prompt With");
|
||||||
|
return QApplication::translate("Core::Internal", "Open Terminal With");
|
||||||
|
}
|
||||||
|
|
||||||
void FileUtils::removeFile(const QString &filePath, bool deleteFromFS)
|
void FileUtils::removeFile(const QString &filePath, bool deleteFromFS)
|
||||||
{
|
{
|
||||||
// remove from version control
|
// remove from version control
|
||||||
|
@@ -44,7 +44,8 @@ struct CORE_EXPORT FileUtils
|
|||||||
static QString msgFindInDirectory();
|
static QString msgFindInDirectory();
|
||||||
// Platform-dependent action descriptions
|
// Platform-dependent action descriptions
|
||||||
static QString msgGraphicalShellAction();
|
static QString msgGraphicalShellAction();
|
||||||
static QString msgTerminalAction();
|
static QString msgTerminalHereAction();
|
||||||
|
static QString msgTerminalWithAction();
|
||||||
// File operations aware of version control and file system case-insensitiveness
|
// File operations aware of version control and file system case-insensitiveness
|
||||||
static void removeFile(const QString &filePath, bool deleteFromFS);
|
static void removeFile(const QString &filePath, bool deleteFromFS);
|
||||||
static bool renameFile(const QString &from, const QString &to);
|
static bool renameFile(const QString &from, const QString &to);
|
||||||
|
@@ -68,7 +68,7 @@ QWidget *SystemSettings::widget()
|
|||||||
m_widget = new QWidget;
|
m_widget = new QWidget;
|
||||||
m_page->setupUi(m_widget);
|
m_page->setupUi(m_widget);
|
||||||
m_page->terminalOpenArgs->setToolTip(
|
m_page->terminalOpenArgs->setToolTip(
|
||||||
tr("Command line arguments used for \"%1\".").arg(FileUtils::msgTerminalAction()));
|
tr("Command line arguments used for \"%1\".").arg(FileUtils::msgTerminalHereAction()));
|
||||||
|
|
||||||
m_page->reloadBehavior->setCurrentIndex(EditorManager::reloadSetting());
|
m_page->reloadBehavior->setCurrentIndex(EditorManager::reloadSetting());
|
||||||
if (HostOsInfo::isAnyUnixHost()) {
|
if (HostOsInfo::isAnyUnixHost()) {
|
||||||
|
@@ -199,9 +199,7 @@ StartApplicationDialog::StartApplicationDialog(QWidget *parent)
|
|||||||
setWindowTitle(tr("Start Debugger"));
|
setWindowTitle(tr("Start Debugger"));
|
||||||
|
|
||||||
d->kitChooser = new KitChooser(this);
|
d->kitChooser = new KitChooser(this);
|
||||||
d->kitChooser->setKitPredicate([](const Kit *k) {
|
d->kitChooser->setShowIcons(true);
|
||||||
return !DebuggerKitAspect::configurationErrors(k);
|
|
||||||
});
|
|
||||||
d->kitChooser->populate();
|
d->kitChooser->populate();
|
||||||
|
|
||||||
d->serverPortLabel = new QLabel(tr("Server port:"), this);
|
d->serverPortLabel = new QLabel(tr("Server port:"), this);
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#include <utils/optional.h>
|
#include <utils/optional.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/stringutils.h>
|
#include <utils/stringutils.h>
|
||||||
|
#include <utils/utilsicons.h>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
@@ -400,6 +401,20 @@ QIcon Kit::icon() const
|
|||||||
return d->m_cachedIcon;
|
return d->m_cachedIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QIcon Kit::displayIcon() const
|
||||||
|
{
|
||||||
|
QIcon result = icon();
|
||||||
|
if (hasWarning()) {
|
||||||
|
static const QIcon warningIcon(Utils::Icons::WARNING.icon());
|
||||||
|
result = warningIcon;
|
||||||
|
}
|
||||||
|
if (!isValid()) {
|
||||||
|
static const QIcon errorIcon(Utils::Icons::CRITICAL.icon());
|
||||||
|
result = errorIcon;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
FilePath Kit::iconPath() const
|
FilePath Kit::iconPath() const
|
||||||
{
|
{
|
||||||
return d->m_iconPath;
|
return d->m_iconPath;
|
||||||
|
@@ -96,7 +96,8 @@ public:
|
|||||||
// all other aspects are equal.
|
// all other aspects are equal.
|
||||||
int weight() const;
|
int weight() const;
|
||||||
|
|
||||||
QIcon icon() const;
|
QIcon icon() const; // Raw device icon, independent of warning or error.
|
||||||
|
QIcon displayIcon() const; // Error or warning or device icon.
|
||||||
Utils::FilePath iconPath() const;
|
Utils::FilePath iconPath() const;
|
||||||
void setIconPath(const Utils::FilePath &path);
|
void setIconPath(const Utils::FilePath &path);
|
||||||
void setDeviceTypeForIcon(Core::Id deviceType);
|
void setDeviceTypeForIcon(Core::Id deviceType);
|
||||||
|
@@ -72,6 +72,11 @@ void KitChooser::onManageButtonClicked()
|
|||||||
Core::ICore::showOptionsDialog(Constants::KITS_SETTINGS_PAGE_ID, this);
|
Core::ICore::showOptionsDialog(Constants::KITS_SETTINGS_PAGE_ID, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KitChooser::setShowIcons(bool showIcons)
|
||||||
|
{
|
||||||
|
m_showIcons = showIcons;
|
||||||
|
}
|
||||||
|
|
||||||
void KitChooser::onCurrentIndexChanged()
|
void KitChooser::onCurrentIndexChanged()
|
||||||
{
|
{
|
||||||
const Id id = Id::fromSetting(m_chooser->currentData());
|
const Id id = Id::fromSetting(m_chooser->currentData());
|
||||||
@@ -127,9 +132,12 @@ void KitChooser::populate()
|
|||||||
foreach (Kit *kit, KitManager::sortKits(KitManager::kits())) {
|
foreach (Kit *kit, KitManager::sortKits(KitManager::kits())) {
|
||||||
if (m_kitPredicate(kit)) {
|
if (m_kitPredicate(kit)) {
|
||||||
m_chooser->addItem(kitText(kit), kit->id().toSetting());
|
m_chooser->addItem(kitText(kit), kit->id().toSetting());
|
||||||
m_chooser->setItemData(m_chooser->count() - 1, kitToolTip(kit), Qt::ToolTipRole);
|
const int pos = m_chooser->count() - 1;
|
||||||
|
m_chooser->setItemData(pos, kitToolTip(kit), Qt::ToolTipRole);
|
||||||
|
if (m_showIcons)
|
||||||
|
m_chooser->setItemData(pos, kit->displayIcon(), Qt::DecorationRole);
|
||||||
if (!didActivate && kit->id() == lastKit) {
|
if (!didActivate && kit->id() == lastKit) {
|
||||||
m_chooser->setCurrentIndex(m_chooser->count() - 1);
|
m_chooser->setCurrentIndex(pos);
|
||||||
didActivate = true;
|
didActivate = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -54,6 +54,7 @@ public:
|
|||||||
Core::Id currentKitId() const;
|
Core::Id currentKitId() const;
|
||||||
|
|
||||||
void setKitPredicate(const Kit::Predicate &predicate);
|
void setKitPredicate(const Kit::Predicate &predicate);
|
||||||
|
void setShowIcons(bool showIcons);
|
||||||
|
|
||||||
Kit *currentKit() const;
|
Kit *currentKit() const;
|
||||||
bool hasStartupKit() const { return m_hasStartupKit; }
|
bool hasStartupKit() const { return m_hasStartupKit; }
|
||||||
@@ -78,6 +79,7 @@ private:
|
|||||||
QComboBox *m_chooser;
|
QComboBox *m_chooser;
|
||||||
QPushButton *m_manageButton;
|
QPushButton *m_manageButton;
|
||||||
bool m_hasStartupKit = false;
|
bool m_hasStartupKit = false;
|
||||||
|
bool m_showIcons = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#include <utils/macroexpander.h>
|
#include <utils/macroexpander.h>
|
||||||
#include <utils/pathchooser.h>
|
#include <utils/pathchooser.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
#include <utils/utilsicons.h>
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
@@ -155,9 +156,15 @@ QString KitManagerConfigWidget::displayName() const
|
|||||||
return m_cachedDisplayName;
|
return m_cachedDisplayName;
|
||||||
}
|
}
|
||||||
|
|
||||||
QIcon KitManagerConfigWidget::icon() const
|
QIcon KitManagerConfigWidget::displayIcon() const
|
||||||
{
|
{
|
||||||
return m_modifiedKit->icon();
|
// Special case: Extra warning if there are no errors but name is not unique.
|
||||||
|
if (m_modifiedKit->isValid() && !m_hasUniqueName) {
|
||||||
|
static const QIcon warningIcon(Utils::Icons::WARNING.icon());
|
||||||
|
return warningIcon;
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_modifiedKit->displayIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
void KitManagerConfigWidget::apply()
|
void KitManagerConfigWidget::apply()
|
||||||
@@ -199,16 +206,6 @@ bool KitManagerConfigWidget::isDirty() const
|
|||||||
|| m_isDefaultKit != (KitManager::defaultKit() == m_kit);
|
|| m_isDefaultKit != (KitManager::defaultKit() == m_kit);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KitManagerConfigWidget::isValid() const
|
|
||||||
{
|
|
||||||
return m_modifiedKit->isValid();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool KitManagerConfigWidget::hasWarning() const
|
|
||||||
{
|
|
||||||
return m_modifiedKit->hasWarning() || !m_hasUniqueName;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString KitManagerConfigWidget::validityMessage() const
|
QString KitManagerConfigWidget::validityMessage() const
|
||||||
{
|
{
|
||||||
Tasks tmp;
|
Tasks tmp;
|
||||||
|
@@ -52,13 +52,11 @@ public:
|
|||||||
~KitManagerConfigWidget() override;
|
~KitManagerConfigWidget() override;
|
||||||
|
|
||||||
QString displayName() const;
|
QString displayName() const;
|
||||||
QIcon icon() const;
|
QIcon displayIcon() const;
|
||||||
|
|
||||||
void apply();
|
void apply();
|
||||||
void discard();
|
void discard();
|
||||||
bool isDirty() const;
|
bool isDirty() const;
|
||||||
bool isValid() const;
|
|
||||||
bool hasWarning() const;
|
|
||||||
QString validityMessage() const;
|
QString validityMessage() const;
|
||||||
void addAspectToWorkingCopy(KitAspect *aspect);
|
void addAspectToWorkingCopy(KitAspect *aspect);
|
||||||
void makeStickySubWidgetsReadOnly();
|
void makeStickySubWidgetsReadOnly();
|
||||||
|
@@ -85,15 +85,7 @@ public:
|
|||||||
return baseName;
|
return baseName;
|
||||||
}
|
}
|
||||||
if (role == Qt::DecorationRole) {
|
if (role == Qt::DecorationRole) {
|
||||||
if (!widget->isValid()) {
|
return widget->displayIcon();
|
||||||
static const QIcon errorIcon(Utils::Icons::CRITICAL.icon());
|
|
||||||
return errorIcon;
|
|
||||||
}
|
|
||||||
if (widget->hasWarning()) {
|
|
||||||
static const QIcon warningIcon(Utils::Icons::WARNING.icon());
|
|
||||||
return warningIcon;
|
|
||||||
}
|
|
||||||
return widget->icon();
|
|
||||||
}
|
}
|
||||||
if (role == Qt::ToolTipRole) {
|
if (role == Qt::ToolTipRole) {
|
||||||
return widget->validityMessage();
|
return widget->validityMessage();
|
||||||
|
@@ -836,13 +836,11 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
|||||||
mfileContextMenu->appendGroup(Constants::G_PROJECT_TREE);
|
mfileContextMenu->appendGroup(Constants::G_PROJECT_TREE);
|
||||||
|
|
||||||
// Open Terminal submenu
|
// Open Terminal submenu
|
||||||
#if !defined(Q_OS_UNIX) || QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
|
|
||||||
ActionContainer * const openTerminal =
|
ActionContainer * const openTerminal =
|
||||||
ActionManager::createMenu(ProjectExplorer::Constants::M_OPENTERMINALCONTEXT);
|
ActionManager::createMenu(ProjectExplorer::Constants::M_OPENTERMINALCONTEXT);
|
||||||
openTerminal->setOnAllDisabledBehavior(ActionContainer::Show);
|
openTerminal->setOnAllDisabledBehavior(ActionContainer::Show);
|
||||||
dd->m_openTerminalMenu = openTerminal->menu();
|
dd->m_openTerminalMenu = openTerminal->menu();
|
||||||
dd->m_openTerminalMenu->setTitle(FileUtils::msgTerminalAction());
|
dd->m_openTerminalMenu->setTitle(FileUtils::msgTerminalWithAction());
|
||||||
#endif
|
|
||||||
|
|
||||||
// "open with" submenu
|
// "open with" submenu
|
||||||
ActionContainer * const openWith =
|
ActionContainer * const openWith =
|
||||||
@@ -910,23 +908,16 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
|||||||
mfileContextMenu->addAction(cmd, Constants::G_FILE_OPEN);
|
mfileContextMenu->addAction(cmd, Constants::G_FILE_OPEN);
|
||||||
mfolderContextMenu->addAction(cmd, Constants::G_FOLDER_FILES);
|
mfolderContextMenu->addAction(cmd, Constants::G_FOLDER_FILES);
|
||||||
|
|
||||||
#if !defined(Q_OS_UNIX) || QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
|
|
||||||
// Open Terminal Here menu
|
// Open Terminal Here menu
|
||||||
mfileContextMenu->addMenu(openTerminal, Constants::G_FILE_OPEN);
|
dd->m_openTerminalHere = new QAction(FileUtils::msgTerminalHereAction(), this);
|
||||||
mfolderContextMenu->addMenu(openTerminal, Constants::G_FOLDER_FILES);
|
|
||||||
|
|
||||||
dd->m_openTerminalHere = new QAction(tr("System Environment"), this);
|
|
||||||
cmd = ActionManager::registerAction(dd->m_openTerminalHere, Constants::OPENTERMINALHERE,
|
|
||||||
projecTreeContext);
|
|
||||||
dd->m_openTerminalMenu->addAction(dd->m_openTerminalHere);
|
|
||||||
#else
|
|
||||||
dd->m_openTerminalHere = new QAction(FileUtils::msgTerminalAction(), this);
|
|
||||||
cmd = ActionManager::registerAction(dd->m_openTerminalHere, Constants::OPENTERMINALHERE,
|
cmd = ActionManager::registerAction(dd->m_openTerminalHere, Constants::OPENTERMINALHERE,
|
||||||
projecTreeContext);
|
projecTreeContext);
|
||||||
|
|
||||||
mfileContextMenu->addAction(cmd, Constants::G_FILE_OPEN);
|
mfileContextMenu->addAction(cmd, Constants::G_FILE_OPEN);
|
||||||
mfolderContextMenu->addAction(cmd, Constants::G_FOLDER_FILES);
|
mfolderContextMenu->addAction(cmd, Constants::G_FOLDER_FILES);
|
||||||
#endif
|
|
||||||
|
mfileContextMenu->addMenu(openTerminal, Constants::G_FILE_OPEN);
|
||||||
|
mfolderContextMenu->addMenu(openTerminal, Constants::G_FOLDER_FILES);
|
||||||
|
|
||||||
dd->m_openTerminalHereBuildEnv = new QAction(tr("Build Environment"), this);
|
dd->m_openTerminalHereBuildEnv = new QAction(tr("Build Environment"), this);
|
||||||
dd->m_openTerminalHereRunEnv = new QAction(tr("Run Environment"), this);
|
dd->m_openTerminalHereRunEnv = new QAction(tr("Run Environment"), this);
|
||||||
|
Reference in New Issue
Block a user