Tracker: style fixes to WidgetAttributeText
This commit is contained in:
@@ -240,40 +240,54 @@ WidgetAttributeText::NewWidgetText(const Model* model,
|
|||||||
|
|
||||||
if (strcmp(attrName, kAttrPath) == 0)
|
if (strcmp(attrName, kAttrPath) == 0)
|
||||||
return new PathAttributeText(model, column);
|
return new PathAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrMIMEType) == 0)
|
if (strcmp(attrName, kAttrMIMEType) == 0)
|
||||||
return new KindAttributeText(model, column);
|
return new KindAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrStatName) == 0)
|
if (strcmp(attrName, kAttrStatName) == 0)
|
||||||
return new NameAttributeText(model, column);
|
return new NameAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrRealName) == 0)
|
if (strcmp(attrName, kAttrRealName) == 0)
|
||||||
return new RealNameAttributeText(model, column);
|
return new RealNameAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrStatSize) == 0)
|
if (strcmp(attrName, kAttrStatSize) == 0)
|
||||||
return new SizeAttributeText(model, column);
|
return new SizeAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrStatModified) == 0)
|
if (strcmp(attrName, kAttrStatModified) == 0)
|
||||||
return new ModificationTimeAttributeText(model, column);
|
return new ModificationTimeAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrStatCreated) == 0)
|
if (strcmp(attrName, kAttrStatCreated) == 0)
|
||||||
return new CreationTimeAttributeText(model, column);
|
return new CreationTimeAttributeText(model, column);
|
||||||
|
|
||||||
#ifdef OWNER_GROUP_ATTRIBUTES
|
#ifdef OWNER_GROUP_ATTRIBUTES
|
||||||
if (strcmp(attrName, kAttrStatOwner) == 0)
|
if (strcmp(attrName, kAttrStatOwner) == 0)
|
||||||
return new OwnerAttributeText(model, column);
|
return new OwnerAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrStatGroup) == 0)
|
if (strcmp(attrName, kAttrStatGroup) == 0)
|
||||||
return new GroupAttributeText(model, column);
|
return new GroupAttributeText(model, column);
|
||||||
#endif
|
#endif
|
||||||
if (strcmp(attrName, kAttrStatMode) == 0)
|
if (strcmp(attrName, kAttrStatMode) == 0)
|
||||||
return new ModeAttributeText(model, column);
|
return new ModeAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrOpenWithRelation) == 0)
|
if (strcmp(attrName, kAttrOpenWithRelation) == 0)
|
||||||
return new OpenWithRelationAttributeText(model, column, view);
|
return new OpenWithRelationAttributeText(model, column, view);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrAppVersion) == 0)
|
if (strcmp(attrName, kAttrAppVersion) == 0)
|
||||||
return new AppShortVersionAttributeText(model, column);
|
return new AppShortVersionAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrSystemVersion) == 0)
|
if (strcmp(attrName, kAttrSystemVersion) == 0)
|
||||||
return new SystemShortVersionAttributeText(model, column);
|
return new SystemShortVersionAttributeText(model, column);
|
||||||
|
|
||||||
if (strcmp(attrName, kAttrOriginalPath) == 0)
|
if (strcmp(attrName, kAttrOriginalPath) == 0)
|
||||||
return new OriginalPathAttributeText(model, column);
|
return new OriginalPathAttributeText(model, column);
|
||||||
|
|
||||||
if (column->DisplayAs() != NULL) {
|
if (column->DisplayAs() != NULL) {
|
||||||
if (!strncmp(column->DisplayAs(), "checkbox", 8))
|
if (!strncmp(column->DisplayAs(), "checkbox", 8))
|
||||||
return new CheckboxAttributeText(model, column);
|
return new CheckboxAttributeText(model, column);
|
||||||
|
|
||||||
if (!strncmp(column->DisplayAs(), "duration", 8))
|
if (!strncmp(column->DisplayAs(), "duration", 8))
|
||||||
return new DurationAttributeText(model, column);
|
return new DurationAttributeText(model, column);
|
||||||
|
|
||||||
if (!strncmp(column->DisplayAs(), "rating", 6))
|
if (!strncmp(column->DisplayAs(), "rating", 6))
|
||||||
return new RatingAttributeText(model, column);
|
return new RatingAttributeText(model, column);
|
||||||
}
|
}
|
||||||
@@ -283,7 +297,7 @@ WidgetAttributeText::NewWidgetText(const Model* model,
|
|||||||
|
|
||||||
|
|
||||||
WidgetAttributeText::WidgetAttributeText(const Model* model,
|
WidgetAttributeText::WidgetAttributeText(const Model* model,
|
||||||
const BColumn* column)
|
const BColumn* column)
|
||||||
:
|
:
|
||||||
fModel(const_cast<Model*>(model)),
|
fModel(const_cast<Model*>(model)),
|
||||||
fColumn(column),
|
fColumn(column),
|
||||||
@@ -304,8 +318,9 @@ const char*
|
|||||||
WidgetAttributeText::FittingText(const BPoseView* view)
|
WidgetAttributeText::FittingText(const BPoseView* view)
|
||||||
{
|
{
|
||||||
if (fDirty || fColumn->Width() != fOldWidth || CheckSettingsChanged()
|
if (fDirty || fColumn->Width() != fOldWidth || CheckSettingsChanged()
|
||||||
|| !fValueIsDefined )
|
|| !fValueIsDefined) {
|
||||||
CheckViewChanged(view);
|
CheckViewChanged(view);
|
||||||
|
}
|
||||||
|
|
||||||
ASSERT(!fDirty);
|
ASSERT(!fDirty);
|
||||||
return fText.String();
|
return fText.String();
|
||||||
@@ -469,7 +484,7 @@ WidgetAttributeText::SetDirty(bool value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - StringAttributeText
|
||||||
|
|
||||||
|
|
||||||
StringAttributeText::StringAttributeText(const Model* model,
|
StringAttributeText::StringAttributeText(const Model* model,
|
||||||
@@ -570,7 +585,7 @@ StringAttributeText::CommitEditedText(BTextView* textView)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - ScalarAttributeText
|
||||||
|
|
||||||
|
|
||||||
ScalarAttributeText::ScalarAttributeText(const Model* model,
|
ScalarAttributeText::ScalarAttributeText(const Model* model,
|
||||||
@@ -599,7 +614,8 @@ ScalarAttributeText::CheckAttributeChanged()
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
fValue = newValue;
|
fValue = newValue;
|
||||||
fDirty = true; // have to redo fitted string
|
fDirty = true;
|
||||||
|
// have to redo fitted string
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -629,7 +645,7 @@ ScalarAttributeText::Compare(WidgetAttributeText& attr, BPoseView*)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - PathAttributeText
|
||||||
|
|
||||||
|
|
||||||
PathAttributeText::PathAttributeText(const Model* model, const BColumn* column)
|
PathAttributeText::PathAttributeText(const Model* model, const BColumn* column)
|
||||||
@@ -651,11 +667,12 @@ PathAttributeText::ReadValue(BString* result)
|
|||||||
TruncateLeaf(result);
|
TruncateLeaf(result);
|
||||||
} else
|
} else
|
||||||
*result = "-";
|
*result = "-";
|
||||||
|
|
||||||
fValueDirty = false;
|
fValueDirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - OriginalPathAttributeText
|
||||||
|
|
||||||
|
|
||||||
OriginalPathAttributeText::OriginalPathAttributeText(const Model* model,
|
OriginalPathAttributeText::OriginalPathAttributeText(const Model* model,
|
||||||
@@ -677,15 +694,15 @@ OriginalPathAttributeText::ReadValue(BString* result)
|
|||||||
*result = path.Path();
|
*result = path.Path();
|
||||||
else
|
else
|
||||||
*result = "-";
|
*result = "-";
|
||||||
|
|
||||||
fValueDirty = false;
|
fValueDirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - KindAttributeText
|
||||||
|
|
||||||
|
|
||||||
KindAttributeText::KindAttributeText(const Model* model,
|
KindAttributeText::KindAttributeText(const Model* model, const BColumn* column)
|
||||||
const BColumn* column)
|
|
||||||
:
|
:
|
||||||
StringAttributeText(model, column)
|
StringAttributeText(model, column)
|
||||||
{
|
{
|
||||||
@@ -701,20 +718,21 @@ KindAttributeText::ReadValue(BString* result)
|
|||||||
// get the mime type
|
// get the mime type
|
||||||
if (mime.SetType(fModel->MimeType()) != B_OK)
|
if (mime.SetType(fModel->MimeType()) != B_OK)
|
||||||
*result = B_TRANSLATE("Unknown");
|
*result = B_TRANSLATE("Unknown");
|
||||||
// get the short mime type description
|
else if (mime.GetShortDescription(desc) == B_OK) {
|
||||||
else if (mime.GetShortDescription(desc) == B_OK)
|
// get the short mime type description
|
||||||
*result = desc;
|
*result = desc;
|
||||||
else
|
} else
|
||||||
*result = fModel->MimeType();
|
*result = fModel->MimeType();
|
||||||
|
|
||||||
fValueDirty = false;
|
fValueDirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - NameAttributeText
|
||||||
|
|
||||||
|
|
||||||
NameAttributeText::NameAttributeText(const Model* model,
|
NameAttributeText::NameAttributeText(const Model* model,
|
||||||
const BColumn* column)
|
const BColumn* column)
|
||||||
:
|
:
|
||||||
StringAttributeText(model, column)
|
StringAttributeText(model, column)
|
||||||
{
|
{
|
||||||
@@ -791,9 +809,7 @@ NameAttributeText::CommitEditedTextFlavor(BTextView* textView)
|
|||||||
B_TRANSLATE("Replace other file"),
|
B_TRANSLATE("Replace other file"),
|
||||||
B_TRANSLATE("OK"),
|
B_TRANSLATE("OK"),
|
||||||
NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT);
|
NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT);
|
||||||
|
|
||||||
alert->SetShortcut(0, 'r');
|
alert->SetShortcut(0, 'r');
|
||||||
|
|
||||||
if (alert->Go())
|
if (alert->Go())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -847,7 +863,7 @@ NameAttributeText::IsEditable() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - RealNameAttributeText
|
||||||
|
|
||||||
|
|
||||||
RealNameAttributeText::RealNameAttributeText(const Model* model,
|
RealNameAttributeText::RealNameAttributeText(const Model* model,
|
||||||
@@ -981,8 +997,6 @@ RealNameAttributeText::SetSortFolderNamesFirst(bool enabled)
|
|||||||
|
|
||||||
|
|
||||||
#ifdef OWNER_GROUP_ATTRIBUTES
|
#ifdef OWNER_GROUP_ATTRIBUTES
|
||||||
|
|
||||||
|
|
||||||
OwnerAttributeText::OwnerAttributeText(const Model* model,
|
OwnerAttributeText::OwnerAttributeText(const Model* model,
|
||||||
const BColumn* column)
|
const BColumn* column)
|
||||||
:
|
:
|
||||||
@@ -1035,11 +1049,12 @@ GroupAttributeText::ReadValue(BString* result)
|
|||||||
|
|
||||||
fValueDirty = false;
|
fValueDirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // OWNER_GROUP_ATTRIBUTES
|
#endif // OWNER_GROUP_ATTRIBUTES
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - ModeAttributeText
|
||||||
|
|
||||||
|
|
||||||
ModeAttributeText::ModeAttributeText(const Model* model,
|
ModeAttributeText::ModeAttributeText(const Model* model,
|
||||||
const BColumn* column)
|
const BColumn* column)
|
||||||
:
|
:
|
||||||
@@ -1080,7 +1095,7 @@ ModeAttributeText::ReadValue(BString* result)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - SizeAttributeText
|
||||||
|
|
||||||
|
|
||||||
SizeAttributeText::SizeAttributeText(const Model* model,
|
SizeAttributeText::SizeAttributeText(const Model* model,
|
||||||
@@ -1137,7 +1152,7 @@ SizeAttributeText::PreferredWidth(const BPoseView* pose) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - time related
|
// #pragma mark - TimeAttributeText
|
||||||
|
|
||||||
|
|
||||||
TimeAttributeText::TimeAttributeText(const Model* model,
|
TimeAttributeText::TimeAttributeText(const Model* model,
|
||||||
@@ -1176,6 +1191,9 @@ TimeAttributeText::CheckSettingsChanged(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - CreationTimeAttributeText
|
||||||
|
|
||||||
|
|
||||||
CreationTimeAttributeText::CreationTimeAttributeText(const Model* model,
|
CreationTimeAttributeText::CreationTimeAttributeText(const Model* model,
|
||||||
const BColumn* column)
|
const BColumn* column)
|
||||||
:
|
:
|
||||||
@@ -1193,6 +1211,9 @@ CreationTimeAttributeText::ReadValue()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - ModificationTimeAttributeText
|
||||||
|
|
||||||
|
|
||||||
ModificationTimeAttributeText::ModificationTimeAttributeText(
|
ModificationTimeAttributeText::ModificationTimeAttributeText(
|
||||||
const Model* model, const BColumn* column)
|
const Model* model, const BColumn* column)
|
||||||
:
|
:
|
||||||
@@ -1210,7 +1231,7 @@ ModificationTimeAttributeText::ReadValue()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - GenericAttributeText
|
||||||
|
|
||||||
|
|
||||||
GenericAttributeText::GenericAttributeText(const Model* model,
|
GenericAttributeText::GenericAttributeText(const Model* model,
|
||||||
@@ -1326,11 +1347,13 @@ GenericAttributeText::ReadValue(BString* result)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
TRESPASS();
|
TRESPASS();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// handle the standard data types
|
// handle the standard data types
|
||||||
switch (info.size) {
|
switch (info.size) {
|
||||||
case sizeof(char): // Takes care of bool too.
|
case sizeof(char):
|
||||||
|
// Takes care of bool too.
|
||||||
fValueIsDefined = true;
|
fValueIsDefined = true;
|
||||||
fValue.int8t = tmp.int8t;
|
fValue.int8t = tmp.int8t;
|
||||||
break;
|
break;
|
||||||
@@ -1340,18 +1363,21 @@ GenericAttributeText::ReadValue(BString* result)
|
|||||||
fValue.int16t = tmp.int16t;
|
fValue.int16t = tmp.int16t;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case sizeof(int32): // Takes care of time_t too.
|
case sizeof(int32):
|
||||||
|
// Takes care of time_t too.
|
||||||
fValueIsDefined = true;
|
fValueIsDefined = true;
|
||||||
fValue.int32t = tmp.int32t;
|
fValue.int32t = tmp.int32t;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case sizeof(int64): // Takes care of off_t too.
|
case sizeof(int64):
|
||||||
|
// Takes care of off_t too.
|
||||||
fValueIsDefined = true;
|
fValueIsDefined = true;
|
||||||
fValue.int64t = tmp.int64t;
|
fValue.int64t = tmp.int64t;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
TRESPASS();
|
TRESPASS();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1528,9 +1554,10 @@ GenericAttributeText::Compare(WidgetAttributeText& attr, BPoseView*)
|
|||||||
if (compareTo->fValueDirty)
|
if (compareTo->fValueDirty)
|
||||||
compareTo->ReadValue(&compareTo->fFullValueText);
|
compareTo->ReadValue(&compareTo->fFullValueText);
|
||||||
|
|
||||||
// Sort undefined values last, regardless of the other value:
|
// sort undefined values last, regardless of the other value
|
||||||
if (!fValueIsDefined)
|
if (!fValueIsDefined)
|
||||||
return compareTo->fValueIsDefined ? 1 : 0;
|
return compareTo->fValueIsDefined ? 1 : 0;
|
||||||
|
|
||||||
if (!compareTo->fValueIsDefined)
|
if (!compareTo->fValueIsDefined)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -1598,6 +1625,7 @@ GenericAttributeText::Compare(WidgetAttributeText& attr, BPoseView*)
|
|||||||
return fValue.uint64t >= compareTo->fValue.uint64t ?
|
return fValue.uint64t >= compareTo->fValue.uint64t ?
|
||||||
(fValue.uint64t == compareTo->fValue.uint64t ? 0 : 1) : -1;
|
(fValue.uint64t == compareTo->fValue.uint64t ? 0 : 1) : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1794,7 +1822,6 @@ GenericAttributeText::CommitEditedTextFlavor(BTextView* textView)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
TRESPASS();
|
TRESPASS();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size = fModel->WriteAttr(columnName, type, 0, &tmp, scalarSize);
|
size = fModel->WriteAttr(columnName, type, 0, &tmp, scalarSize);
|
||||||
@@ -1819,7 +1846,7 @@ GenericAttributeText::CommitEditedTextFlavor(BTextView* textView)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - display as: duration
|
// #pragma mark - DurationAttributeText (display as: duration)
|
||||||
|
|
||||||
|
|
||||||
DurationAttributeText::DurationAttributeText(const Model* model,
|
DurationAttributeText::DurationAttributeText(const Model* model,
|
||||||
@@ -1901,7 +1928,7 @@ DurationAttributeText::FitValue(BString* result, const BPoseView* view)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - display as: checkbox
|
// #pragma mark - CheckboxAttributeText (display as: checkbox)
|
||||||
|
|
||||||
|
|
||||||
CheckboxAttributeText::CheckboxAttributeText(const Model* model,
|
CheckboxAttributeText::CheckboxAttributeText(const Model* model,
|
||||||
@@ -1981,7 +2008,7 @@ CheckboxAttributeText::FitValue(BString* result, const BPoseView* view)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - display as: rating
|
// #pragma mark - RatingAttributeText (display as: rating)
|
||||||
|
|
||||||
|
|
||||||
RatingAttributeText::RatingAttributeText(const Model* model,
|
RatingAttributeText::RatingAttributeText(const Model* model,
|
||||||
@@ -2052,7 +2079,7 @@ RatingAttributeText::FitValue(BString* result, const BPoseView* view)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark - OpenWithRelationAttributeText
|
||||||
|
|
||||||
|
|
||||||
OpenWithRelationAttributeText::OpenWithRelationAttributeText(const Model* model,
|
OpenWithRelationAttributeText::OpenWithRelationAttributeText(const Model* model,
|
||||||
@@ -2110,6 +2137,9 @@ OpenWithRelationAttributeText::FitValue(BString* result, const BPoseView* view)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - VersionAttributeText
|
||||||
|
|
||||||
|
|
||||||
VersionAttributeText::VersionAttributeText(const Model* model,
|
VersionAttributeText::VersionAttributeText(const Model* model,
|
||||||
const BColumn* column, bool app)
|
const BColumn* column, bool app)
|
||||||
:
|
:
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ of Be Incorporated in the United States and other countries. Other brand product
|
|||||||
names are registered trademarks or trademarks of their respective holders.
|
names are registered trademarks or trademarks of their respective holders.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
*/
|
*/
|
||||||
#ifndef __TEXT_WIDGET_ATTRIBUTE__
|
#ifndef _TEXT_WIDGET_ATTRIBUTE_H
|
||||||
#define __TEXT_WIDGET_ATTRIBUTE__
|
#define _TEXT_WIDGET_ATTRIBUTE_H
|
||||||
|
|
||||||
|
|
||||||
#include <String.h>
|
#include <String.h>
|
||||||
@@ -56,83 +56,83 @@ class WidgetAttributeText {
|
|||||||
// corresponding text, fitted into a specified width using a given
|
// corresponding text, fitted into a specified width using a given
|
||||||
// view
|
// view
|
||||||
// It is being asked for the string value by the TextWidget object
|
// It is being asked for the string value by the TextWidget object
|
||||||
public:
|
public:
|
||||||
WidgetAttributeText(const Model*, const BColumn*);
|
WidgetAttributeText(const Model*, const BColumn*);
|
||||||
virtual ~WidgetAttributeText();
|
virtual ~WidgetAttributeText();
|
||||||
|
|
||||||
virtual bool CheckAttributeChanged() = 0;
|
virtual bool CheckAttributeChanged() = 0;
|
||||||
// returns true if attribute value changed
|
// returns true if attribute value changed
|
||||||
|
|
||||||
bool CheckViewChanged(const BPoseView*);
|
bool CheckViewChanged(const BPoseView*);
|
||||||
// returns true if fitted text changed, either because value
|
// returns true if fitted text changed, either because value
|
||||||
// changed or because width/view changed
|
// changed or because width/view changed
|
||||||
|
|
||||||
virtual bool CheckSettingsChanged();
|
virtual bool CheckSettingsChanged();
|
||||||
// override if the text rendering depends on a setting
|
// override if the text rendering depends on a setting
|
||||||
|
|
||||||
const char* FittingText(const BPoseView*);
|
const char* FittingText(const BPoseView*);
|
||||||
// returns text, recalculating if not yet calculated
|
// returns text, recalculating if not yet calculated
|
||||||
|
|
||||||
virtual int Compare(WidgetAttributeText&, BPoseView* view) = 0;
|
virtual int Compare(WidgetAttributeText&, BPoseView* view) = 0;
|
||||||
// override to define a compare of two different attributes for
|
// override to define a compare of two different attributes for
|
||||||
// sorting
|
// sorting
|
||||||
|
|
||||||
static WidgetAttributeText* NewWidgetText(const Model*,
|
static WidgetAttributeText* NewWidgetText(const Model*,
|
||||||
const BColumn*, const BPoseView*);
|
const BColumn*, const BPoseView*);
|
||||||
// WidgetAttributeText factory
|
// WidgetAttributeText factory
|
||||||
// call this to make the right WidgetAttributeText type for a
|
// call this to make the right WidgetAttributeText type for a
|
||||||
// given column
|
// given column
|
||||||
|
|
||||||
float Width(const BPoseView*);
|
float Width(const BPoseView*);
|
||||||
// respects the width of the corresponding column
|
// respects the width of the corresponding column
|
||||||
float CurrentWidth() const;
|
float CurrentWidth() const;
|
||||||
// return the item width we got during our last fitting attempt
|
// return the item width we got during our last fitting attempt
|
||||||
|
|
||||||
virtual void SetUpEditing(BTextView*);
|
virtual void SetUpEditing(BTextView*);
|
||||||
// set up the passed textView for the specifics of a given
|
// set up the passed textView for the specifics of a given
|
||||||
// attribute editing
|
// attribute editing
|
||||||
virtual bool CommitEditedText(BTextView*) = 0;
|
virtual bool CommitEditedText(BTextView*) = 0;
|
||||||
// return true if attribute actually changed
|
// return true if attribute actually changed
|
||||||
|
|
||||||
virtual float PreferredWidth(const BPoseView*) const = 0;
|
virtual float PreferredWidth(const BPoseView*) const = 0;
|
||||||
|
|
||||||
static status_t AttrAsString(const Model* model, BString* result,
|
static status_t AttrAsString(const Model* model, BString* result,
|
||||||
const char* attrName, int32 attrType, float width,
|
const char* attrName, int32 attrType, float width,
|
||||||
BView* view, int64* value = 0);
|
BView* view, int64* value = 0);
|
||||||
|
|
||||||
Model* TargetModel() const;
|
Model* TargetModel() const;
|
||||||
|
|
||||||
virtual bool IsEditable() const;
|
virtual bool IsEditable() const;
|
||||||
|
|
||||||
void SetDirty(bool);
|
void SetDirty(bool);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// generic fitting routines used by the different attributes
|
// generic fitting routines used by the different attributes
|
||||||
static float TruncString(BString* result, const char* src,
|
static float TruncString(BString* result, const char* src,
|
||||||
int32 length, const BPoseView*, float width,
|
int32 length, const BPoseView*, float width,
|
||||||
uint32 truncMode = B_TRUNCATE_MIDDLE);
|
uint32 truncMode = B_TRUNCATE_MIDDLE);
|
||||||
|
|
||||||
static float TruncTime(BString* result, int64 src,
|
static float TruncTime(BString* result, int64 src,
|
||||||
const BPoseView* view, float width);
|
const BPoseView* view, float width);
|
||||||
|
|
||||||
static float TruncFileSize(BString* result, int64 src,
|
static float TruncFileSize(BString* result, int64 src,
|
||||||
const BPoseView* view, float width);
|
const BPoseView* view, float width);
|
||||||
|
|
||||||
virtual void FitValue(BString* result, const BPoseView*) = 0;
|
virtual void FitValue(BString* result, const BPoseView*) = 0;
|
||||||
// override FitValue to do a specific text fitting for a given
|
// override FitValue to do a specific text fitting for a given
|
||||||
// attribute
|
// attribute
|
||||||
|
|
||||||
mutable Model* fModel;
|
mutable Model* fModel;
|
||||||
const BColumn* fColumn;
|
const BColumn* fColumn;
|
||||||
// TODO: make these int32 only
|
// TODO: make these int32 only
|
||||||
float fOldWidth;
|
float fOldWidth;
|
||||||
float fTruncatedWidth;
|
float fTruncatedWidth;
|
||||||
bool fDirty;
|
bool fDirty;
|
||||||
// if true, need to recalculate text next time we try to use it
|
// if true, need to recalculate text next time we try to use it
|
||||||
bool fValueIsDefined;
|
bool fValueIsDefined;
|
||||||
BString fText;
|
BString fText;
|
||||||
// holds the truncated text, fit to the parameters passed in
|
// holds the truncated text, fit to the parameters passed in
|
||||||
// in the last FittingText call
|
// in the last FittingText call
|
||||||
};
|
};
|
||||||
|
|
||||||
inline Model*
|
inline Model*
|
||||||
@@ -143,49 +143,50 @@ WidgetAttributeText::TargetModel() const
|
|||||||
|
|
||||||
|
|
||||||
class StringAttributeText : public WidgetAttributeText {
|
class StringAttributeText : public WidgetAttributeText {
|
||||||
public:
|
public:
|
||||||
StringAttributeText(const Model*, const BColumn*);
|
StringAttributeText(const Model*, const BColumn*);
|
||||||
|
|
||||||
virtual const char* ValueAsText(const BPoseView* view);
|
virtual const char* ValueAsText(const BPoseView* view);
|
||||||
// returns the untrucated text that corresponds to
|
// returns the untrucated text that corresponds to
|
||||||
// the attribute value
|
// the attribute value
|
||||||
|
|
||||||
virtual bool CheckAttributeChanged();
|
virtual bool CheckAttributeChanged();
|
||||||
|
|
||||||
virtual float PreferredWidth(const BPoseView*) const;
|
virtual float PreferredWidth(const BPoseView*) const;
|
||||||
|
|
||||||
virtual bool CommitEditedText(BTextView*);
|
virtual bool CommitEditedText(BTextView*);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool CommitEditedTextFlavor(BTextView*) { return false; }
|
virtual bool CommitEditedTextFlavor(BTextView*) { return false; }
|
||||||
|
|
||||||
virtual void FitValue(BString* result, const BPoseView*);
|
virtual void FitValue(BString* result, const BPoseView*);
|
||||||
virtual void ReadValue(BString* result) = 0;
|
virtual void ReadValue(BString* result) = 0;
|
||||||
|
|
||||||
virtual int Compare(WidgetAttributeText &, BPoseView* view);
|
virtual int Compare(WidgetAttributeText &, BPoseView* view);
|
||||||
|
|
||||||
BString fFullValueText;
|
BString fFullValueText;
|
||||||
bool fValueDirty;
|
bool fValueDirty;
|
||||||
// used for lazy read, managed by ReadValue
|
// used for lazy read, managed by ReadValue
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ScalarAttributeText : public WidgetAttributeText {
|
class ScalarAttributeText : public WidgetAttributeText {
|
||||||
public:
|
public:
|
||||||
ScalarAttributeText(const Model*, const BColumn*);
|
ScalarAttributeText(const Model*, const BColumn*);
|
||||||
int64 Value();
|
|
||||||
virtual bool CheckAttributeChanged();
|
|
||||||
|
|
||||||
virtual float PreferredWidth(const BPoseView*) const;
|
int64 Value();
|
||||||
|
virtual bool CheckAttributeChanged();
|
||||||
|
|
||||||
virtual bool CommitEditedText(BTextView*) { return false; }
|
virtual float PreferredWidth(const BPoseView*) const;
|
||||||
// return true if attribute actually changed
|
|
||||||
protected:
|
virtual bool CommitEditedText(BTextView*) { return false; }
|
||||||
virtual int64 ReadValue() = 0;
|
// return true if attribute actually changed
|
||||||
virtual int Compare(WidgetAttributeText&, BPoseView* view);
|
protected:
|
||||||
int64 fValue;
|
virtual int64 ReadValue() = 0;
|
||||||
bool fValueDirty;
|
virtual int Compare(WidgetAttributeText&, BPoseView* view);
|
||||||
// used for lazy read, managed by ReadValue
|
int64 fValue;
|
||||||
|
bool fValueDirty;
|
||||||
|
// used for lazy read, managed by ReadValue
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -211,184 +212,178 @@ union GenericValueStruct {
|
|||||||
//! Used for displaying mime extra attributes. Supports different formats.
|
//! Used for displaying mime extra attributes. Supports different formats.
|
||||||
class GenericAttributeText : public StringAttributeText {
|
class GenericAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
GenericAttributeText(const Model* model,
|
GenericAttributeText(const Model* model, const BColumn* column);
|
||||||
const BColumn* column);
|
|
||||||
|
|
||||||
virtual bool CheckAttributeChanged();
|
virtual bool CheckAttributeChanged();
|
||||||
virtual float PreferredWidth(const BPoseView* view) const;
|
virtual float PreferredWidth(const BPoseView* view) const;
|
||||||
|
|
||||||
virtual int Compare(WidgetAttributeText& other,
|
virtual int Compare(WidgetAttributeText& other, BPoseView* view);
|
||||||
BPoseView* view);
|
|
||||||
|
|
||||||
virtual void SetUpEditing(BTextView* view);
|
virtual void SetUpEditing(BTextView* view);
|
||||||
virtual bool CommitEditedText(BTextView* view);
|
virtual bool CommitEditedText(BTextView* view);
|
||||||
|
|
||||||
virtual const char* ValueAsText(const BPoseView* view);
|
virtual const char* ValueAsText(const BPoseView* view);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool CommitEditedTextFlavor(BTextView* view);
|
virtual bool CommitEditedTextFlavor(BTextView* view);
|
||||||
|
|
||||||
virtual void FitValue(BString* result,
|
virtual void FitValue(BString* result, const BPoseView* view);
|
||||||
const BPoseView* view);
|
virtual void ReadValue(BString* result);
|
||||||
virtual void ReadValue(BString* result);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// TODO: split this up into a scalar flavor and string flavor
|
// TODO: split this up into a scalar flavor and string flavor
|
||||||
// to save memory
|
// to save memory
|
||||||
GenericValueStruct fValue;
|
GenericValueStruct fValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//! Used for the display-as type "duration"
|
//! Used for the display-as type "duration"
|
||||||
class DurationAttributeText : public GenericAttributeText {
|
class DurationAttributeText : public GenericAttributeText {
|
||||||
public:
|
public:
|
||||||
DurationAttributeText(const Model* model,
|
DurationAttributeText(const Model* model, const BColumn* column);
|
||||||
const BColumn* column);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void FitValue(BString* result,
|
virtual void FitValue(BString* result, const BPoseView* view);
|
||||||
const BPoseView* view);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//! Used for the display-as type "checkbox"
|
//! Used for the display-as type "checkbox"
|
||||||
class CheckboxAttributeText : public GenericAttributeText {
|
class CheckboxAttributeText : public GenericAttributeText {
|
||||||
public:
|
public:
|
||||||
CheckboxAttributeText(const Model* model,
|
CheckboxAttributeText(const Model* model, const BColumn* column);
|
||||||
const BColumn* column);
|
|
||||||
|
|
||||||
virtual void SetUpEditing(BTextView* view);
|
virtual void SetUpEditing(BTextView* view);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void FitValue(BString* result,
|
virtual void FitValue(BString* result, const BPoseView* view);
|
||||||
const BPoseView* view);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BString fOnChar;
|
BString fOnChar;
|
||||||
BString fOffChar;
|
BString fOffChar;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//! Used for the display-as type "rating"
|
//! Used for the display-as type "rating"
|
||||||
class RatingAttributeText : public GenericAttributeText {
|
class RatingAttributeText : public GenericAttributeText {
|
||||||
public:
|
public:
|
||||||
RatingAttributeText(const Model* model,
|
RatingAttributeText(const Model* model, const BColumn* column);
|
||||||
const BColumn* column);
|
|
||||||
|
|
||||||
virtual void SetUpEditing(BTextView* view);
|
virtual void SetUpEditing(BTextView* view);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void FitValue(BString* result,
|
virtual void FitValue(BString* result, const BPoseView* view);
|
||||||
const BPoseView* view);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int32 fCount;
|
int32 fCount;
|
||||||
int32 fMax;
|
int32 fMax;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class TimeAttributeText : public ScalarAttributeText {
|
class TimeAttributeText : public ScalarAttributeText {
|
||||||
public:
|
public:
|
||||||
TimeAttributeText(const Model*, const BColumn*);
|
TimeAttributeText(const Model*, const BColumn*);
|
||||||
protected:
|
|
||||||
virtual float PreferredWidth(const BPoseView*) const;
|
|
||||||
virtual void FitValue(BString* result, const BPoseView*);
|
|
||||||
virtual bool CheckSettingsChanged();
|
|
||||||
|
|
||||||
TrackerSettings fSettings;
|
protected:
|
||||||
bool fLastClockIs24;
|
virtual float PreferredWidth(const BPoseView*) const;
|
||||||
DateOrder fLastDateOrder;
|
virtual void FitValue(BString* result, const BPoseView*);
|
||||||
FormatSeparator fLastTimeFormatSeparator;
|
virtual bool CheckSettingsChanged();
|
||||||
|
|
||||||
|
TrackerSettings fSettings;
|
||||||
|
bool fLastClockIs24;
|
||||||
|
DateOrder fLastDateOrder;
|
||||||
|
FormatSeparator fLastTimeFormatSeparator;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class PathAttributeText : public StringAttributeText {
|
class PathAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
PathAttributeText(const Model*, const BColumn*);
|
PathAttributeText(const Model*, const BColumn*);
|
||||||
protected:
|
|
||||||
virtual void ReadValue(BString* result);
|
protected:
|
||||||
|
virtual void ReadValue(BString* result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class OriginalPathAttributeText : public StringAttributeText {
|
class OriginalPathAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
OriginalPathAttributeText(const Model*, const BColumn*);
|
OriginalPathAttributeText(const Model*, const BColumn*);
|
||||||
protected:
|
|
||||||
virtual void ReadValue(BString* result);
|
protected:
|
||||||
|
virtual void ReadValue(BString* result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class KindAttributeText : public StringAttributeText {
|
class KindAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
KindAttributeText(const Model*, const BColumn*);
|
KindAttributeText(const Model*, const BColumn*);
|
||||||
protected:
|
|
||||||
virtual void ReadValue(BString* result);
|
protected:
|
||||||
|
virtual void ReadValue(BString* result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class NameAttributeText : public StringAttributeText {
|
class NameAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
NameAttributeText(const Model*, const BColumn*);
|
NameAttributeText(const Model*, const BColumn*);
|
||||||
virtual void SetUpEditing(BTextView*);
|
virtual void SetUpEditing(BTextView*);
|
||||||
virtual void FitValue(BString* result, const BPoseView*);
|
virtual void FitValue(BString* result, const BPoseView*);
|
||||||
virtual bool IsEditable() const;
|
virtual bool IsEditable() const;
|
||||||
|
|
||||||
static void SetSortFolderNamesFirst(bool);
|
static void SetSortFolderNamesFirst(bool);
|
||||||
protected:
|
|
||||||
virtual bool CommitEditedTextFlavor(BTextView*);
|
|
||||||
virtual int Compare(WidgetAttributeText&, BPoseView* view);
|
|
||||||
virtual void ReadValue(BString* result);
|
|
||||||
|
|
||||||
static bool sSortFolderNamesFirst;
|
protected:
|
||||||
|
virtual bool CommitEditedTextFlavor(BTextView*);
|
||||||
|
virtual int Compare(WidgetAttributeText&, BPoseView* view);
|
||||||
|
virtual void ReadValue(BString* result);
|
||||||
|
|
||||||
|
static bool sSortFolderNamesFirst;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class RealNameAttributeText : public StringAttributeText {
|
class RealNameAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
RealNameAttributeText(const Model*,
|
RealNameAttributeText(const Model*, const BColumn*);
|
||||||
const BColumn*);
|
|
||||||
virtual void SetUpEditing(BTextView*);
|
|
||||||
virtual void FitValue(BString* result, const BPoseView*);
|
|
||||||
|
|
||||||
static void SetSortFolderNamesFirst(bool);
|
virtual void SetUpEditing(BTextView*);
|
||||||
|
virtual void FitValue(BString* result, const BPoseView*);
|
||||||
|
|
||||||
|
static void SetSortFolderNamesFirst(bool);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool CommitEditedTextFlavor(BTextView*);
|
virtual bool CommitEditedTextFlavor(BTextView*);
|
||||||
virtual int Compare(WidgetAttributeText&, BPoseView* view);
|
virtual int Compare(WidgetAttributeText&, BPoseView* view);
|
||||||
virtual void ReadValue(BString* result);
|
virtual void ReadValue(BString* result);
|
||||||
|
|
||||||
static bool sSortFolderNamesFirst;
|
static bool sSortFolderNamesFirst;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#ifdef OWNER_GROUP_ATTRIBUTES
|
#ifdef OWNER_GROUP_ATTRIBUTES
|
||||||
|
|
||||||
class OwnerAttributeText : public StringAttributeText {
|
class OwnerAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
OwnerAttributeText(const Model*, const BColumn*);
|
OwnerAttributeText(const Model*, const BColumn*);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void ReadValue(BString* result);
|
virtual void ReadValue(BString* result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class GroupAttributeText : public StringAttributeText {
|
class GroupAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
GroupAttributeText(const Model*, const BColumn*);
|
GroupAttributeText(const Model*, const BColumn*);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void ReadValue(BString* result);
|
virtual void ReadValue(BString* result);
|
||||||
};
|
};
|
||||||
|
#endif // OWNER_GROUP_ATTRIBUTES
|
||||||
#endif // OWNER_GROUP_ATTRIBUTES
|
|
||||||
|
|
||||||
|
|
||||||
class ModeAttributeText : public StringAttributeText {
|
class ModeAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
ModeAttributeText(const Model*, const BColumn*);
|
ModeAttributeText(const Model*, const BColumn*);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void ReadValue(BString* result);
|
virtual void ReadValue(BString* result);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -396,77 +391,80 @@ const int64 kUnknownSize = -1;
|
|||||||
|
|
||||||
|
|
||||||
class SizeAttributeText : public ScalarAttributeText {
|
class SizeAttributeText : public ScalarAttributeText {
|
||||||
public:
|
public:
|
||||||
SizeAttributeText(const Model*, const BColumn*);
|
SizeAttributeText(const Model*, const BColumn*);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void FitValue(BString* result, const BPoseView*);
|
virtual void FitValue(BString* result, const BPoseView*);
|
||||||
virtual int64 ReadValue();
|
virtual int64 ReadValue();
|
||||||
virtual float PreferredWidth(const BPoseView*) const;
|
virtual float PreferredWidth(const BPoseView*) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class CreationTimeAttributeText : public TimeAttributeText {
|
class CreationTimeAttributeText : public TimeAttributeText {
|
||||||
public:
|
public:
|
||||||
CreationTimeAttributeText(const Model*, const BColumn*);
|
CreationTimeAttributeText(const Model*, const BColumn*);
|
||||||
protected:
|
|
||||||
virtual int64 ReadValue();
|
protected:
|
||||||
|
virtual int64 ReadValue();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ModificationTimeAttributeText : public TimeAttributeText {
|
class ModificationTimeAttributeText : public TimeAttributeText {
|
||||||
public:
|
public:
|
||||||
ModificationTimeAttributeText(const Model*, const BColumn*);
|
ModificationTimeAttributeText(const Model*, const BColumn*);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual int64 ReadValue();
|
virtual int64 ReadValue();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class OpenWithRelationAttributeText : public ScalarAttributeText {
|
class OpenWithRelationAttributeText : public ScalarAttributeText {
|
||||||
public:
|
public:
|
||||||
OpenWithRelationAttributeText(const Model*, const BColumn*,
|
OpenWithRelationAttributeText(const Model*, const BColumn*,
|
||||||
const BPoseView*);
|
const BPoseView*);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void FitValue(BString* result, const BPoseView*);
|
virtual void FitValue(BString* result, const BPoseView*);
|
||||||
virtual int64 ReadValue();
|
virtual int64 ReadValue();
|
||||||
virtual float PreferredWidth(const BPoseView*) const;
|
virtual float PreferredWidth(const BPoseView*) const;
|
||||||
|
|
||||||
const BPoseView* fPoseView;
|
const BPoseView* fPoseView;
|
||||||
BString fRelationText;
|
BString fRelationText;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class VersionAttributeText : public StringAttributeText {
|
class VersionAttributeText : public StringAttributeText {
|
||||||
public:
|
public:
|
||||||
VersionAttributeText(const Model*, const BColumn*, bool appVersion);
|
VersionAttributeText(const Model*, const BColumn*, bool appVersion);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void ReadValue(BString* result);
|
virtual void ReadValue(BString* result);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool fAppVersion;
|
bool fAppVersion;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class AppShortVersionAttributeText : public VersionAttributeText {
|
class AppShortVersionAttributeText : public VersionAttributeText {
|
||||||
public:
|
public:
|
||||||
AppShortVersionAttributeText(const Model* model,
|
AppShortVersionAttributeText(const Model* model,
|
||||||
const BColumn* column)
|
const BColumn* column)
|
||||||
: VersionAttributeText(model, column, true)
|
:
|
||||||
{
|
VersionAttributeText(model, column, true)
|
||||||
}
|
{
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class SystemShortVersionAttributeText : public VersionAttributeText {
|
class SystemShortVersionAttributeText : public VersionAttributeText {
|
||||||
public:
|
public:
|
||||||
SystemShortVersionAttributeText(const Model* model,
|
SystemShortVersionAttributeText(const Model* model,
|
||||||
const BColumn* column)
|
const BColumn* column)
|
||||||
: VersionAttributeText(model, column, false)
|
:
|
||||||
{
|
VersionAttributeText(model, column, false)
|
||||||
}
|
{
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace BPrivate
|
} // namespace BPrivate
|
||||||
@@ -477,4 +475,5 @@ extern status_t TimeFormat(BString &string, int32 index,
|
|||||||
|
|
||||||
using namespace BPrivate;
|
using namespace BPrivate;
|
||||||
|
|
||||||
#endif // __TEXT_WIDGET_ATTRIBUTE__
|
|
||||||
|
#endif // _TEXT_WIDGET_ATTRIBUTE_H
|
||||||
|
|||||||
Reference in New Issue
Block a user