[Scummvm-git-logs] scummvm master -> 4188ba12523dd625725769ee4e830760ccec36a6

criezy criezy at scummvm.org
Wed Aug 22 01:45:27 CEST 2018


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
4188ba1252 GUI: Add editable path in file browser dialog


Commit: 4188ba12523dd625725769ee4e830760ccec36a6
    https://github.com/scummvm/scummvm/commit/4188ba12523dd625725769ee4e830760ccec36a6
Author: Chatziargyriou Eleftheria (36453738+Sedictious at users.noreply.github.com)
Date: 2018-08-22T00:39:51+01:00

Commit Message:
GUI: Add editable path in file browser dialog

Changed paths:
    gui/browser.cpp
    gui/browser.h
    gui/widgets/edittext.cpp
    gui/widgets/edittext.h


diff --git a/gui/browser.cpp b/gui/browser.cpp
index 67b0dd9..0e2d6b8 100644
--- a/gui/browser.cpp
+++ b/gui/browser.cpp
@@ -22,6 +22,7 @@
 
 #include "gui/browser.h"
 #include "gui/gui-manager.h"
+#include "gui/widgets/edittext.h"
 #include "gui/widgets/list.h"
 
 #include "common/config-manager.h"
@@ -56,7 +57,7 @@ BrowserDialog::BrowserDialog(const char *title, bool dirBrowser)
 	new StaticTextWidget(this, "Browser.Headline", title);
 
 	// Current path - TODO: handle long paths ?
-	_currentPath = new StaticTextWidget(this, "Browser.Path", "DUMMY");
+	_currentPath = new EditTextWidget(this, "Browser.Path", "DUMMY");
 
 	// Add file list
 	_fileList = new ListWidget(this, "Browser.List");
@@ -94,6 +95,12 @@ void BrowserDialog::open() {
 
 void BrowserDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
 	switch (cmd) {
+	//Search for typed-in directory
+	case kExitTxtCmd:
+		_node = Common::FSNode(_currentPath->getEditString());
+		updateListing();
+		break;
+	//Search by text input
 	case kChooseCmd:
 		if (_isDirBrowser) {
 			// If nothing is selected in the list widget, choose the current dir.
@@ -157,7 +164,7 @@ void BrowserDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data
 
 void BrowserDialog::updateListing() {
 	// Update the path display
-	_currentPath->setLabel(_node.getPath());
+	_currentPath->setEditString(_node.getPath());
 
 	// We memorize the last visited path.
 	ConfMan.set("browser_lastpath", _node.getPath());
diff --git a/gui/browser.h b/gui/browser.h
index 10663f5..557563e 100644
--- a/gui/browser.h
+++ b/gui/browser.h
@@ -29,7 +29,7 @@
 namespace GUI {
 
 class ListWidget;
-class StaticTextWidget;
+class EditTextWidget;
 class CheckboxWidget;
 class CommandSender;
 
@@ -54,7 +54,7 @@ protected:
 	const void *_chooseRef;
 #else
 	ListWidget		*_fileList;
-	StaticTextWidget	*_currentPath;
+	EditTextWidget	*_currentPath;
 	Common::FSNode	_node;
 	Common::FSList			_nodeContent;
 	bool _showHidden;
diff --git a/gui/widgets/edittext.cpp b/gui/widgets/edittext.cpp
index b0e6898..540dc27 100644
--- a/gui/widgets/edittext.cpp
+++ b/gui/widgets/edittext.cpp
@@ -64,7 +64,6 @@ void EditTextWidget::reflowLayout() {
 	EditableWidget::reflowLayout();
 }
 
-
 void EditTextWidget::handleMouseDown(int x, int y, int button, int clickCount) {
 	if (!isEnabled())
 		return;
@@ -133,13 +132,19 @@ void EditTextWidget::startEditMode() {
 void EditTextWidget::endEditMode() {
 	releaseFocus();
 
+	sendCommand(kExitTxtCmd, 0);
 	sendCommand(_finishCmd, 0);
 }
 
 void EditTextWidget::abortEditMode() {
 	setEditString(_backupString);
 	sendCommand(_cmd, 0);
+
 	releaseFocus();
 }
 
+Common::String EditTextWidget::getEditString() {
+	return _backupString;
+}
+
 } // End of namespace GUI
diff --git a/gui/widgets/edittext.h b/gui/widgets/edittext.h
index 7376ae7..d382c8f 100644
--- a/gui/widgets/edittext.h
+++ b/gui/widgets/edittext.h
@@ -25,9 +25,14 @@
 
 #include "gui/widgets/editable.h"
 #include "common/str.h"
+#include "gui/dialog.h"
 
 namespace GUI {
 
+enum {
+	kExitTxtCmd = 'TXTE'
+};
+
 /* EditTextWidget */
 class EditTextWidget : public EditableWidget {
 protected:
@@ -43,6 +48,7 @@ public:
 	EditTextWidget(GuiObject *boss, const String &name, const String &text, const char *tooltp = 0, uint32 cmd = 0, uint32 finishCmd = 0);
 
 	void setEditString(const String &str);
+	String getEditString();
 
 	virtual void handleMouseDown(int x, int y, int button, int clickCount);
 





More information about the Scummvm-git-logs mailing list