summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-11-27 15:42:12 +0000
committerCaolán McNamara <caolanm@redhat.com>2012-11-27 15:45:03 +0000
commit6e1fba8a7262325eb7adf8f90c0f53359ae3e555 (patch)
treedbeaa6d860fcaf9c3bd9198fe0d02e5e0c2e91d5 /vcl
parent79c1b16a96a65afe444c82217b09006d82cc1fb4 (diff)
try and make error message a little more useful
Change-Id: I20070965dbf2632461fc74cc8a9795c7ddded269
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/vcl/builder.hxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/vcl/inc/vcl/builder.hxx b/vcl/inc/vcl/builder.hxx
index cbda844bee2b..82bd805a2661 100644
--- a/vcl/inc/vcl/builder.hxx
+++ b/vcl/inc/vcl/builder.hxx
@@ -10,6 +10,7 @@
#ifndef _VCLBUILDER_HXX
#define _VCLBUILDER_HXX
+#include <typeinfo>
#include <vcl/dllapi.h>
#include <vcl/window.hxx>
#include <xmlreader/xmlreader.hxx>
@@ -150,6 +151,9 @@ public:
template <typename T> T* get(T*& ret, OString sID)
{
Window *w = get_by_name(sID);
+ SAL_WARN_IF(!w, "vcl.layout", "widget " << sID.getStr() << " not found in .ui");
+ SAL_WARN_IF(!dynamic_cast<T*>(w),
+ "vcl.layout", "widget " << sID.getStr() << " needs to have type " << typeid(T).name());
assert(w && dynamic_cast<T*>(w));
ret = static_cast<T*>(w);
return ret;
@@ -158,6 +162,8 @@ public:
template <typename T /*=Window if we had c++11*/> T* get(OString sID)
{
Window *w = get_by_name(sID);
+ SAL_WARN_IF(w && !dynamic_cast<T*>(w),
+ "vcl.layout", "widget " << sID.getStr() << " needs to have type " << typeid(T).name());
assert(!w || dynamic_cast<T*>(w));
return static_cast<T*>(w);
}