Moved LDraw path setting out of the configuration dialog to the LDraw path dialog, it does the job better.

Wed, 08 May 2013 04:10:31 +0300

author
Santeri Piippo <crimsondusk64@gmail.com>
date
Wed, 08 May 2013 04:10:31 +0300
changeset 180
16306e69a895
parent 179
f98391b179ab
child 181
a61f07b7965c

Moved LDraw path setting out of the configuration dialog to the LDraw path dialog, it does the job better.

file.cpp file | annotate | diff | comparison | revisions
gui.cpp file | annotate | diff | comparison | revisions
gui_actions.cpp file | annotate | diff | comparison | revisions
zz_configDialog.cpp file | annotate | diff | comparison | revisions
zz_configDialog.h file | annotate | diff | comparison | revisions
zz_ldrawPathDialog.cpp file | annotate | diff | comparison | revisions
zz_ldrawPathDialog.h file | annotate | diff | comparison | revisions
--- a/file.cpp	Wed May 08 03:53:45 2013 +0300
+++ b/file.cpp	Wed May 08 04:10:31 2013 +0300
@@ -43,7 +43,7 @@
 	
 	void initPaths () {
 		if (!tryConfigure (io_ldpath)) {
-			LDrawPathDialog dlg;
+			LDrawPathDialog dlg (false);
 			
 			if (!dlg.exec ())
 				exit (0);
--- a/gui.cpp	Wed May 08 03:53:45 2013 +0300
+++ b/gui.cpp	Wed May 08 04:10:31 2013 +0300
@@ -145,6 +145,7 @@
 	addMenuAction ("saveAs");				// Save As
 	menu->addSeparator ();					// -------
 	addMenuAction ("settings");			// Settings
+	addMenuAction ("setLDrawPath");		// Set LDraw Path
 	menu->addSeparator ();					// -------
 	addMenuAction ("exit");				// Exit
 	
--- a/gui_actions.cpp	Wed May 08 03:53:45 2013 +0300
+++ b/gui_actions.cpp	Wed May 08 04:10:31 2013 +0300
@@ -26,6 +26,7 @@
 #include "zz_addObjectDialog.h"
 #include "zz_aboutDialog.h"
 #include "misc.h"
+#include "zz_ldrawPathDialog.h"
 
 // =============================================================================
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -108,6 +109,11 @@
 	ConfigDialog::staticDialog ();
 }
 
+MAKE_ACTION (setLDrawPath, "Set LDraw Path", "settings", "Change the LDraw directory path.", (0)) {
+	LDrawPathDialog dlg (true);
+	dlg.exec ();
+}
+
 // =============================================================================
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 // =============================================================================
--- a/zz_configDialog.cpp	Wed May 08 03:53:45 2013 +0300
+++ b/zz_configDialog.cpp	Wed May 08 04:10:31 2013 +0300
@@ -30,7 +30,6 @@
 #include <qevent.h>
 #include <qgroupbox.h>
 
-extern_cfg (str, io_ldpath);
 extern_cfg (str, gl_bgcolor);
 extern_cfg (str, gl_maincolor);
 extern_cfg (bool, lv_colorize);
@@ -82,22 +81,6 @@
 	mainTab = new QWidget;
 	
 	// =========================================================================
-	// LDraw path
-	lb_LDrawPath = new QLabel ("LDraw path:");
-	
-	le_LDrawPath = new QLineEdit;
-	le_LDrawPath->setText (io_ldpath.value.chars());
-	
-	pb_findLDrawPath = new QPushButton;
-	pb_findLDrawPath->setIcon (getIcon ("folder"));
-	connect (pb_findLDrawPath, SIGNAL (clicked ()),
-		this, SLOT (slot_findLDrawPath ()));
-	
-	QHBoxLayout* qLDrawPathLayout = new QHBoxLayout;
-	qLDrawPathLayout->addWidget (le_LDrawPath);
-	qLDrawPathLayout->addWidget (pb_findLDrawPath);
-	
-	// =========================================================================
 	// Background and foreground colors
 	lb_viewBg = new QLabel ("Background color:");
 	pb_viewBg = new QPushButton;
@@ -160,27 +143,24 @@
 	cb_colorBFC->setEnabled (false);
 	
 	QGridLayout* layout = new QGridLayout;
-	layout->addWidget (lb_LDrawPath, 0, 0);
-	layout->addLayout (qLDrawPathLayout, 0, 1, 1, 3);
-	
-	layout->addWidget (lb_viewBg, 1, 0);
-	layout->addWidget (pb_viewBg, 1, 1);
-	layout->addWidget (lb_viewFg, 1, 2);
-	layout->addWidget (pb_viewFg, 1, 3);
+	layout->addWidget (lb_viewBg, 0, 0);
+	layout->addWidget (pb_viewBg, 0, 1);
+	layout->addWidget (lb_viewFg, 0, 2);
+	layout->addWidget (pb_viewFg, 0, 3);
 	
-	layout->addWidget (lb_lineThickness, 2, 0);
-	layout->addWidget (sl_lineThickness, 2, 1);
-	layout->addWidget (lb_viewFgAlpha, 2, 2);
-	layout->addWidget (sl_viewFgAlpha, 2, 3);
+	layout->addWidget (lb_lineThickness, 1, 0);
+	layout->addWidget (sl_lineThickness, 1, 1);
+	layout->addWidget (lb_viewFgAlpha, 1, 2);
+	layout->addWidget (sl_viewFgAlpha, 1, 3);
 	
-	layout->addWidget (lb_iconSize, 3, 0);
-	layout->addWidget (sl_iconSize, 3, 1);
+	layout->addWidget (lb_iconSize, 2, 0);
+	layout->addWidget (sl_iconSize, 2, 1);
 	
-	layout->addWidget (cb_colorize, 4, 0, 1, 4);
-	layout->addWidget (cb_colorBFC, 5, 0, 1, 4);
-	layout->addWidget (cb_selFlash, 6, 0, 1, 4);
-	layout->addWidget (cb_blackEdges, 7, 0, 1, 4);
-	layout->addWidget (cb_schemanticInline, 8, 0, 1, 4);
+	layout->addWidget (cb_colorize, 3, 0, 1, 4);
+	layout->addWidget (cb_colorBFC, 4, 0, 1, 4);
+	layout->addWidget (cb_selFlash, 5, 0, 1, 4);
+	layout->addWidget (cb_blackEdges, 6, 0, 1, 4);
+	layout->addWidget (cb_schemanticInline, 7, 0, 1, 4);
 	mainTab->setLayout (layout);
 	
 	// Add the tab to the manager
@@ -541,17 +521,6 @@
 // =============================================================================
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 // =============================================================================
-void ConfigDialog::slot_findLDrawPath () {
-	str dir = QFileDialog::getExistingDirectory (this, "Choose LDraw directory",
-		le_LDrawPath->text());
-	
-	if (~dir)
-		le_LDrawPath->setText (dir.chars());
-}
-
-// =============================================================================
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-// =============================================================================
 void ConfigDialog::pickColor (strconfig& cfg, QPushButton* qButton) {
 	QColorDialog dlg (QColor (cfg.value.chars()));
 	dlg.setWindowIcon (getIcon ("colorselect"));
@@ -718,8 +687,6 @@
 	ConfigDialog dlg (g_win);
 	
 	if (dlg.exec ()) {
-		io_ldpath = dlg.le_LDrawPath->text();
-		
 		lv_colorize = dlg.cb_colorize->isChecked ();
 		gl_colorbfc = dlg.cb_colorBFC->isChecked ();
 		gl_selflash = dlg.cb_selFlash->isChecked ();
--- a/zz_configDialog.h	Wed May 08 03:53:45 2013 +0300
+++ b/zz_configDialog.h	Wed May 08 04:10:31 2013 +0300
@@ -52,11 +52,8 @@
 	
 	// =========================================================================
 	// Main tab widgets
-	QLabel* lb_LDrawPath;
 	QLabel* lb_viewBg, *lb_viewFg, *lb_viewFgAlpha;
 	QLabel* lb_lineThickness, *lb_iconSize;
-	QLineEdit* le_LDrawPath;
-	QPushButton* pb_findLDrawPath;
 	QPushButton* pb_viewBg, *pb_viewFg;
 	QCheckBox* cb_colorize, *cb_colorBFC, *cb_selFlash, *cb_schemanticInline,
 		*cb_blackEdges;
@@ -106,7 +103,6 @@
 	QList<ShortcutListItem*> getShortcutSelection ();
 	
 private slots:
-	void slot_findLDrawPath ();
 	void slot_setGLBackground ();
 	void slot_setGLForeground ();
 	
--- a/zz_ldrawPathDialog.cpp	Wed May 08 03:53:45 2013 +0300
+++ b/zz_ldrawPathDialog.cpp	Wed May 08 04:10:31 2013 +0300
@@ -24,11 +24,18 @@
 #include "gui.h"
 #include "file.h"
 
+extern_cfg (str, io_ldpath);
 
 // ========================================================================================================================================
-LDrawPathDialog::LDrawPathDialog (QWidget* parent, Qt::WindowFlags f) : QDialog (parent, f) {
+LDrawPathDialog::LDrawPathDialog (const bool validDefault, QWidget* parent, Qt::WindowFlags f)
+	: QDialog (parent, f), m_validDefault (validDefault)
+{
+	QLabel* lb_description;
 	lb_resolution = new QLabel ("---");
-	QLabel* lb_description = new QLabel ("Please input your LDraw directory");
+	
+	if (validDefault == false)
+		lb_description = new QLabel ("Please input your LDraw directory");
+	
 	QLabel* lb_path = new QLabel ("LDraw path:");
 	le_path = new QLineEdit;
 	btn_findPath = new QPushButton;
@@ -37,12 +44,19 @@
 	btn_tryConfigure = new QPushButton ("Configure");
 	btn_tryConfigure->setIcon (getIcon ("settings"));
 	
-	btn_exit = new QPushButton ("Exit");
-	btn_exit->setIcon (getIcon ("exit"));
+	btn_cancel = new QPushButton;
+	
+	if (validDefault == false) {
+		btn_cancel->setText ("Exit");
+		btn_cancel->setIcon (getIcon ("exit"));
+	} else {
+		btn_cancel->setText ("Cancel");
+		btn_cancel->setIcon (getIcon ("cancel"));
+	}
 	
 	dbb_buttons = new QDialogButtonBox (QDialogButtonBox::Ok);
-	dbb_buttons->addButton (btn_tryConfigure, QDialogButtonBox::ApplyRole);
-	dbb_buttons->addButton (btn_exit, QDialogButtonBox::RejectRole);
+	dbb_buttons->addButton (btn_tryConfigure, QDialogButtonBox::ActionRole);
+	dbb_buttons->addButton (btn_cancel, QDialogButtonBox::RejectRole);
 	okButton ()->setEnabled (false);
 	
 	QHBoxLayout* inputLayout = new QHBoxLayout;
@@ -51,25 +65,31 @@
 	inputLayout->addWidget (btn_findPath);
 	
 	QVBoxLayout* mainLayout = new QVBoxLayout;
-	mainLayout->addWidget (lb_description);
+	
+	if (validDefault == false)
+		mainLayout->addWidget (lb_description);
+	
 	mainLayout->addLayout (inputLayout);
 	mainLayout->addWidget (lb_resolution);
 	mainLayout->addWidget (dbb_buttons);
 	setLayout (mainLayout);
 	
+	connect (le_path, SIGNAL (textEdited ()), this, SLOT (slot_tryConfigure ()));
 	connect (btn_findPath, SIGNAL (clicked ()), this, SLOT (slot_findPath ()));
 	connect (btn_tryConfigure, SIGNAL (clicked ()), this, SLOT (slot_tryConfigure ()));
 	connect (dbb_buttons, SIGNAL (accepted ()), this, SLOT (accept ()));
-	connect (dbb_buttons, SIGNAL (rejected ()), this, SLOT (slot_exit ()));
+	connect (dbb_buttons, SIGNAL (rejected ()), this, (validDefault) ? SLOT (reject ()) : SLOT (slot_exit ()));
+	
+	setPath (io_ldpath);
+	if (validDefault)
+		slot_tryConfigure ();
 }
 
-
 // ========================================================================================================================================
 QPushButton* LDrawPathDialog::okButton () {
 	return dbb_buttons->button (QDialogButtonBox::Ok);
 }
 
-
 // ========================================================================================================================================
 void LDrawPathDialog::setPath (str path) {
 	le_path->setText (path);
--- a/zz_ldrawPathDialog.h	Wed May 08 03:53:45 2013 +0300
+++ b/zz_ldrawPathDialog.h	Wed May 08 04:10:31 2013 +0300
@@ -30,7 +30,7 @@
 	Q_OBJECT
 	
 public:
-	explicit LDrawPathDialog (QWidget* parent = null, Qt::WindowFlags f = 0);
+	explicit LDrawPathDialog (const bool validDefault, QWidget* parent = null, Qt::WindowFlags f = 0);
 	str path () const;
 	void setPath (str path);
 	void (*callback ()) () const { return m_callback; }
@@ -41,9 +41,10 @@
 	
 	QLabel* lb_resolution;
 	QLineEdit* le_path;
-	QPushButton* btn_findPath, *btn_tryConfigure, *btn_exit;
+	QPushButton* btn_findPath, *btn_tryConfigure, *btn_cancel;
 	QDialogButtonBox* dbb_buttons;
 	void (*m_callback) ();
+	const bool m_validDefault;
 	
 	QPushButton* okButton ();
 	

mercurial