forked from qt-creator/qt-creator
MessageManger::printToOutputPane: Add more control over the popup
Change-Id: I40254c0d152bf1d94c74e2602e5bfb642fe933e1 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -43,6 +43,7 @@ MessageManager::MessageManager()
|
||||
: m_messageOutputWindow(0)
|
||||
{
|
||||
m_instance = this;
|
||||
qRegisterMetaType<Core::MessageManager::PrintToOutputPaneFlags>();
|
||||
}
|
||||
|
||||
MessageManager::~MessageManager()
|
||||
@@ -68,21 +69,33 @@ void MessageManager::showOutputPane()
|
||||
}
|
||||
|
||||
void MessageManager::printToOutputPane(const QString &text, bool bringToForeground)
|
||||
{
|
||||
printToOutputPane(text, bringToForeground ? ModeSwitch
|
||||
: Silent);
|
||||
}
|
||||
|
||||
void MessageManager::printToOutputPane(const QString &text, PrintToOutputPaneFlags flags)
|
||||
{
|
||||
if (!m_messageOutputWindow)
|
||||
return;
|
||||
if (bringToForeground)
|
||||
m_messageOutputWindow->popup(IOutputPane::ModeSwitch);
|
||||
if (flags & Flash) {
|
||||
m_messageOutputWindow->flash();
|
||||
} else if (flags & Silent) {
|
||||
// Do nothing
|
||||
} else {
|
||||
m_messageOutputWindow->popup(Core::IOutputPane::Flag(int(flags)));
|
||||
}
|
||||
|
||||
m_messageOutputWindow->append(text + QLatin1Char('\n'));
|
||||
}
|
||||
|
||||
void MessageManager::printToOutputPanePopup(const QString &text)
|
||||
{
|
||||
printToOutputPane(text, true);
|
||||
printToOutputPane(text, ModeSwitch);
|
||||
}
|
||||
|
||||
void MessageManager::printToOutputPane(const QString &text)
|
||||
{
|
||||
printToOutputPane(text, false);
|
||||
printToOutputPane(text, Silent);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,9 @@
|
||||
#define MESSAGEMANAGER_H
|
||||
|
||||
#include "core_global.h"
|
||||
#include "ioutputpane.h"
|
||||
#include <QMetaType>
|
||||
|
||||
#include <QObject>
|
||||
|
||||
namespace Core {
|
||||
@@ -52,11 +55,21 @@ public:
|
||||
static MessageManager *instance() { return m_instance; }
|
||||
|
||||
void showOutputPane();
|
||||
enum PrintToOutputPaneFlag {
|
||||
NoModeSwitch = Core::IOutputPane::NoModeSwitch,
|
||||
ModeSwitch = Core::IOutputPane::ModeSwitch,
|
||||
WithFocus = Core::IOutputPane::WithFocus,
|
||||
EnsureSizeHint = Core::IOutputPane::EnsureSizeHint,
|
||||
Silent = 256,
|
||||
Flash = 512 };
|
||||
|
||||
Q_DECLARE_FLAGS(PrintToOutputPaneFlags, PrintToOutputPaneFlag)
|
||||
|
||||
public slots:
|
||||
void printToOutputPane(const QString &text, bool bringToForeground);
|
||||
void printToOutputPanePopup(const QString &text); // pops up
|
||||
void printToOutputPane(const QString &text);
|
||||
void printToOutputPane(const QString &text, Core::MessageManager::PrintToOutputPaneFlags flags);
|
||||
|
||||
private:
|
||||
Internal::MessageOutputWindow *m_messageOutputWindow;
|
||||
@@ -66,4 +79,6 @@ private:
|
||||
|
||||
} // namespace Core
|
||||
|
||||
Q_DECLARE_METATYPE(Core::MessageManager::PrintToOutputPaneFlags)
|
||||
|
||||
#endif // MESSAGEMANAGER_H
|
||||
|
||||
Reference in New Issue
Block a user