summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2014-11-06 20:02:22 +0200
committerTor Lillqvist <tml@collabora.com>2014-11-07 18:44:28 +0200
commitcd56935a177b7d9fd10434afe220fe6c10820f82 (patch)
tree84a0170914176fae3bf6a381d76925d11b318cde /sc/source/ui
parentb6a41916f351fd2d6c8934a9f35ec72159ee5009 (diff)
More work on OpenCL whitelist/blacklist UI
Change-Id: I526d6652a956be3031ed46ab15eeb333d3f40a7c
Diffstat (limited to 'sc/source/ui')
-rw-r--r--sc/source/ui/optdlg/calcoptionsdlg.cxx80
-rw-r--r--sc/source/ui/optdlg/calcoptionsdlg.hxx11
2 files changed, 74 insertions, 17 deletions
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index 286cc7fffe1f..9551f1684093 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -143,8 +143,13 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi
get(mpBtnFalse, "false");
get(mpSpinButton, "spinbutton");
get(mpEditField, "entry");
- get(mpListGrid, "listgrid");
- get(mpListBox, "listbox");
+ get(mpOpenCLWhiteAndBlackListGrid, "listgrid");
+ get(mpOpenCLWhiteAndBlackListBox, "listbox");
+ get(mpOS, "os");
+ get(mpOSVersion, "osversion");
+ get(mpPlatformVendor, "platformvendor");
+ get(mpDevice, "opencldevice");
+ get(mpDriverVersion, "opencldriverversion");
get(mpListEditButton, "listbox-edit");
get(mpListNewButton, "listbox-new");
get(mpListDeleteButton, "listbox-delete");
@@ -158,8 +163,8 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi
mpSpinButton->SetModifyHdl(LINK(this, ScCalcOptionsDialog, NumModifiedHdl));
mpEditField->SetModifyHdl(LINK(this, ScCalcOptionsDialog, EditModifiedHdl));
- mpListBox->set_height_request(4* mpListBox->GetTextHeight());
- mpListBox->SetStyle(mpListBox->GetStyle() | WB_CLIPCHILDREN | WB_FORCE_MAKEVISIBLE);
+ mpOpenCLWhiteAndBlackListBox->set_height_request(4* mpOpenCLWhiteAndBlackListBox->GetTextHeight());
+ mpOpenCLWhiteAndBlackListBox->SetStyle(mpOpenCLWhiteAndBlackListBox->GetStyle() | WB_CLIPCHILDREN | WB_FORCE_MAKEVISIBLE);
mpOpenclInfoList->set_height_request(4* mpOpenclInfoList->GetTextHeight());
mpOpenclInfoList->SetStyle(mpOpenclInfoList->GetStyle() | WB_CLIPCHILDREN | WB_FORCE_MAKEVISIBLE);
@@ -211,6 +216,9 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi
mpLbSettings->SetSelectHdl(aLink);
mpLbOptionEdit->SetSelectHdl(aLink);
+ aLink = LINK(this, ScCalcOptionsDialog, OpenCLWhiteAndBlackListSelHdl);
+ mpOpenCLWhiteAndBlackListBox->SetSelectHdl(aLink);
+
aLink = LINK(this, ScCalcOptionsDialog, BtnToggleHdl);
mpBtnTrue->SetToggleHdl(aLink); // Set handler only to the 'True' button.
@@ -325,14 +333,19 @@ void ScCalcOptionsDialog::fillOpenCLList()
namespace {
-void fillListBox(ListBox* pListBox, const std::set<OUString>& rSet)
+void fillListBox(ListBox* pListBox, const std::set<ScCalcConfig::OpenCLImplementationMatcher>& rSet)
{
pListBox->SetUpdateMode(false);
pListBox->Clear();
for (auto i = rSet.cbegin(); i != rSet.cend(); ++i)
{
- pListBox->InsertEntry(*i, LISTBOX_APPEND);
+ pListBox->InsertEntry((*i).maOS + " " +
+ (*i).maOSVersion + " " +
+ (*i).maPlatformVendor + " " +
+ (*i).maDevice + " " +
+ (*i).maDriverVersion,
+ LISTBOX_APPEND);
}
pListBox->SetUpdateMode(true);
@@ -405,7 +418,7 @@ void ScCalcOptionsDialog::SelectionChanged()
mpBtnFalse->Hide();
mpSpinButton->Hide();
mpEditField->Hide();
- mpListGrid->Hide();
+ mpOpenCLWhiteAndBlackListGrid->Hide();
mpLbOptionEdit->Show();
mpOpenclInfoList->GetParent()->Hide();
@@ -440,7 +453,7 @@ void ScCalcOptionsDialog::SelectionChanged()
mpBtnFalse->Hide();
mpSpinButton->Hide();
mpEditField->Hide();
- mpListGrid->Hide();
+ mpOpenCLWhiteAndBlackListGrid->Hide();
mpLbOptionEdit->Show();
mpOpenclInfoList->GetParent()->Hide();
@@ -478,7 +491,7 @@ void ScCalcOptionsDialog::SelectionChanged()
mpBtnFalse->Show();
mpSpinButton->Hide();
mpEditField->Hide();
- mpListGrid->Hide();
+ mpOpenCLWhiteAndBlackListGrid->Hide();
bool bValue = false;
bool bEnable = true;
@@ -555,7 +568,7 @@ void ScCalcOptionsDialog::SelectionChanged()
mpBtnFalse->Hide();
mpSpinButton->Show();
mpEditField->Hide();
- mpListGrid->Hide();
+ mpOpenCLWhiteAndBlackListGrid->Hide();
mpOpenclInfoList->GetParent()->Hide();
mpFtAnnotation->SetText(maDescOpenCLMinimumFormulaSize);
mpSpinButton->SetValue(nValue);
@@ -572,7 +585,7 @@ void ScCalcOptionsDialog::SelectionChanged()
mpBtnFalse->Hide();
mpSpinButton->Hide();
mpEditField->Show();
- mpListGrid->Hide();
+ mpOpenCLWhiteAndBlackListGrid->Hide();
mpOpenclInfoList->GetParent()->Hide();
mpFtAnnotation->SetText(maDescOpenCLSubsetOpCodes);
mpEditField->SetText(sValue);
@@ -583,23 +596,22 @@ void ScCalcOptionsDialog::SelectionChanged()
case CALC_OPTION_OPENCL_WHITELIST:
case CALC_OPTION_OPENCL_BLACKLIST:
{
- // SAL _DEBUG(__FILE__ ":" << __LINE__ << ": " << maConfig);
mpLbOptionEdit->Hide();
mpBtnTrue->Hide();
mpBtnFalse->Hide();
mpSpinButton->Hide();
mpEditField->Hide();
- mpListGrid->Show();
+ mpOpenCLWhiteAndBlackListGrid->Show();
mpOpenclInfoList->GetParent()->Hide();
if ( nSelectedPos == CALC_OPTION_OPENCL_WHITELIST )
{
mpFtAnnotation->SetText(maDescOpenCLWhiteList);
- fillListBox(mpListBox, maConfig.maOpenCLWhiteList);
+ fillListBox(mpOpenCLWhiteAndBlackListBox, maConfig.maOpenCLWhiteList);
}
else
{
mpFtAnnotation->SetText(maDescOpenCLBlackList);
- fillListBox(mpListBox, maConfig.maOpenCLBlackList);
+ fillListBox(mpOpenCLWhiteAndBlackListBox, maConfig.maOpenCLBlackList);
}
}
break;
@@ -751,6 +763,10 @@ void ScCalcOptionsDialog::EditFieldValueChanged()
maConfig.maOpenCLSubsetOpCodes = ScStringToOpCodeSet(sVal);
}
+void ScCalcOptionsDialog::WhiteAndBlackListSelectionChanged()
+{
+}
+
OUString ScCalcOptionsDialog::toString(formula::FormulaGrammar::AddressConvention eConv) const
{
switch (eConv)
@@ -834,4 +850,38 @@ IMPL_LINK_NOARG(ScCalcOptionsDialog, EditModifiedHdl)
return 0;
}
+namespace {
+
+template <class T>
+typename T::iterator nth(T container, int n)
+{
+ auto i = container.begin();
+ while (n && i != container.end())
+ {
+ ++i;
+ --n;
+ }
+
+ return i;
+}
+
+} // anonymous namespace
+
+IMPL_LINK(ScCalcOptionsDialog, OpenCLWhiteAndBlackListSelHdl, Control*, )
+{
+ // We know this is called for the mpOpenCLWhiteAndBlackListBox
+
+ std::set<ScCalcConfig::OpenCLImplementationMatcher>
+ &m(mpLbSettings->GetSelectEntryPos() == CALC_OPTION_OPENCL_WHITELIST ? maConfig.maOpenCLWhiteList : maConfig.maOpenCLBlackList);
+ sal_uLong n(mpOpenCLWhiteAndBlackListBox->GetSelectEntryPos());
+
+ mpOS->SetText(nth(m, n)->maOS);
+ mpOSVersion->SetText(nth(m, n)->maOSVersion);
+ mpPlatformVendor->SetText(nth(m, n)->maPlatformVendor);
+ mpDevice->SetText(nth(m, n)->maDevice);
+ mpDriverVersion->SetText(nth(m, n)->maDriverVersion);
+
+ return 0;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx b/sc/source/ui/optdlg/calcoptionsdlg.hxx
index 860f943ce139..a6ad5cd61835 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.hxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx
@@ -40,6 +40,7 @@ public:
DECL_LINK( DeviceSelHdl, void* );
DECL_LINK( NumModifiedHdl, void * );
DECL_LINK( EditModifiedHdl, void * );
+ DECL_LINK( OpenCLWhiteAndBlackListSelHdl, Control* );
const ScCalcConfig& GetConfig() const { return maConfig;}
@@ -52,6 +53,7 @@ private:
void SelectedDeviceChanged();
void SpinButtonValueChanged();
void EditFieldValueChanged();
+ void WhiteAndBlackListSelectionChanged();
#if HAVE_FEATURE_OPENCL
void fillOpenCLList();
#endif
@@ -74,8 +76,13 @@ private:
RadioButton* mpBtnFalse;
NumericField* mpSpinButton;
Edit* mpEditField;
- VclGrid* mpListGrid;
- ListBox* mpListBox;
+ VclGrid* mpOpenCLWhiteAndBlackListGrid;
+ ListBox* mpOpenCLWhiteAndBlackListBox;
+ Edit* mpOS;
+ Edit* mpOSVersion;
+ Edit* mpPlatformVendor;
+ Edit* mpDevice;
+ Edit* mpDriverVersion;
PushButton* mpListEditButton;
PushButton* mpListNewButton;
PushButton* mpListDeleteButton;