[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haiku-commits
Subject:    [haiku-commits] Change in haiku[master]: tracker/infowindow: display filesystem type
From:       Gerrit <review () review ! haiku-os ! org>
Date:       2022-07-27 21:47:59
Message-ID: eed531ec258008594762eb523bd25c57bd99f071-HTML () review ! haiku-os ! org
[Download RAW message or body]

From <jim_l@fastmail.com>:

jim_l@fastmail.com has uploaded this change for review. ( \
https://review.haiku-os.org/c/haiku/+/5507 )


Change subject: tracker/infowindow: display filesystem type
......................................................................

tracker/infowindow: display filesystem type

* If the target is a volume, include a line on the Information tab of
  the Get Info window that lists the filesystem name, block size, and
  (if applicable) whether the volume is indexed.
* Fixes #16945.

Change-Id: I888ae708a15a2f7729f50806fb59dbb4df506cfa
---
M src/kits/tracker/infowindow/GeneralInfoView.cpp
M src/kits/tracker/infowindow/GeneralInfoView.h
2 files changed, 44 insertions(+), 0 deletions(-)



  git pull ssh://git.haiku-os.org:22/haiku refs/changes/07/5507/1

diff --git a/src/kits/tracker/infowindow/GeneralInfoView.cpp \
b/src/kits/tracker/infowindow/GeneralInfoView.cpp index 870d64f..ea762c5 100644
--- a/src/kits/tracker/infowindow/GeneralInfoView.cpp
+++ b/src/kits/tracker/infowindow/GeneralInfoView.cpp
@@ -176,6 +176,7 @@
 		B_TRANSLATE("Kind:"),
 		B_TRANSLATE("Link to:"),
 		B_TRANSLATE("Version:"),
+		B_TRANSLATE("Filesystem:"),
 		NULL
 	};

@@ -353,6 +354,26 @@
 			fDescStr.ReplaceAll('\t', ' ');
 		} else
 			fDescStr = "-";
+	} else if (model->IsVolume()) {
+		const node_ref* nr = fModel->NodeRef();
+		fs_info modelInfo;
+		if (fs_stat_dev(nr->device, &modelInfo) == B_OK)
+		{
+			fFilesysStr = modelInfo.fsh_name;
+			fFilesysStr.ToUpper();
+			fFilesysStr << B_TRANSLATE(" (blocksize: ")
+				<< modelInfo.block_size;
+			// Print indexed status only if the filesystem is BFS
+			if (strcmp(modelInfo.fsh_name, "bfs") == 0) {
+				fFilesysStr += B_TRANSLATE(", indexed: ");
+				if (modelInfo.flags & B_FS_HAS_QUERY)
+					fFilesysStr += B_TRANSLATE("yes");
+				else
+					fFilesysStr += B_TRANSLATE("no");
+			}
+			fFilesysStr += ")";
+		} else
+			fFilesysStr = B_TRANSLATE("(unknown)");
 	}

 	if (mime.SetType(model->MimeType()) == B_OK
@@ -970,6 +991,27 @@

 		// No link field
 		fLinkRect = BRect(-1, -1, -1, -1);
+	} else if (fModel->IsVolume()) {
+		//Filesystem
+		MovePenTo(BPoint(fDivider - (StringWidth(B_TRANSLATE("Filesystem:"))),
+			lineBase));
+		SetHighColor(labelColor);
+		DrawString(B_TRANSLATE("Filesystem:"));
+		MovePenTo(BPoint(fDivider + kDrawMargin, lineBase));
+		SetHighColor(attributeColor);
+		// Check for truncation
+		if (StringWidth(fFilesysStr.String()) > (Bounds().Width()
+				- (fDivider + kBorderMargin))) {
+			BString nameString(fFilesysStr.String());
+			TruncateString(&nameString, B_TRUNCATE_MIDDLE,
+				Bounds().Width() - (fDivider + kBorderMargin));
+			DrawString(nameString.String());
+		} else
+			DrawString(fFilesysStr.String());
+
+		// No description field or link field
+		fDescRect = BRect(-1, -1, -1, -1);
+		fLinkRect = BRect(-1, -1, -1, -1);
 	}
 }

diff --git a/src/kits/tracker/infowindow/GeneralInfoView.h \
b/src/kits/tracker/infowindow/GeneralInfoView.h index c1f9bd0..9ec0503 100644
--- a/src/kits/tracker/infowindow/GeneralInfoView.h
+++ b/src/kits/tracker/infowindow/GeneralInfoView.h
@@ -36,6 +36,7 @@
 #define GENERALINFOVIEW_H


+#include <fs_info.h>
 #include <GroupView.h>
 #include <MenuField.h>
 #include <Message.h>
@@ -95,6 +96,7 @@
 	BString fCreatedStr;
 	BString fKindStr;
 	BString fDescStr;
+	BString fFilesysStr;

 	off_t fFreeBytes;
 	off_t fLastSize;

