sc/source/ui/optdlg/calcoptionsdlg.cxx            |   40 ++++++++++++++++++----
 sc/source/ui/optdlg/calcoptionsdlg.hxx            |    2 +
 sc/uiconfig/scalc/ui/formulacalculationoptions.ui |   12 ++++++
 3 files changed, 48 insertions(+), 6 deletions(-)

New commits:
commit 3750977ceff4bd097a2b96ce610d2e94bf33786b
Author: Markus Mohrhard <markus.mohrh...@googlemail.com>
Date:   Mon Sep 16 15:14:28 2013 +0200

    select the correct entry when opening the dialog
    
    Change-Id: Ib1f418e9f05ce2f57029e51ab6dfcd139d6f3f6d

diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx 
b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index fdf190b..9607fb6 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -211,12 +211,18 @@ void ScCalcOptionsDialog::fillOpenclList()
         for(std::vector<sc::OpenclDeviceInfo>::iterator
                 itr = it->maDevices.begin(), itrEnd = it->maDevices.end(); itr 
!= itrEnd; ++itr)
         {
-            SvTreeListEntry* pEntry = 
mpOpenclInfoList->InsertEntry(it->maVendor + " " + itr->maName);
+            OUString aDeviceId = it->maVendor + " " + itr->maName;
+            SvTreeListEntry* pEntry = mpOpenclInfoList->InsertEntry(aDeviceId);
+            if(aDeviceId == aStoredDevice)
+            {
+                mpOpenclInfoList->GetModel()->GetView(0)->Select(pEntry);
+            }
             pEntry->SetUserData(&(*itr));
         }
     }
 
     mpOpenclInfoList->SetUpdateMode(true);
+    SelectedDeviceChanged();
 }
 
 #endif
@@ -371,6 +377,9 @@ void ScCalcOptionsDialog::SelectedDeviceChanged()
 {
 #if HAVE_FEATURE_OPENCL
     SvTreeListEntry* pEntry = 
mpOpenclInfoList->GetModel()->GetView(0)->FirstSelected();
+    if(!pEntry)
+        return;
+
     sc::OpenclDeviceInfo* pInfo = 
reinterpret_cast<sc::OpenclDeviceInfo*>(pEntry->GetUserData());
     if(pInfo)
     {
commit 46fb39105cbe48497641d834a9d4370679afedf9
Author: Markus Mohrhard <markus.mohrh...@googlemail.com>
Date:   Mon Sep 16 14:53:15 2013 +0200

    add the software interpreter to the list
    
    Change-Id: I1462b6321a195a6863746ce296575b64b140e0ec

diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx 
b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index 6dd78fe..fdf190b 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -137,6 +137,7 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(Window* pParent, 
const ScCalcConfig& rC
     maDescEmptyStringAsZero = get<Window>("empty_str_as_zero_desc")->GetText();
     maCaptionOpenCLEnabled = get<Window>("opencl_enabled")->GetText();
     maDescOpenCLEnabled = get<Window>("opencl_enabled_desc")->GetText();
+    maSoftware = get<Window>("software")->GetText();
 
     mpLbSettings->set_height_request(8 * mpLbSettings->GetTextHeight());
     mpLbSettings->SetStyle(mpLbSettings->GetStyle() | WB_CLIPCHILDREN | 
WB_FORCE_MAKEVISIBLE);
@@ -199,6 +200,10 @@ void ScCalcOptionsDialog::fillOpenclList()
 {
     mpOpenclInfoList->SetUpdateMode(false);
     mpOpenclInfoList->Clear();
+    mpOpenclInfoList->InsertEntry(maSoftware);
+
+    OUString aStoredDevice = maConfig.maOpenCLDevice;
+
     sc::FormulaGroupInterpreter::fillOpenCLInfo(maPlatformInfo);
     for(std::vector<sc::OpenclPlatformInfo>::iterator it = 
maPlatformInfo.begin(),
             itEnd = maPlatformInfo.end(); it != itEnd; ++it)
@@ -367,11 +372,25 @@ void ScCalcOptionsDialog::SelectedDeviceChanged()
 #if HAVE_FEATURE_OPENCL
     SvTreeListEntry* pEntry = 
mpOpenclInfoList->GetModel()->GetView(0)->FirstSelected();
     sc::OpenclDeviceInfo* pInfo = 
reinterpret_cast<sc::OpenclDeviceInfo*>(pEntry->GetUserData());
-    assert(pInfo);
-    mpFtFrequency->SetText(OUString::number(pInfo->mnFrequency));
-    mpFtComputeUnits->SetText(OUString::number(pInfo->mnComputeUnits));
-    mpFtMemory->SetText(OUString::number(pInfo->mnMemory/1024/1024));
-    maConfig.maOpenCLDevice = 
dynamic_cast<SvLBoxString*>(pEntry->GetItem(1))->GetText();
+    if(pInfo)
+    {
+        mpFtFrequency->SetText(OUString::number(pInfo->mnFrequency));
+        mpFtComputeUnits->SetText(OUString::number(pInfo->mnComputeUnits));
+        mpFtMemory->SetText(OUString::number(pInfo->mnMemory/1024/1024));
+    }
+    else
+    {
+        mpFtFrequency->SetText(OUString());
+        mpFtComputeUnits->SetText(OUString());
+        mpFtMemory->SetText(OUString());
+    }
+
+    OUString aDevice = 
dynamic_cast<SvLBoxString*>(pEntry->GetItem(1))->GetText();
+    // use english string for configuration
+    if(aDevice == maSoftware)
+        aDevice = "Software";
+
+    maConfig.maOpenCLDevice = aDevice;
 #endif
 }
 
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx 
b/sc/source/ui/optdlg/calcoptionsdlg.hxx
index 3d6b755..633c475 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.hxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx
@@ -86,6 +86,8 @@ private:
     OUString maCaptionOpenCLEnabled;
     OUString maDescOpenCLEnabled;
 
+    OUString maSoftware;
+
     ScCalcConfig maConfig;
 #if HAVE_FEATURE_OPENCL
     std::vector<sc::OpenclPlatformInfo> maPlatformInfo;
diff --git a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui 
b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
index c5bd7dc..895f8ee 100644
--- a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
+++ b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
@@ -464,6 +464,18 @@
                 <property name="height">1</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkLabel" id="software">
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Software</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">11</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to