ui: Added edit project button to stats in overview

This commit is contained in:
Eberhard Graether
2016-04-25 12:39:10 +02:00
parent 55660563c8
commit 69925917bc
9 changed files with 73 additions and 5 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

+1
View File
@@ -243,6 +243,7 @@ add_files(
utility/messaging/type/MessageInterruptTasks.h
utility/messaging/type/MessageLoadProject.h
utility/messaging/type/MessageMoveIDECursor.h
utility/messaging/type/MessageProjectEdit.h
utility/messaging/type/MessageProjectNew.h
utility/messaging/type/MessageRedo.h
utility/messaging/type/MessageRefresh.h
@@ -42,13 +42,12 @@ void CodeController::handleMessage(MessageActivateAll* message)
statsSnippet.locationFile = std::make_shared<TokenLocationFile>(FilePath());
statsSnippet.locationFile->isWholeCopy = true;
statsSnippet.title = ProjectSettings::getInstance()->getFilePath().withoutExtension().fileName();
std::vector<std::string> description = getProjectDescription(statsSnippet.locationFile.get());
std::stringstream ss;
ss << "\n";
ss << "\tProject: " + ProjectSettings::getInstance()->getFilePath().withoutExtension().fileName() + "\n";
if (description.size())
{
ss << "\n";
@@ -0,0 +1,20 @@
#ifndef MESSAGE_PROJECT_EDIT_H
#define MESSAGE_PROJECT_EDIT_H
#include "utility/messaging/Message.h"
class MessageProjectEdit
: public Message<MessageProjectEdit>
{
public:
MessageProjectEdit()
{
}
static const std::string getStaticType()
{
return "MessageProjectEdit";
}
};
#endif // MESSAGE_PROJECT_EDIT_H
+31
View File
@@ -9,6 +9,7 @@
#include "utility/logging/logging.h"
#include "utility/messaging/type/MessageActivateFile.h"
#include "utility/messaging/type/MessageChangeFileView.h"
#include "utility/messaging/type/MessageProjectEdit.h"
#include "data/location/TokenLocation.h"
#include "data/location/TokenLocationFile.h"
@@ -157,6 +158,31 @@ void QtCodeFile::addCodeSnippet(const CodeSnippetParams& params)
if (params.reduced)
{
m_title->hide();
QPushButton* title = new QPushButton(params.title.c_str(), this);
title->setObjectName("title_label");
title->minimumSizeHint(); // force font loading
title->setAttribute(Qt::WA_LayoutUsesWidgetRect); // fixes layouting on Mac
title->setFixedHeight(std::max(title->fontMetrics().height() * 1.2, 28.0));
title->setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed);
if (isTrial())
{
title->setEnabled(false);
}
else
{
std::string text = ResourcePaths::getGuiPath() + "code_view/images/edit.png";
title->setIcon(utility::colorizePixmap(
QPixmap(text.c_str()),
ColorScheme::getInstance()->getColor("code/file/title/icon").c_str()
));
connect(title, SIGNAL(clicked()), this, SLOT(editProject()));
}
dynamic_cast<QHBoxLayout*>(m_titleBar->layout())->insertWidget(1, title);
}
m_snippetLayout->addWidget(snippet.get());
@@ -379,6 +405,11 @@ void QtCodeFile::clickedTitle()
MessageActivateFile(m_filePath).dispatch();
}
void QtCodeFile::editProject()
{
MessageProjectEdit().dispatch();
}
void QtCodeFile::clickedMinimizeButton() const
{
MessageChangeFileView(
+1
View File
@@ -73,6 +73,7 @@ public slots:
private slots:
void clickedTitleBar();
void clickedTitle();
void editProject();
private:
virtual void handleMessage(MessageWindowFocus* message);
+1 -1
View File
@@ -74,7 +74,7 @@ QtCodeSnippet::QtCodeSnippet(const CodeSnippetParams& params, QtCodeFile* file)
layout->setAlignment(Qt::AlignTop);
setLayout(layout);
if (m_titleString.size())
if (m_titleString.size() && !params.reduced)
{
m_title = createScopeLine(layout);
if (m_titleId == 0) // title is a file path
+12 -1
View File
@@ -10,7 +10,8 @@
#include "qt/window/QtMainWindow.h"
QtMainView::QtMainView()
: m_createNewProjectFromSolutionFunctor(std::bind(&QtMainView::doCreateNewProjectFromSolution, this, std::placeholders::_1, std::placeholders::_2))
: m_editProjectFunctor(std::bind(&QtMainView::doEditProject, this))
, m_createNewProjectFromSolutionFunctor(std::bind(&QtMainView::doCreateNewProjectFromSolution, this, std::placeholders::_1, std::placeholders::_2))
, m_showStartScreenFunctor(std::bind(&QtMainView::doShowStartScreen, this))
, m_hideStartScreenFunctor(std::bind(&QtMainView::doHideStartScreen, this))
, m_setTitleFunctor(std::bind(&QtMainView::doSetTitle, this, std::placeholders::_1))
@@ -124,6 +125,11 @@ void QtMainView::handleMessage(MessageForceEnterLicense* message)
m_forceLicenseScreenFunctor(message->licenseExpired);
}
void QtMainView::handleMessage(MessageProjectEdit* message)
{
m_editProjectFunctor();
}
void QtMainView::handleMessage(MessageProjectNew* message)
{
if (message->ideId.size() != 0 && message->solutionPath.size() != 0)
@@ -137,6 +143,11 @@ void QtMainView::handleMessage(MessageShowStartScreen* message)
m_showStartScreenFunctor();
}
void QtMainView::doEditProject()
{
m_window->editProject();
}
void QtMainView::doCreateNewProjectFromSolution(const std::string& ideId, const std::string& solutionPath)
{
m_window->newProjectFromSolution(ideId, solutionPath);
+5
View File
@@ -11,6 +11,7 @@
#include "utility/messaging/MessageListener.h"
#include "utility/messaging/type/MessageForceEnterLicense.h"
#include "utility/messaging/type/MessageProjectEdit.h"
#include "utility/messaging/type/MessageProjectNew.h"
#include "utility/messaging/type/MessageShowStartScreen.h"
@@ -20,6 +21,7 @@ class View;
class QtMainView
: public MainView
, public MessageListener<MessageForceEnterLicense>
, public MessageListener<MessageProjectEdit>
, public MessageListener<MessageProjectNew>
, public MessageListener<MessageShowStartScreen>
{
@@ -50,9 +52,11 @@ public:
private:
void handleMessage(MessageForceEnterLicense* message);
void handleMessage(MessageProjectEdit* message);
void handleMessage(MessageProjectNew* message);
void handleMessage(MessageShowStartScreen* message);
void doEditProject();
void doCreateNewProjectFromSolution(const std::string& ideId, const std::string& solutionPath);
void doShowStartScreen();
void doHideStartScreen();
@@ -66,6 +70,7 @@ private:
std::shared_ptr<QtMainWindow> m_window;
std::vector<View*> m_views;
QtThreadedFunctor<> m_editProjectFunctor;
QtThreadedFunctor<const std::string&, const std::string&> m_createNewProjectFromSolutionFunctor;
QtThreadedFunctor<> m_showStartScreenFunctor;
QtThreadedFunctor<> m_hideStartScreenFunctor;