ui & logic: fixes for release
* smaller indexing progress dialog with bar in the middle instead of golden ratio * set default code snippet expand range to 3 * no minimum height for project file location element in project setup wizard * move aggregation and inheritance edges to front when hovered or active * push parent nodes of active nodes to back to make edges to the active child visible * properly quit application when window is closed while confirm box is open * properly quit application when window is closed while indexing * only count top level nodes for count on bundle nodes * give noLetterScore to index 0 in search index scoring bug id = 121
This commit is contained in:
@@ -290,6 +290,7 @@ add_files(
|
|||||||
utility/messaging/type/MessageStatus.h
|
utility/messaging/type/MessageStatus.h
|
||||||
utility/messaging/type/MessageSwitchColorScheme.h
|
utility/messaging/type/MessageSwitchColorScheme.h
|
||||||
utility/messaging/type/MessageUndo.h
|
utility/messaging/type/MessageUndo.h
|
||||||
|
utility/messaging/type/MessageWindowClosed.h
|
||||||
utility/messaging/type/MessageWindowFocus.h
|
utility/messaging/type/MessageWindowFocus.h
|
||||||
utility/messaging/type/MessageZoom.h
|
utility/messaging/type/MessageZoom.h
|
||||||
|
|
||||||
@@ -334,7 +335,7 @@ add_files(
|
|||||||
utility/solution/SolutionParserUtility.h
|
utility/solution/SolutionParserUtility.h
|
||||||
utility/solution/SolutionParserVisualStudio.cpp
|
utility/solution/SolutionParserVisualStudio.cpp
|
||||||
utility/solution/SolutionParserVisualStudio.h
|
utility/solution/SolutionParserVisualStudio.h
|
||||||
|
|
||||||
utility/synchronization/ReaderWriterLock.cpp
|
utility/synchronization/ReaderWriterLock.cpp
|
||||||
utility/synchronization/ReaderWriterLock.h
|
utility/synchronization/ReaderWriterLock.h
|
||||||
utility/synchronization/ScopedReaderLock.cpp
|
utility/synchronization/ScopedReaderLock.cpp
|
||||||
|
|||||||
@@ -742,7 +742,7 @@ void GraphController::bundleNodesAndEdgesMatching(
|
|||||||
node->visible = false;
|
node->visible = false;
|
||||||
|
|
||||||
bundleNode->bundledNodes.push_back(node);
|
bundleNode->bundledNodes.push_back(node);
|
||||||
bundleNode->bundledNodeCount += node->getConnectedSubNodeCount();
|
bundleNode->bundledNodeCount += node->getBundledNodeCount();
|
||||||
|
|
||||||
m_dummyNodes.erase(m_dummyNodes.begin() + matchedNodeIndices[i]);
|
m_dummyNodes.erase(m_dummyNodes.begin() + matchedNodeIndices[i]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -140,23 +140,6 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t getConnectedSubNodeCount() const
|
|
||||||
{
|
|
||||||
size_t count = 0;
|
|
||||||
|
|
||||||
if (connected)
|
|
||||||
{
|
|
||||||
count += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (std::shared_ptr<DummyNode> node : subNodes)
|
|
||||||
{
|
|
||||||
count += node->getConnectedSubNodeCount();
|
|
||||||
}
|
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<const DummyNode*> getConnectedSubNodes() const
|
std::vector<const DummyNode*> getConnectedSubNodes() const
|
||||||
{
|
{
|
||||||
std::vector<const DummyNode*> nodes;
|
std::vector<const DummyNode*> nodes;
|
||||||
|
|||||||
@@ -455,7 +455,7 @@ GraphViewStyle::EdgeStyle GraphViewStyle::getStyleForEdgeType(Edge::EdgeType typ
|
|||||||
style.originOffset.y = 0;
|
style.originOffset.y = 0;
|
||||||
style.targetOffset.y = 0;
|
style.targetOffset.y = 0;
|
||||||
style.verticalOffset = 0;
|
style.verticalOffset = 0;
|
||||||
style.zValue = isActive ? -2 : -5;
|
style.zValue = isActive ? 1 : -5;
|
||||||
break;
|
break;
|
||||||
case Edge::EDGE_CALL:
|
case Edge::EDGE_CALL:
|
||||||
style.originOffset.y = 1;
|
style.originOffset.y = 1;
|
||||||
@@ -472,7 +472,7 @@ GraphViewStyle::EdgeStyle GraphViewStyle::getStyleForEdgeType(Edge::EdgeType typ
|
|||||||
style.arrowWidth = 14;
|
style.arrowWidth = 14;
|
||||||
style.arrowClosed = true;
|
style.arrowClosed = true;
|
||||||
style.targetOffset.x = 34;
|
style.targetOffset.x = 34;
|
||||||
style.zValue = isActive ? -1 : -3;
|
style.zValue = isActive ? 2 : -3;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ int SearchIndex::score(const std::string& text, const std::vector<size_t>& indic
|
|||||||
}
|
}
|
||||||
|
|
||||||
// after no letter
|
// after no letter
|
||||||
bool prevIsNoLetter = (index > 0 && noLetters.find(text[index - 1]) != noLetters.end());
|
bool prevIsNoLetter = (index == 0 || noLetters.find(text[index - 1]) != noLetters.end());
|
||||||
if (prevIsNoLetter)
|
if (prevIsNoLetter)
|
||||||
{
|
{
|
||||||
noLetterScore += noLetterBonus;
|
noLetterScore += noLetterBonus;
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ void ApplicationSettings::setCodeSnippetSnapRange(int range)
|
|||||||
|
|
||||||
int ApplicationSettings::getCodeSnippetExpandRange() const
|
int ApplicationSettings::getCodeSnippetExpandRange() const
|
||||||
{
|
{
|
||||||
return getValue<int>("code/snippet/expand_range", 2);
|
return getValue<int>("code/snippet/expand_range", 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ApplicationSettings::setCodeSnippetExpandRange(int range)
|
void ApplicationSettings::setCodeSnippetExpandRange(int range)
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#ifndef MESSAGE_WINDOW_CLOSED_H
|
||||||
|
#define MESSAGE_WINDOW_CLOSED_H
|
||||||
|
|
||||||
|
#include "utility/messaging/Message.h"
|
||||||
|
|
||||||
|
class MessageWindowClosed
|
||||||
|
: public Message<MessageWindowClosed>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MessageWindowClosed()
|
||||||
|
{
|
||||||
|
setSendAsTask(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const std::string getStaticType()
|
||||||
|
{
|
||||||
|
return "MessageWindowClosed";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MESSAGE_WINDOW_CLOSED_H
|
||||||
@@ -38,6 +38,9 @@ void TaskGroupParallel::doEnter(std::shared_ptr<Blackboard> blackboard)
|
|||||||
|
|
||||||
Task::TaskState TaskGroupParallel::doUpdate(std::shared_ptr<Blackboard> blackboard)
|
Task::TaskState TaskGroupParallel::doUpdate(std::shared_ptr<Blackboard> blackboard)
|
||||||
{
|
{
|
||||||
|
const int SLEEP_TIME_MS = 25;
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME_MS));
|
||||||
|
|
||||||
if (m_tasks.size() != 0 && getActveTaskCount() > 0)
|
if (m_tasks.size() != 0 && getActveTaskCount() > 0)
|
||||||
{
|
{
|
||||||
return STATE_RUNNING;
|
return STATE_RUNNING;
|
||||||
@@ -72,8 +75,6 @@ void TaskGroupParallel::doReset(std::shared_ptr<Blackboard> blackboard)
|
|||||||
|
|
||||||
void TaskGroupParallel::processTaskThreaded(std::shared_ptr<TaskInfo> taskInfo, std::shared_ptr<Blackboard> blackboard)
|
void TaskGroupParallel::processTaskThreaded(std::shared_ptr<TaskInfo> taskInfo, std::shared_ptr<Blackboard> blackboard)
|
||||||
{
|
{
|
||||||
const int SLEEP_TIME_MS = 25;
|
|
||||||
|
|
||||||
ScopedFunctor functor([&](){
|
ScopedFunctor functor([&](){
|
||||||
std::lock_guard<std::mutex> lock(m_activeTaskCountMutex);
|
std::lock_guard<std::mutex> lock(m_activeTaskCountMutex);
|
||||||
m_activeTaskCount--;
|
m_activeTaskCount--;
|
||||||
@@ -92,8 +93,6 @@ void TaskGroupParallel::processTaskThreaded(std::shared_ptr<TaskInfo> taskInfo,
|
|||||||
taskInfo->active = false;
|
taskInfo->active = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME_MS));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,8 +48,6 @@ void TaskScheduler::startSchedulerLoopThreaded()
|
|||||||
|
|
||||||
void TaskScheduler::startSchedulerLoop()
|
void TaskScheduler::startSchedulerLoop()
|
||||||
{
|
{
|
||||||
const int SLEEP_TIME_MS = 25;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(m_loopMutex);
|
std::lock_guard<std::mutex> lock(m_loopMutex);
|
||||||
|
|
||||||
@@ -75,6 +73,7 @@ void TaskScheduler::startSchedulerLoop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const int SLEEP_TIME_MS = 25;
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME_MS));
|
std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME_MS));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,6 +155,15 @@ void TaskScheduler::processTasks()
|
|||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(m_loopMutex);
|
||||||
|
|
||||||
|
if (!m_loopIsRunning)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,11 +14,13 @@
|
|||||||
QtDialogView::QtDialogView(QtMainWindow* mainWindow)
|
QtDialogView::QtDialogView(QtMainWindow* mainWindow)
|
||||||
: m_mainWindow(mainWindow)
|
: m_mainWindow(mainWindow)
|
||||||
, m_windowStack(this)
|
, m_windowStack(this)
|
||||||
|
, m_resultReady(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QtDialogView::~QtDialogView()
|
QtDialogView::~QtDialogView()
|
||||||
{
|
{
|
||||||
|
m_resultReady = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtDialogView::showProgressDialog(const std::string& title, const std::string& message)
|
void QtDialogView::showProgressDialog(const std::string& title, const std::string& message)
|
||||||
@@ -66,17 +68,17 @@ void QtDialogView::hideProgressDialog()
|
|||||||
bool QtDialogView::startIndexingDialog(size_t cleanFileCount, size_t indexFileCount)
|
bool QtDialogView::startIndexingDialog(size_t cleanFileCount, size_t indexFileCount)
|
||||||
{
|
{
|
||||||
bool result = false;
|
bool result = false;
|
||||||
bool done = false;
|
m_resultReady = false;
|
||||||
|
|
||||||
m_onQtThread(
|
m_onQtThread(
|
||||||
[=, &result, &done]()
|
[=, &result]()
|
||||||
{
|
{
|
||||||
QtIndexingDialog* window = createWindow<QtIndexingDialog>();
|
QtIndexingDialog* window = createWindow<QtIndexingDialog>();
|
||||||
window->setupStart(cleanFileCount, indexFileCount,
|
window->setupStart(cleanFileCount, indexFileCount,
|
||||||
[&](bool start)
|
[&](bool start)
|
||||||
{
|
{
|
||||||
result = start;
|
result = start;
|
||||||
done = true;
|
m_resultReady = true;
|
||||||
|
|
||||||
setUIBlocked(false);
|
setUIBlocked(false);
|
||||||
}
|
}
|
||||||
@@ -86,7 +88,7 @@ bool QtDialogView::startIndexingDialog(size_t cleanFileCount, size_t indexFileCo
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
while (!done)
|
while (!m_resultReady)
|
||||||
{
|
{
|
||||||
const int SLEEP_TIME_MS = 25;
|
const int SLEEP_TIME_MS = 25;
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME_MS));
|
std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME_MS));
|
||||||
@@ -155,10 +157,10 @@ void QtDialogView::finishedIndexingDialog(size_t fileCount, size_t totalFileCoun
|
|||||||
int QtDialogView::confirm(const std::string& message, const std::vector<std::string>& options)
|
int QtDialogView::confirm(const std::string& message, const std::vector<std::string>& options)
|
||||||
{
|
{
|
||||||
int result = -1;
|
int result = -1;
|
||||||
bool done = false;
|
m_resultReady = false;
|
||||||
|
|
||||||
m_onQtThread(
|
m_onQtThread(
|
||||||
[=, &result, &done]()
|
[=, &result]()
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText(message.c_str());
|
msgBox.setText(message.c_str());
|
||||||
@@ -179,11 +181,11 @@ int QtDialogView::confirm(const std::string& message, const std::vector<std::str
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
done = true;
|
m_resultReady = true;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
while (!done)
|
while (!m_resultReady)
|
||||||
{
|
{
|
||||||
const int SLEEP_TIME_MS = 25;
|
const int SLEEP_TIME_MS = 25;
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME_MS));
|
std::this_thread::sleep_for(std::chrono::milliseconds(SLEEP_TIME_MS));
|
||||||
@@ -218,6 +220,11 @@ void QtDialogView::handleMessage(MessageShowErrors* message)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QtDialogView::handleMessage(MessageWindowClosed* message)
|
||||||
|
{
|
||||||
|
m_resultReady = true;
|
||||||
|
}
|
||||||
|
|
||||||
void QtDialogView::updateErrorCount(size_t errorCount, size_t fatalCount)
|
void QtDialogView::updateErrorCount(size_t errorCount, size_t fatalCount)
|
||||||
{
|
{
|
||||||
QtIndexingDialog* window = dynamic_cast<QtIndexingDialog*>(m_windowStack.getTopWindow());
|
QtIndexingDialog* window = dynamic_cast<QtIndexingDialog*>(m_windowStack.getTopWindow());
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#include "utility/messaging/MessageListener.h"
|
#include "utility/messaging/MessageListener.h"
|
||||||
#include "utility/messaging/type/MessageInterruptTasks.h"
|
#include "utility/messaging/type/MessageInterruptTasks.h"
|
||||||
#include "utility/messaging/type/MessageShowErrors.h"
|
#include "utility/messaging/type/MessageShowErrors.h"
|
||||||
|
#include "utility/messaging/type/MessageWindowClosed.h"
|
||||||
|
|
||||||
class QtMainWindow;
|
class QtMainWindow;
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ class QtDialogView
|
|||||||
, public DialogView
|
, public DialogView
|
||||||
, public MessageListener<MessageInterruptTasks>
|
, public MessageListener<MessageInterruptTasks>
|
||||||
, public MessageListener<MessageShowErrors>
|
, public MessageListener<MessageShowErrors>
|
||||||
|
, public MessageListener<MessageWindowClosed>
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@@ -36,6 +38,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
void handleMessage(MessageInterruptTasks* message) override;
|
void handleMessage(MessageInterruptTasks* message) override;
|
||||||
void handleMessage(MessageShowErrors* message) override;
|
void handleMessage(MessageShowErrors* message) override;
|
||||||
|
void handleMessage(MessageWindowClosed* message) override;
|
||||||
|
|
||||||
void updateErrorCount(size_t errorCount, size_t fatalCount);
|
void updateErrorCount(size_t errorCount, size_t fatalCount);
|
||||||
|
|
||||||
@@ -50,6 +53,8 @@ private:
|
|||||||
|
|
||||||
QtThreadedLambdaFunctor m_onQtThread;
|
QtThreadedLambdaFunctor m_onQtThread;
|
||||||
QtThreadedLambdaFunctor m_onQtThread2;
|
QtThreadedLambdaFunctor m_onQtThread2;
|
||||||
|
|
||||||
|
bool m_resultReady;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // QT_DIALOG_VIEW_H
|
#endif // QT_DIALOG_VIEW_H
|
||||||
|
|||||||
@@ -258,6 +258,25 @@ Id QtGraphNode::getTokenId() const
|
|||||||
void QtGraphNode::addSubNode(const std::shared_ptr<QtGraphNode>& node)
|
void QtGraphNode::addSubNode(const std::shared_ptr<QtGraphNode>& node)
|
||||||
{
|
{
|
||||||
m_subNodes.push_back(node);
|
m_subNodes.push_back(node);
|
||||||
|
|
||||||
|
// push parent nodes to back so all edges going to the active subnode are visible
|
||||||
|
if (node->getIsActive())
|
||||||
|
{
|
||||||
|
QtGraphNode* parent = this;
|
||||||
|
while (parent)
|
||||||
|
{
|
||||||
|
parent->setZValue(-10.0f);
|
||||||
|
parent->m_rect->setZValue(-10.0f);
|
||||||
|
parent->m_text->setZValue(-9.0f);
|
||||||
|
|
||||||
|
if (parent->m_undefinedRect)
|
||||||
|
{
|
||||||
|
parent->m_undefinedRect->setZValue(-10.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
parent = parent->getParent();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtGraphNode::moved(const Vec2i& oldPosition)
|
void QtGraphNode::moved(const Vec2i& oldPosition)
|
||||||
|
|||||||
@@ -74,13 +74,13 @@ void QtIndexingDialog::setupProgress()
|
|||||||
|
|
||||||
QBoxLayout* layout = createLayout();
|
QBoxLayout* layout = createLayout();
|
||||||
|
|
||||||
addTopAndProgressBar(0.62);
|
addTopAndProgressBar(0.5);
|
||||||
addTitle("Clearing", layout);
|
addTitle("Clearing", layout);
|
||||||
addMessageLabel(layout);
|
addMessageLabel(layout);
|
||||||
|
|
||||||
layout->addStretch();
|
layout->addStretch();
|
||||||
|
|
||||||
m_sizeHint = QSize(350, 350);
|
m_sizeHint = QSize(350, 280);
|
||||||
|
|
||||||
m_progressBar->showUnknownProgressAnimated();
|
m_progressBar->showUnknownProgressAnimated();
|
||||||
|
|
||||||
@@ -268,12 +268,12 @@ void QtIndexingDialog::addTopAndProgressBar(float topRatio)
|
|||||||
|
|
||||||
m_top = new QWidget(m_window);
|
m_top = new QWidget(m_window);
|
||||||
m_top->setObjectName("topHalf");
|
m_top->setObjectName("topHalf");
|
||||||
m_top->setGeometry(0, 0, m_window->size().width(), m_window->size().height() * topRatio);
|
m_top->setGeometry(0, 0, 0, 0);
|
||||||
m_top->show();
|
m_top->show();
|
||||||
m_top->lower();
|
m_top->lower();
|
||||||
|
|
||||||
m_progressBar = new QtProgressBar(m_window);
|
m_progressBar = new QtProgressBar(m_window);
|
||||||
m_progressBar->setGeometry(0, m_window->size().height() * topRatio - 5, m_window->size().width(), 10);
|
m_progressBar->setGeometry(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtIndexingDialog::addTitle(QString title, QBoxLayout* layout)
|
void QtIndexingDialog::addTitle(QString title, QBoxLayout* layout)
|
||||||
@@ -393,7 +393,7 @@ void QtIndexingDialog::setGeometries()
|
|||||||
|
|
||||||
void QtIndexingDialog::finishSetup()
|
void QtIndexingDialog::finishSetup()
|
||||||
{
|
{
|
||||||
setGeometries();
|
|
||||||
|
|
||||||
setupDone();
|
setupDone();
|
||||||
|
|
||||||
|
setGeometries();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
#include "utility/messaging/type/MessageResetZoom.h"
|
#include "utility/messaging/type/MessageResetZoom.h"
|
||||||
#include "utility/messaging/type/MessageSearch.h"
|
#include "utility/messaging/type/MessageSearch.h"
|
||||||
#include "utility/messaging/type/MessageUndo.h"
|
#include "utility/messaging/type/MessageUndo.h"
|
||||||
|
#include "utility/messaging/type/MessageWindowClosed.h"
|
||||||
#include "utility/messaging/type/MessageWindowFocus.h"
|
#include "utility/messaging/type/MessageWindowFocus.h"
|
||||||
#include "utility/messaging/type/MessageZoom.h"
|
#include "utility/messaging/type/MessageZoom.h"
|
||||||
#include "utility/ResourcePaths.h"
|
#include "utility/ResourcePaths.h"
|
||||||
@@ -314,6 +315,11 @@ void QtMainWindow::contextMenuEvent(QContextMenuEvent* event)
|
|||||||
QtContextMenu::getInstance()->showDefault(event, this);
|
QtContextMenu::getInstance()->showDefault(event, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QtMainWindow::closeEvent(QCloseEvent* event)
|
||||||
|
{
|
||||||
|
MessageWindowClosed().dispatch();
|
||||||
|
}
|
||||||
|
|
||||||
void QtMainWindow::about()
|
void QtMainWindow::about()
|
||||||
{
|
{
|
||||||
QtAbout* aboutWindow = createWindow<QtAbout>();
|
QtAbout* aboutWindow = createWindow<QtAbout>();
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ protected:
|
|||||||
bool event(QEvent* event);
|
bool event(QEvent* event);
|
||||||
void keyPressEvent(QKeyEvent* event);
|
void keyPressEvent(QKeyEvent* event);
|
||||||
void contextMenuEvent(QContextMenuEvent* event);
|
void contextMenuEvent(QContextMenuEvent* event);
|
||||||
|
void closeEvent(QCloseEvent* event);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void about();
|
void about();
|
||||||
|
|||||||
@@ -138,7 +138,6 @@ void QtProjectWizzardContentData::addNameAndLocation(QGridLayout* layout, int& r
|
|||||||
|
|
||||||
layout->addWidget(locationLabel, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
|
layout->addWidget(locationLabel, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
|
||||||
layout->addWidget(m_projectFileLocation, row, QtProjectWizzardWindow::BACK_COL);
|
layout->addWidget(m_projectFileLocation, row, QtProjectWizzardWindow::BACK_COL);
|
||||||
layout->setRowMinimumHeight(row, 50);
|
|
||||||
row++;
|
row++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user