From b4fdcd5e54b23457ac79118fd629d2ac4c3a8cdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Buczkowski?= Date: Sun, 13 Jan 2013 20:49:44 +0100 Subject: [PATCH] Truncate Background image name to avoid layout problem Fixes #7406 Signed-off-by: Siarzhuk Zharski --- src/preferences/backgrounds/BackgroundImage.cpp | 12 +++++++++++- src/preferences/backgrounds/BackgroundImage.h | 6 +++--- 2 files changed, 14 insertions(+), 4 deletions(-) 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