ui: statusbar

statusbar added, listen to status- , error-  and parsingfinishedmessages
This commit is contained in:
Andreas Stallinger
2014-11-24 16:35:46 +01:00
parent 048fcb28b4
commit af4e3f7676
30 changed files with 392 additions and 6 deletions
+13
View File
@@ -0,0 +1,13 @@
#include "header.h"
void test(int i, int b)
{
int x;
A instanceOfA('v');
return;
}
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<config>
<source>
<SourcePath>data/src</SourcePath>
</source>
</config>
+4
View File
@@ -19,6 +19,8 @@ add_files(
qt/element/QtSearchBar.h
qt/element/QtSmartSearchBox.cpp
qt/element/QtSmartSearchBox.h
qt/element/QtStatusBar.cpp
qt/element/QtStatusBar.h
qt/graphics/QtGraphicsRoundedRectItem.cpp
qt/graphics/QtGraphicsRoundedRectItem.h
@@ -52,6 +54,8 @@ add_files(
qt/view/QtMainView.h
qt/view/QtSearchView.cpp
qt/view/QtSearchView.h
qt/view/QtStatusBarView.cpp
qt/view/QtStatusBarView.h
qt/view/QtViewFactory.cpp
qt/view/QtViewFactory.h
qt/view/QtViewWidgetWrapper.cpp
+3 -2
View File
@@ -20,6 +20,7 @@ QtMainWindow::QtMainWindow()
{
setObjectName("QtMainWindow");
setCentralWidget(nullptr);
setDockNestingEnabled(true);
setupProjectMenu();
setupViewMenu();
@@ -73,8 +74,8 @@ void QtMainWindow::openProject(const QString &path)
}
void QtMainWindow::saveProject()
{
MessageSaveProject("").dispatch();
{
MessageSaveProject("").dispatch();
}
void QtMainWindow::saveAsProject()
+21
View File
@@ -0,0 +1,21 @@
#include "qt/element/QtStatusBar.h"
QtStatusBar::QtStatusBar()
: m_text(this)
{
m_text.setText("hallo test test");
addWidget(&m_text);
}
QtStatusBar::~QtStatusBar()
{
}
void QtStatusBar::setText(const std::string& text, bool isError)
{
if (isError)
{
m_text.setStyleSheet("QLabel { color: red }");
}
m_text.setText(text.c_str());
}
+20
View File
@@ -0,0 +1,20 @@
#ifndef QT_STATUS_BAR_H
#define QT_STATUS_BAR_H
#include <string>
#include <QStatusBar>
#include <QProgressBar>
#include <QLabel>
class QtStatusBar : public QStatusBar
{
public:
QtStatusBar(void);
~QtStatusBar(void);
void setText(const std::string& text, bool isError = false);
private:
QLabel m_text;
};
#endif // !QT_STATUS_BAR_H
+10
View File
@@ -51,3 +51,13 @@ void QtMainView::saveLayout()
{
m_window->saveLayout();
}
QStatusBar* QtMainView::getStatusBar()
{
return m_window->statusBar();
}
void QtMainView::setStatusBar(QStatusBar* statusbar)
{
m_window->setStatusBar(statusbar);
}
+4
View File
@@ -4,6 +4,7 @@
#include <memory>
#include <vector>
#include <QStatusBar>
#include "component/view/MainView.h"
class QtMainWindow;
@@ -25,6 +26,9 @@ public:
virtual void loadLayout();
virtual void saveLayout();
virtual QStatusBar* getStatusBar();
virtual void setStatusBar(QStatusBar* statusBar);
private:
std::shared_ptr<QtMainWindow> m_window;
std::vector<View*> m_views;
+45
View File
@@ -0,0 +1,45 @@
#include "qt/view/QtStatusBarView.h"
#include <QStatusBar>
#include "qt/view/QtMainView.h"
#include "qt/view/QtViewWidgetWrapper.h"
QtStatusBarView::QtStatusBarView( ViewLayout* viewLayout )
: StatusBarView(viewLayout)
, m_showMessageFunctor(std::bind(&QtStatusBarView::doShowMessage, this, std::placeholders::_1, std::placeholders::_2))
{
QtMainView* mw = static_cast<QtMainView*>(viewLayout);
m_widget = std::make_shared<QtStatusBar>();
QStatusBar* sb = static_cast<QStatusBar*>(m_widget.get());
mw->setStatusBar(sb);
m_widget->show();
}
QtStatusBarView::~QtStatusBarView()
{
}
void QtStatusBarView::createWidgetWrapper()
{
//setWidgetWrapper(std::make_shared<QtViewWidgetWrapper>(m_widget));
}
void QtStatusBarView::initView()
{
}
void QtStatusBarView::refreshView()
{
}
void QtStatusBarView::doShowMessage( const std::string& message, bool isError )
{
m_widget->setText(message, isError);
}
void QtStatusBarView::showMessage( const std::string& message, bool isError )
{
m_showMessageFunctor(message, isError);
}
+31
View File
@@ -0,0 +1,31 @@
#ifndef QT_STATUS_BAR_VIEW_H
#define QT_STATUS_BAR_VIEW_H
#include <memory>
#include <string>
#include "component/view/StatusBarView.h"
#include "qt/element/QtStatusBar.h"
#include "qt/utility/QtThreadedFunctor.h"
class QtStatusBarView : public StatusBarView
{
public:
QtStatusBarView(ViewLayout* viewLayout);
~QtStatusBarView();
// View implementation
virtual void createWidgetWrapper();
virtual void initView();
virtual void refreshView();
// StatusBar view implementation
virtual void showMessage(const std::string& message, bool isError);
private:
void doShowMessage(const std::string& message, bool isError);
std::shared_ptr<QtStatusBar> m_widget;
QtThreadedFunctor<const std::string&, bool> m_showMessageFunctor;
};
#endif // !QT_STATUS_BAR_VIEW_H
+6
View File
@@ -4,6 +4,7 @@
#include "qt/view/QtGraphView.h"
#include "qt/view/QtMainView.h"
#include "qt/view/QtSearchView.h"
#include "qt/view/QtStatusBarView.h"
QtViewFactory::QtViewFactory()
{
@@ -32,3 +33,8 @@ std::shared_ptr<SearchView> QtViewFactory::createSearchView(ViewLayout* viewLayo
{
return View::create<QtSearchView>(viewLayout);
}
std::shared_ptr<StatusBarView> QtViewFactory::createStatusBarView(ViewLayout* viewLayout) const
{
return View::createAndDontAddToLayout<QtStatusBarView>(viewLayout);
}
+1
View File
@@ -13,6 +13,7 @@ public:
virtual std::shared_ptr<CodeView> createCodeView(ViewLayout* viewLayout) const;
virtual std::shared_ptr<GraphView> createGraphView(ViewLayout* viewLayout) const;
virtual std::shared_ptr<SearchView> createSearchView(ViewLayout* viewLayout) const;
virtual std::shared_ptr<StatusBarView> createStatusBarView(ViewLayout* viewLayout) const;
};
#endif // QT_VIEW_FACTORY_H
@@ -121,13 +121,13 @@ void QtCorneredConnection::paint(QPainter *painter, const QStyleOptionGraphicsIt
if (i != 1)
{
if (dir % 2 == 1 && abs(a.y() - b.y()) < 2 * br)
if (dir % 2 == 1 && std::abs(a.y() - b.y()) < 2 * br)
{
br = abs(a.y() - b.y()) / 2;
br = std::abs(a.y() - b.y()) / 2;
}
else if (dir % 2 == 0 && abs(a.x() - b.x()) < 2 * br)
else if (dir % 2 == 0 && std::abs(a.x() - b.x()) < 2 * br)
{
br = abs(a.x() - b.x()) / 2;
br = std::abs(a.x() - b.x()) / 2;
}
}
+9
View File
@@ -32,6 +32,8 @@ add_files(
component/controller/GraphLayouter.h
component/controller/SearchController.cpp
component/controller/SearchController.h
component/controller/StatusBarController.cpp
component/controller/StatusBarController.h
component/view/graphElements/GraphEdge.cpp
component/view/graphElements/GraphEdge.h
@@ -46,6 +48,8 @@ add_files(
component/view/MainView.h
component/view/SearchView.cpp
component/view/SearchView.h
component/view/StatusBarView.cpp
component/view/StatusBarView.h
component/view/View.cpp
component/view/View.h
component/view/ViewFactory.cpp
@@ -191,6 +195,8 @@ add_files(
utility/math/VectorBase.h
utility/messaging/type/MessageActivateToken.h
utility/messaging/type/MessageActivateTokens.h
utility/messaging/type/MessageError.h
utility/messaging/type/MessageFind.h
utility/messaging/type/MessageFinishedParsing.h
utility/messaging/type/MessageGraphNodeExpand.h
@@ -198,8 +204,11 @@ add_files(
utility/messaging/type/MessageLoadProject.h
utility/messaging/type/MessageLoadSource.h
utility/messaging/type/MessageRefresh.h
utility/messaging/type/MessageSaveProject.h
utility/messaging/type/MessageSearch.h
utility/messaging/type/MessageSearchAutocomplete.h
utility/messaging/type/MessageShowFile.h
utility/messaging/type/MessageStatus.h
utility/messaging/Message.h
utility/messaging/MessageBase.h
+14
View File
@@ -4,9 +4,11 @@
#include "component/controller/CodeController.h"
#include "component/controller/GraphController.h"
#include "component/controller/SearchController.h"
#include "component/controller/StatusBarController.h"
#include "component/view/CodeView.h"
#include "component/view/GraphView.h"
#include "component/view/SearchView.h"
#include "component/view/StatusBarView.h"
#include "component/view/ViewFactory.h"
#include "component/view/ViewLayout.h"
@@ -52,6 +54,18 @@ std::shared_ptr<Component> ComponentFactory::createSearchComponent()
return component;
}
std::shared_ptr<Component> ComponentFactory::createStatusBarComponent()
{
std::shared_ptr<StatusBarView> view = m_viewFactory->createStatusBarView(m_viewLayout);
std::shared_ptr<StatusBarController> controller = std::make_shared<StatusBarController>();
std::shared_ptr<Component> component = std::make_shared<Component>(view,controller);
return component;
}
ComponentFactory::ComponentFactory()
{
}
+1
View File
@@ -22,6 +22,7 @@ public:
std::shared_ptr<Component> createCodeComponent();
std::shared_ptr<Component> createGraphComponent();
std::shared_ptr<Component> createSearchComponent();
std::shared_ptr<Component> createStatusBarComponent();
private:
ComponentFactory();
+3
View File
@@ -26,6 +26,9 @@ void ComponentManager::setup()
std::shared_ptr<Component> searchComponent = m_componentFactory->createSearchComponent();
m_components.push_back(searchComponent);
std::shared_ptr<Component> statusBarComponent = m_componentFactory->createStatusBarComponent();
m_components.push_back(statusBarComponent);
}
ComponentManager::ComponentManager()
@@ -0,0 +1,39 @@
#include "component/controller/StatusBarController.h"
#include "component/view/StatusBarView.h"
StatusBarController::StatusBarController()
{
}
StatusBarController::~StatusBarController()
{
}
StatusBarView* StatusBarController::getView()
{
return Controller::getView<StatusBarView>();
}
void StatusBarController::handleMessage(MessageFinishedParsing* message)
{
setStatus("Parsing Finished");
}
void StatusBarController::handleMessage(MessageStatus* message)
{
setStatus(message->status);
}
void StatusBarController::handleMessage(MessageError* message)
{
setStatus(message->error, true);
}
void StatusBarController::setStatus(const std::string& status, bool isError)
{
if(!status.empty())
getView()->showMessage(status, isError);
}
@@ -0,0 +1,35 @@
#ifndef STATUS_BAR_CONTROLLER_H
#define STATUS_BAR_CONTROLLER_H
#include <string>
#include "component/controller/Controller.h"
#include "utility/messaging/MessageListener.h"
#include "utility/messaging/type/MessageError.h"
#include "utility/messaging/type/MessageFinishedParsing.h"
#include "utility/messaging/type/MessageStatus.h"
class StatusBarView;
class StatusBarController
: public Controller
, public MessageListener<MessageError>
, public MessageListener<MessageFinishedParsing>
, public MessageListener<MessageStatus>
{
public:
StatusBarController(void);
~StatusBarController(void);
StatusBarView* getView();
private:
void setStatus(const std::string& status, bool isError = false);
virtual void handleMessage(MessageError* message);
virtual void handleMessage(MessageFinishedParsing* message);
virtual void handleMessage(MessageStatus* message);
};
#endif // STATUS_BAR_CONTROLLER_H
+4
View File
@@ -15,6 +15,10 @@ CodeView::CodeSnippetParams::CodeSnippetParams()
bool CodeView::CodeSnippetParams::sort( CodeSnippetParams a, CodeSnippetParams b )
{
if(a.isActive && b.isActive)
{
return false;
}
// sort active snippet first
if(a.isActive)
{
+1
View File
@@ -8,6 +8,7 @@ class MainView: public ViewLayout
public:
MainView();
virtual ~MainView();
};
#endif // MAIN_VIEW_H
+24
View File
@@ -0,0 +1,24 @@
#include "component/view/StatusBarView.h"
#include "component/controller/StatusBarController.h"
StatusBarView::StatusBarView(ViewLayout* viewLayout)
: View(viewLayout, Vec2i(100,100))
{
}
StatusBarView::~StatusBarView()
{
}
std::string StatusBarView::getName() const
{
return "StatusBarView";
}
StatusBarController* StatusBarView::getController()
{
return View::getController<StatusBarController>();
}
+20
View File
@@ -0,0 +1,20 @@
#ifndef STATUS_BAR_VIEW_H
#define STATUS_BAR_VIEW_H
#include "component/view/View.h"
class StatusBarController;
class StatusBarView : public View
{
public:
StatusBarView(ViewLayout* viewLayout);
~StatusBarView(void);
virtual std::string getName() const;
virtual void showMessage(const std::string& message, bool isError) = 0;
protected:
StatusBarController* getController();
};
#endif //STATUS_BAR_VIEW_H
+16
View File
@@ -16,6 +16,9 @@ public:
template<typename T>
static std::shared_ptr<T> create(ViewLayout* viewLayout);
template<typename T>
static std::shared_ptr<T> createAndDontAddToLayout(ViewLayout* viewLayout);
View(ViewLayout* viewLayout, const Vec2i& minSize);
virtual ~View();
@@ -60,6 +63,19 @@ std::shared_ptr<T> View::create(ViewLayout* viewLayout)
return ptr;
}
template<typename T>
std::shared_ptr<T> View::createAndDontAddToLayout(ViewLayout* viewLayout)
{
std::shared_ptr<T> ptr = std::make_shared<T>(viewLayout);
ptr->createWidgetWrapper();
ptr->initView();
//viewLayout->addView(ptr.get());
return ptr;
}
template <typename ControllerType>
ControllerType* View::getController()
{
+2
View File
@@ -7,6 +7,7 @@ class CodeView;
class GraphView;
class MainView;
class SearchView;
class StatusBarView;
class ViewLayout;
class ViewFactory
@@ -19,6 +20,7 @@ public:
virtual std::shared_ptr<CodeView> createCodeView(ViewLayout* viewLayout) const = 0;
virtual std::shared_ptr<GraphView> createGraphView(ViewLayout* viewLayout) const = 0;
virtual std::shared_ptr<SearchView> createSearchView(ViewLayout* viewLayout) const = 0;
virtual std::shared_ptr<StatusBarView> createStatusBarView(ViewLayout* viewLayout) const = 0;
};
#endif // VIEW_FACTORY_H
+2
View File
@@ -1,5 +1,7 @@
#include "data/search/SearchNode.h"
#include <algorithm>
#include "utility/text/Dictionary.h"
#include "data/search/SearchIndex.h"
+1
View File
@@ -2,6 +2,7 @@
#define SEARCH_RESULT_H
#include <set>
#include <stddef.h>
class SearchNode;
@@ -0,0 +1,26 @@
#ifndef MESSAGE_ERROR_H
#define MESSAGE_ERROR_H
#include "utility/messaging/Message.h"
#include "utility/types.h"
class MessageError: public Message<MessageError>
{
public:
MessageError(
const std::string& error
)
: error(error)
{
}
static const std::string getStaticType()
{
return "MessageError";
}
const std::string error;
};
#endif // MESSAGE_ERROR_H
@@ -0,0 +1,26 @@
#ifndef MESSAGE_STATUS_H
#define MESSAGE_STATUS_H
#include "utility/messaging/Message.h"
#include "utility/types.h"
class MessageStatus: public Message<MessageStatus>
{
public:
MessageStatus(
const std::string& status
)
: status(status)
{
}
static const std::string getStaticType()
{
return "MessageStatus";
}
const std::string status;
};
#endif // MESSAGE_STATUS_H
+1
View File
@@ -1,5 +1,6 @@
#include "utility/utilityString.h"
#include <algorithm>
#include <cctype>
#include <string>