--
To view, visit https://review.haiku-os.org/c/haiku/+/5507
To unsubscribe, or for help writing mail filters, visit \
https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I888ae708a15a2f7729f50806fb59dbb4df506cfa
Gerrit-Change-Number: 5507
Gerrit-PatchSet: 1
Gerrit-Owner: jim_l@fastmail.com
Gerrit-MessageType: newchange


[Attachment #3 (text/html)]

<p>jim_l@fastmail.com has uploaded this change for <strong>review</strong>.</p><p><a \
href="https://review.haiku-os.org/c/haiku/+/5507">View Change</a></p><pre \
style="font-family: monospace,monospace; white-space: pre-wrap;">tracker/infowindow: \
display filesystem type<br><br>* If the target is a volume, include a line on the \
Information tab of<br>  the Get Info window that lists the filesystem name, block \
size, and<br>  (if applicable) whether the volume is indexed.<br>* Fixes \
#16945.<br><br>Change-Id: I888ae708a15a2f7729f50806fb59dbb4df506cfa<br>---<br>M \
src/kits/tracker/infowindow/GeneralInfoView.cpp<br>M \
src/kits/tracker/infowindow/GeneralInfoView.h<br>2 files changed, 44 insertions(+), 0 \
deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: \
pre-wrap;">git pull ssh://git.haiku-os.org:22/haiku refs/changes/07/5507/1</pre><pre \
style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git \
a/src/kits/tracker/infowindow/GeneralInfoView.cpp \
b/src/kits/tracker/infowindow/GeneralInfoView.cpp</span><br><span>index \
870d64f..ea762c5 100644</span><br><span>--- \
a/src/kits/tracker/infowindow/GeneralInfoView.cpp</span><br><span>+++ \
b/src/kits/tracker/infowindow/GeneralInfoView.cpp</span><br><span>@@ -176,6 +176,7 \
@@</span><br><span> 		B_TRANSLATE(&quot;Kind:&quot;),</span><br><span> \
B_TRANSLATE(&quot;Link to:&quot;),</span><br><span> \
B_TRANSLATE(&quot;Version:&quot;),</span><br><span style="color: hsl(120, 100%, \
40%);">+		B_TRANSLATE(&quot;Filesystem:&quot;),</span><br><span> \
NULL</span><br><span> 	};</span><br><span> </span><br><span>@@ -353,6 +354,26 \
@@</span><br><span> 			fDescStr.ReplaceAll(&#39;\t&#39;, &#39; \
&#39;);</span><br><span> 		} else</span><br><span> 			fDescStr = \
&quot;-&quot;;</span><br><span style="color: hsl(120, 100%, 40%);">+	} else if \
(model-&gt;IsVolume()) {</span><br><span style="color: hsl(120, 100%, 40%);">+		const \
node_ref* nr = fModel-&gt;NodeRef();</span><br><span style="color: hsl(120, 100%, \
40%);">+		fs_info modelInfo;</span><br><span style="color: hsl(120, 100%, \
40%);">+		if (fs_stat_dev(nr-&gt;device, &amp;modelInfo) == B_OK)</span><br><span \
style="color: hsl(120, 100%, 40%);">+		{</span><br><span style="color: hsl(120, 100%, \
40%);">+			fFilesysStr = modelInfo.fsh_name;</span><br><span style="color: hsl(120, \
100%, 40%);">+			fFilesysStr.ToUpper();</span><br><span style="color: hsl(120, 100%, \
40%);">+			fFilesysStr &lt;&lt; B_TRANSLATE(&quot; (blocksize: \
&quot;)</span><br><span style="color: hsl(120, 100%, 40%);">+				&lt;&lt; \
modelInfo.block_size;</span><br><span style="color: hsl(120, 100%, 40%);">+			// \
Print indexed status only if the filesystem is BFS</span><br><span style="color: \
hsl(120, 100%, 40%);">+			if (strcmp(modelInfo.fsh_name, &quot;bfs&quot;) == 0) \
{</span><br><span style="color: hsl(120, 100%, 40%);">+				fFilesysStr += \
B_TRANSLATE(&quot;, indexed: &quot;);</span><br><span style="color: hsl(120, 100%, \
40%);">+				if (modelInfo.flags &amp; B_FS_HAS_QUERY)</span><br><span style="color: \
hsl(120, 100%, 40%);">+					fFilesysStr += \
B_TRANSLATE(&quot;yes&quot;);</span><br><span style="color: hsl(120, 100%, \
40%);">+				else</span><br><span style="color: hsl(120, 100%, \
40%);">+					fFilesysStr += B_TRANSLATE(&quot;no&quot;);</span><br><span \
style="color: hsl(120, 100%, 40%);">+			}</span><br><span style="color: hsl(120, \
100%, 40%);">+			fFilesysStr += &quot;)&quot;;</span><br><span style="color: hsl(120, \
100%, 40%);">+		} else</span><br><span style="color: hsl(120, 100%, \
40%);">+			fFilesysStr = B_TRANSLATE(&quot;(unknown)&quot;);</span><br><span> \
}</span><br><span> </span><br><span> 	if (mime.SetType(model-&gt;MimeType()) == \
B_OK</span><br><span>@@ -970,6 +991,27 @@</span><br><span> </span><br><span> 		// No \
link field</span><br><span> 		fLinkRect = BRect(-1, -1, -1, -1);</span><br><span \
style="color: hsl(120, 100%, 40%);">+	} else if (fModel-&gt;IsVolume()) \
{</span><br><span style="color: hsl(120, 100%, 40%);">+		//Filesystem</span><br><span \
style="color: hsl(120, 100%, 40%);">+		MovePenTo(BPoint(fDivider - \
(StringWidth(B_TRANSLATE(&quot;Filesystem:&quot;))),</span><br><span style="color: \
hsl(120, 100%, 40%);">+			lineBase));</span><br><span style="color: hsl(120, 100%, \
40%);">+		SetHighColor(labelColor);</span><br><span style="color: hsl(120, 100%, \
40%);">+		DrawString(B_TRANSLATE(&quot;Filesystem:&quot;));</span><br><span \
style="color: hsl(120, 100%, 40%);">+		MovePenTo(BPoint(fDivider + kDrawMargin, \
lineBase));</span><br><span style="color: hsl(120, 100%, \
40%);">+		SetHighColor(attributeColor);</span><br><span style="color: hsl(120, 100%, \
40%);">+		// Check for truncation</span><br><span style="color: hsl(120, 100%, \
40%);">+		if (StringWidth(fFilesysStr.String()) &gt; \
(Bounds().Width()</span><br><span style="color: hsl(120, 100%, 40%);">+				- \
(fDivider + kBorderMargin))) {</span><br><span style="color: hsl(120, 100%, \
40%);">+			BString nameString(fFilesysStr.String());</span><br><span style="color: \
hsl(120, 100%, 40%);">+			TruncateString(&amp;nameString, \
B_TRUNCATE_MIDDLE,</span><br><span style="color: hsl(120, 100%, \
40%);">+				Bounds().Width() - (fDivider + kBorderMargin));</span><br><span \
style="color: hsl(120, 100%, \
40%);">+			DrawString(nameString.String());</span><br><span style="color: hsl(120, \
100%, 40%);">+		} else</span><br><span style="color: hsl(120, 100%, \
40%);">+			DrawString(fFilesysStr.String());</span><br><span style="color: hsl(120, \
100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+		// No \
description field or link field</span><br><span style="color: hsl(120, 100%, \
40%);">+		fDescRect = BRect(-1, -1, -1, -1);</span><br><span style="color: hsl(120, \
100%, 40%);">+		fLinkRect = BRect(-1, -1, -1, -1);</span><br><span> \
}</span><br><span> }</span><br><span> </span><br><span>diff --git \
a/src/kits/tracker/infowindow/GeneralInfoView.h \
b/src/kits/tracker/infowindow/GeneralInfoView.h</span><br><span>index \
c1f9bd0..9ec0503 100644</span><br><span>--- \
a/src/kits/tracker/infowindow/GeneralInfoView.h</span><br><span>+++ \
b/src/kits/tracker/infowindow/GeneralInfoView.h</span><br><span>@@ -36,6 +36,7 \
@@</span><br><span> #define GENERALINFOVIEW_H</span><br><span> </span><br><span> \
</span><br><span style="color: hsl(120, 100%, 40%);">+#include \
&lt;fs_info.h&gt;</span><br><span> #include &lt;GroupView.h&gt;</span><br><span> \
#include &lt;MenuField.h&gt;</span><br><span> #include \
&lt;Message.h&gt;</span><br><span>@@ -95,6 +96,7 @@</span><br><span> 	BString \
fCreatedStr;</span><br><span> 	BString fKindStr;</span><br><span> 	BString \
fDescStr;</span><br><span style="color: hsl(120, 100%, 40%);">+	BString \
fFilesysStr;</span><br><span> </span><br><span> 	off_t fFreeBytes;</span><br><span> \
off_t fLastSize;</span><br><span></span><br></pre><p>To view, visit <a \
href="https://review.haiku-os.org/c/haiku/+/5507">change 5507</a>. To unsubscribe, or \
for help writing mail filters, visit <a \
href="https://review.haiku-os.org/settings">settings</a>.</p><div itemscope \
itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" \
itemtype="http://schema.org/ViewAction"><link itemprop="url" \
href="https://review.haiku-os.org/c/haiku/+/5507"/><meta itemprop="name" \
content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: haiku </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: \
I888ae708a15a2f7729f50806fb59dbb4df506cfa </div> <div style="display:none"> \
Gerrit-Change-Number: 5507 </div> <div style="display:none"> Gerrit-PatchSet: 1 \
</div> <div style="display:none"> Gerrit-Owner: jim_l@fastmail.com </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic