diff --git a/src/preferences/backgrounds/BackgroundImage.cpp b/src/preferences/backgrounds/BackgroundImage.cpp index d6c34a648c..a4b41ec0c2 100644 --- a/src/preferences/backgrounds/BackgroundImage.cpp +++ b/src/preferences/backgrounds/BackgroundImage.cpp @@ -561,7 +561,17 @@ Image::Image(BPath path) fBitmap(NULL), fPath(path) { - name = path.Leaf(); + const int32 kMaxWidth = 40; + fName = path.Leaf(); + int extra = fName.Length() - kMaxWidth; + if (extra > 0) { + int offset = fName.FindLast('.'); + if (offset > 0) { + offset++; + fName.Truncate(offset - extra) << B_UTF8_ELLIPSIS; + fName.Append(path.Leaf() + offset); + } + } } diff --git a/src/preferences/backgrounds/BackgroundImage.h b/src/preferences/backgrounds/BackgroundImage.h index aa11a711df..1e4ca03c80 100644 --- a/src/preferences/backgrounds/BackgroundImage.h +++ b/src/preferences/backgrounds/BackgroundImage.h @@ -165,13 +165,13 @@ public: ~Image(); void UnloadBitmap(); - const char* GetName() {return name.String();} + const char* GetName() { return fName.String(); } BBitmap* GetBitmap(); - BPath GetPath() {return fPath;} + BPath GetPath() { return fPath; } private: BBitmap* fBitmap; BPath fPath; - BString name; + BString fName; }; #endif