Merge branch 'WickedSmoke-kr'

master
Jeremy Hu 2019-12-30 07:47:04 +09:30
commit a35b98cf15
6 changed files with 57 additions and 13 deletions

View File

@ -67,3 +67,14 @@ Here is the snapshot of the command line of one build, you may use different def
$ qmake -qt=5 -makefile
$ make
$ ./dust3d
* Fedora
.. code-block:: sh
$ sudo dnf install qt5-qtbase-devel CGAL-devel
$ git clone https://github.com/huxingyi/dust3d.git
$ cd dust3d
$ qmake-qt5 -makefile
$ make
$ ./dust3d

View File

@ -6,6 +6,9 @@ RESOURCES += resources.qrc
LANGUAGES = zh_CN
OBJECTS_DIR=obj
MOC_DIR=moc
############## Generate .qm from .ts #######################
# parameters: var, prepend, append

View File

@ -506,6 +506,10 @@ DocumentWindow::DocumentWindow() :
m_fileMenu->addSeparator();
m_quitAction = m_fileMenu->addAction(tr("&Quit"),
this, &DocumentWindow::close,
QKeySequence::Quit);
connect(m_fileMenu, &QMenu::aboutToShow, [=]() {
m_exportAsObjAction->setEnabled(m_graphicsWidget->hasItems());
//m_exportAsObjPlusMaterialsAction->setEnabled(m_graphicsWidget->hasItems());
@ -1174,26 +1178,38 @@ DocumentWindow *DocumentWindow::createDocumentWindow()
{
DocumentWindow *documentWindow = new DocumentWindow();
documentWindow->setAttribute(Qt::WA_DeleteOnClose);
documentWindow->showMaximized();
QSize size = Preferences::instance().documentWindowSize();
if (size.isValid()) {
documentWindow->resize(size);
documentWindow->show();
} else {
documentWindow->showMaximized();
}
return documentWindow;
}
void DocumentWindow::closeEvent(QCloseEvent *event)
{
if (m_documentSaved) {
event->accept();
return;
if (! m_documentSaved) {
QMessageBox::StandardButton answer = QMessageBox::question(this,
APP_NAME,
tr("Do you really want to close while there are unsaved changes?"),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No);
if (answer == QMessageBox::No) {
event->ignore();
return;
}
}
QMessageBox::StandardButton answer = QMessageBox::question(this,
APP_NAME,
tr("Do you really want to close while there are unsaved changes?"),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No);
if (answer == QMessageBox::Yes)
event->accept();
else
event->ignore();
QSize saveSize;
if (!isMaximized())
saveSize = size();
Preferences::instance().setDocumentWindowSize(saveSize);
event->accept();
}
void DocumentWindow::setCurrentFilename(const QString &filename)

View File

@ -118,6 +118,7 @@ private:
QAction *m_showPreferencesAction;
QMenu *m_exportMenu;
QAction *m_changeTurnaroundAction;
QAction *m_quitAction;
QAction *m_exportAsObjAction;
QAction *m_exportAsObjPlusMaterialsAction;

View File

@ -81,6 +81,16 @@ void Preferences::setFlatShading(bool flatShading)
emit flatShadingChanged();
}
QSize Preferences::documentWindowSize() const
{
return m_settings.value("documentWindowSize", QSize()).toSize();
}
void Preferences::setDocumentWindowSize(const QSize& size)
{
m_settings.setValue("documentWindowSize", size);
}
void Preferences::reset()
{
m_settings.clear();

View File

@ -2,6 +2,7 @@
#define PREFERENCES_H
#include <QSettings>
#include <QColor>
#include <QSize>
#include "combinemode.h"
class Preferences : public QObject
@ -13,6 +14,8 @@ public:
CombineMode componentCombineMode() const;
const QColor &partColor() const;
bool flatShading() const;
QSize documentWindowSize() const;
void setDocumentWindowSize(const QSize&);
signals:
void componentCombineModeChanged();
void partColorChanged();