diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-07-12 20:56:23 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@digia.com> | 2014-07-30 16:24:50 +0200 |
commit | c38af4e6bb51cfb1b52a38dea06a0a8a94db9545 (patch) | |
tree | 94a72a34389869cb90344737f5145edbb5c27867 /src/android | |
parent | 3dedf5ac37f5236aa1417bcd763e9583d8dad4b7 (diff) |
Android: extract ListView divider & selection
Change-Id: I2a4f72d94c4868f9db4b8066bbdadbe222d0da62
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Diffstat (limited to 'src/android')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java index ef6d20fc9a..b92d309dd6 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java +++ b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java @@ -1526,6 +1526,34 @@ public class ExtractStyle { jsonWriter.name("simple_spinner_item").value(extractItemStyle(android.R.layout.simple_spinner_item, "simple_spinner_item", -1)); jsonWriter.name("simple_spinner_dropdown_item").value(extractItemStyle(android.R.layout.simple_spinner_dropdown_item, "simple_spinner_dropdown_item",android.R.style.TextAppearance_Large)); jsonWriter.name("simple_dropdown_item_1line").value(extractItemStyle(android.R.layout.simple_dropdown_item_1line, "simple_dropdown_item_1line",android.R.style.TextAppearance_Large)); + if (Build.VERSION.SDK_INT > 10) { + Class<?> layoutClass = Class.forName("android.R$layout"); + int styleId = layoutClass.getDeclaredField("simple_selectable_list_item").getInt(null); + jsonWriter.name("simple_selectable_list_item").value(extractItemStyle(styleId, "simple_selectable_list_item",android.R.style.TextAppearance_Large)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + void extractListView(SimpleJsonWriter writer, String styleName, String qtClass) + { + JSONObject json = extractTextAppearanceInformations(styleName, qtClass, null, -1); + try { + Class<?> attrClass = Class.forName("android.R$attr"); + int styleId = attrClass.getDeclaredField(styleName).getInt(null); + + int[] styleAttrs = (int[]) styleableClass.getDeclaredField("ListView").get(null); + TypedArray a = m_theme.obtainStyledAttributes(null, styleAttrs, styleId, 0); + + Drawable divider = a.getDrawable(getField(styleableClass,"ListView_divider")); + if (divider != null) + json.put("ListView_divider", getDrawable(divider, styleName + "_ListView_divider")); + + json.put("ListView_dividerHeight", a.getDimensionPixelSize(getField(styleableClass, "ListView_dividerHeight"), 0)); + + a.recycle(); + writer.name(styleName).value(json); } catch (Exception e) { e.printStackTrace(); } @@ -1661,6 +1689,7 @@ public class ExtractStyle { extractCompoundButton(jsonWriter, "radioButtonStyle", "QRadioButton"); jsonWriter.name("textViewStyle").value(extractTextAppearanceInformations("textViewStyle", "QWidget", null, -1)); jsonWriter.name("scrollViewStyle").value(extractTextAppearanceInformations("scrollViewStyle", "QAbstractScrollArea", null, -1)); + extractListView(jsonWriter, "listViewStyle", "QListView"); extractItemsStyle(jsonWriter); extractCompoundButton(jsonWriter, "buttonStyleToggle", null); if (Build.VERSION.SDK_INT > 10) { |