From c58ef7f10839d78859c470c160fe20ae2d49e6ab Mon Sep 17 00:00:00 2001 From: JBurant Date: Tue, 5 Apr 2016 20:47:12 +0200 Subject: tdf#90336, make it visible in options, if openCL will be used I tried to hide the black and white list settings and to add the info, whether OpenCL will be used. Change-Id: Ida7d34078bdb6fc2597376a61138cf9ec0c8eeaa Reviewed-on: https://gerrit.libreoffice.org/23847 Tested-by: Jenkins Reviewed-by: Michael Meeks --- cui/source/options/optopencl.cxx | 311 ++------------------------------------- 1 file changed, 11 insertions(+), 300 deletions(-) (limited to 'cui/source/options/optopencl.cxx') diff --git a/cui/source/options/optopencl.cxx b/cui/source/options/optopencl.cxx index e536445c7b6b..3fd584880a51 100644 --- a/cui/source/options/optopencl.cxx +++ b/cui/source/options/optopencl.cxx @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include "optHeaderTabListbox.hxx" @@ -46,64 +47,20 @@ SvxOpenCLTabPage::SvxOpenCLTabPage(vcl::Window* pParent, const SfxItemSet& rSet) { get(mpUseSwInterpreter, "useswinterpreter"); get(mpUseOpenCL, "useopencl"); - get(mpBlackListTable, "blacklist"); - get(mpBlackListFrame,"blacklistframe"); - get(mpBlackListEdit, "bledit"); - get(mpBlackListAdd, "bladd"); - get(mpBlackListDelete, "bldelete"); - get(mpWhiteListTable, "whitelist"); - get(mpWhiteListFrame,"whitelistframe"); - get(mpWhiteListEdit, "wledit"); - get(mpWhiteListAdd, "wladd"); - get(mpWhiteListDelete, "wldelete"); - get(mpOS,"os"); - get(mpOSVersion,"osversion"); - get(mpDevice,"device"); - get(mpVendor,"vendor"); - get(mpDrvVersion,"driverversion"); + get(clUsed,"openclused"); mpUseSwInterpreter->Check(officecfg::Office::Common::Misc::UseSwInterpreter::get()); mpUseOpenCL->Check(maConfig.mbUseOpenCL); mpUseOpenCL->SetClickHdl(LINK(this, SvxOpenCLTabPage, EnableOpenCLHdl)); - mpBlackListEdit->SetClickHdl(LINK(this, SvxOpenCLTabPage, BlackListEditHdl)); - mpBlackListAdd->SetClickHdl(LINK(this, SvxOpenCLTabPage, BlackListAddHdl)); - mpBlackListDelete->SetClickHdl(LINK(this, SvxOpenCLTabPage, BlackListDeleteHdl)); - - mpWhiteListEdit->SetClickHdl(LINK(this, SvxOpenCLTabPage, WhiteListEditHdl)); - mpWhiteListAdd->SetClickHdl(LINK(this, SvxOpenCLTabPage, WhiteListAddHdl)); - mpWhiteListDelete->SetClickHdl(LINK(this, SvxOpenCLTabPage, WhiteListDeleteHdl)); - - WinBits nBits = WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP; - mpBlackList = VclPtr::Create( *mpBlackListTable, nBits ); - mpWhiteList = VclPtr::Create( *mpWhiteListTable, nBits ); - - HeaderBar &rBlBar = mpBlackList->GetTheHeaderBar(); - HeaderBar &rWiBar = mpWhiteList->GetTheHeaderBar(); - - HeaderBarItemBits nHBits = HeaderBarItemBits::LEFT | HeaderBarItemBits::VCENTER | HeaderBarItemBits::CLICKABLE; - rBlBar.InsertItem( 1, mpOS->GetText(), 0, nHBits ); - rBlBar.InsertItem( 2, mpOSVersion->GetText(), 0, nHBits ); - rBlBar.InsertItem( 3, mpVendor->GetText(), 0, nHBits ); - rBlBar.InsertItem( 4, mpDevice->GetText(), 0, nHBits ); - rBlBar.InsertItem( 5, mpDrvVersion->GetText(), 0, nHBits ); - - rWiBar.InsertItem( 1, mpOS->GetText(), 0, nHBits ); - rWiBar.InsertItem( 2, mpOSVersion->GetText(), 0, nHBits ); - rWiBar.InsertItem( 3, mpVendor->GetText(), 0, nHBits ); - rWiBar.InsertItem( 4, mpDevice->GetText(), 0, nHBits ); - rWiBar.InsertItem( 5, mpDrvVersion->GetText(), 0, nHBits ); - - long aTabs[] = {5, 0, 0, 0, 0, 0}; - aTabs[1] = rBlBar.GetTextWidth(rBlBar.GetItemText(1)) + 12; - aTabs[2] = rBlBar.GetTextWidth(rBlBar.GetItemText(2)) + aTabs[1] + 12; - aTabs[3] = rBlBar.GetTextWidth(rBlBar.GetItemText(3)) + aTabs[2] + 12; - aTabs[4] = rBlBar.GetTextWidth(rBlBar.GetItemText(4)) + aTabs[3] + 12; - aTabs[5] = rBlBar.GetTextWidth(rBlBar.GetItemText(5)) + aTabs[4] + 12; - mpBlackList->SetTabs(aTabs, MAP_PIXEL); - mpWhiteList->SetTabs(aTabs, MAP_PIXEL); - + cl_device_id idTest=opencl::gpuEnv.mpDevID; + if(!idTest) + { + clUsed->SetText("Yes"); + }else{ + clUsed->SetText("No"); + } } SvxOpenCLTabPage::~SvxOpenCLTabPage() @@ -113,30 +70,9 @@ SvxOpenCLTabPage::~SvxOpenCLTabPage() void SvxOpenCLTabPage::dispose() { - for ( sal_uLong i = 0; i < mpBlackList->GetEntryCount(); ++i ) - delete static_cast(mpBlackList->GetEntry(i)->GetUserData()); - for ( sal_uLong i = 0; i < mpWhiteList->GetEntryCount(); ++i ) - delete static_cast(mpWhiteList->GetEntry(i)->GetUserData()); - mpBlackList.disposeAndClear(); - mpWhiteList.disposeAndClear(); mpUseSwInterpreter.clear(); mpUseOpenCL.clear(); - mpBlackListFrame.clear(); - mpBlackListTable.clear(); - mpBlackListEdit.clear(); - mpBlackListAdd.clear(); - mpBlackListDelete.clear(); - mpOS.clear(); - mpOSVersion.clear(); - mpDevice.clear(); - mpVendor.clear(); - mpDrvVersion.clear(); - mpWhiteListFrame.clear(); - mpWhiteListTable.clear(); - mpWhiteListEdit.clear(); - mpWhiteListAdd.clear(); - mpWhiteListDelete.clear(); SfxTabPage::dispose(); } @@ -148,7 +84,7 @@ VclPtr SvxOpenCLTabPage::Create( vcl::Window* pParent, const SfxItem bool SvxOpenCLTabPage::FillItemSet( SfxItemSet* ) { - bool bModified = false; + bool bModified = false; std::shared_ptr batch(comphelper::ConfigurationChanges::create()); if (mpUseSwInterpreter->IsValueChangedFromSaved()) @@ -176,36 +112,6 @@ bool SvxOpenCLTabPage::FillItemSet( SfxItemSet* ) return bModified; } -namespace { - -OUString format(const OpenCLConfig::ImplMatcher& rImpl) -{ - return (rImpl.maOS + "\t" + - rImpl.maOSVersion + "\t" + - rImpl.maPlatformVendor + "\t" + - rImpl.maDevice + "\t" + - rImpl.maDriverVersion); -} - -void fillListBox(SvSimpleTable* pListBox, const OpenCLConfig::ImplMatcherSet& rSet) -{ - pListBox->SetUpdateMode(false); -// kill added UserData to tree item - for ( sal_uLong i = 0; i < pListBox->GetEntryCount(); ++i ) - delete static_cast(pListBox->GetEntry(i)->GetUserData()); - - pListBox->Clear(); - for (auto i = rSet.cbegin(); i != rSet.cend(); ++i) - { - OpenCLConfig::ImplMatcher* pImpl = new OpenCLConfig::ImplMatcher(*i); - pListBox->InsertEntry(format(*i), nullptr, false, TREELIST_APPEND, pImpl); - } - - pListBox->SetUpdateMode(true); -} - -} - void SvxOpenCLTabPage::Reset( const SfxItemSet* ) { maConfig = OpenCLConfig::get(); @@ -215,211 +121,16 @@ void SvxOpenCLTabPage::Reset( const SfxItemSet* ) mpUseOpenCL->Check(maConfig.mbUseOpenCL); mpUseOpenCL->SaveValue(); - - fillListBox(mpBlackList, maConfig.maBlackList); - fillListBox(mpWhiteList, maConfig.maWhiteList); -} - -void SvxOpenCLTabPage::FillUserData() -{ -} - -namespace { - -class ListEntryDialog : public ModalDialog -{ -public: - OpenCLConfig::ImplMatcher maEntry; - - VclPtr mpOS; - VclPtr mpOSVersion; - VclPtr mpPlatformVendor; - VclPtr mpDevice; - VclPtr mpDriverVersion; - - DECL_LINK_TYPED(OSSelectHdl, ListBox&, void); - DECL_LINK_TYPED(EditModifiedHdl, Edit&, void); - - ListEntryDialog(vcl::Window* pParent, const OpenCLConfig::ImplMatcher& rEntry, const OString& rTag); - virtual ~ListEntryDialog() { disposeOnce(); } - virtual void dispose() override - { - mpOS.clear(); - mpOSVersion.clear(); - mpPlatformVendor.clear(); - mpDevice.clear(); - mpDriverVersion.clear(); - ModalDialog::dispose(); - } - -}; - -ListEntryDialog::ListEntryDialog(vcl::Window* pParent, const OpenCLConfig::ImplMatcher& rEntry, const OString& rTag) - : ModalDialog(pParent, "BlackOrWhiteListEntryDialog", - "cui/ui/blackorwhitelistentrydialog.ui"), - maEntry(rEntry) -{ - get(mpOS, "os"); - get(mpOSVersion, "osversion"); - get(mpPlatformVendor, "platformvendor"); - get(mpDevice, "device"); - get(mpDriverVersion, "driverversion"); - - // Hardcode knowledge that entry 0 is the "Any" - if (maEntry.maOS.isEmpty()) - { - mpOS->SelectEntryPos(0, false); - } - else - { - for (int i = 0; i < mpOS->GetEntryCount(); ++i) - { - if (maEntry.maOS == mpOS->GetEntry(i)) - mpOS->SelectEntryPos(i, false); - } - } - mpOSVersion->SetText(rEntry.maOSVersion); - mpPlatformVendor->SetText(rEntry.maPlatformVendor); - mpDevice->SetText(rEntry.maDevice); - mpDriverVersion->SetText(rEntry.maDriverVersion); - - mpOS->SetSelectHdl(LINK( this, ListEntryDialog, OSSelectHdl)); - mpOSVersion->SetModifyHdl(LINK(this, ListEntryDialog, EditModifiedHdl)); - mpPlatformVendor->SetModifyHdl(LINK(this, ListEntryDialog, EditModifiedHdl)); - mpDevice->SetModifyHdl(LINK(this, ListEntryDialog, EditModifiedHdl)); - mpDriverVersion->SetModifyHdl(LINK(this, ListEntryDialog, EditModifiedHdl)); - - SetText(get(rTag + "title")->GetText()); -} - -IMPL_LINK_TYPED(ListEntryDialog, OSSelectHdl, ListBox&, rListBox, void) -{ - if (&rListBox == mpOS) - { - if (mpOS->GetSelectEntryPos() == 0) - maEntry.maOS.clear(); - else - maEntry.maOS = mpOS->GetSelectEntry(); - } -} - -IMPL_LINK_TYPED(ListEntryDialog, EditModifiedHdl, Edit&, rEdit, void) -{ - if (&rEdit == mpOSVersion) - maEntry.maOSVersion = rEdit.GetText(); - else if (&rEdit == mpPlatformVendor) - maEntry.maPlatformVendor = rEdit.GetText(); - else if (&rEdit == mpDevice) - maEntry.maDevice = rEdit.GetText(); - else if (&rEdit == mpDriverVersion) - maEntry.maDriverVersion = rEdit.GetText(); -} - -void openListDialog(SvxOpenCLTabPage* pTabPage, OpenCLConfig::ImplMatcher& rEntry, const OString& rTag) -{ - ScopedVclPtrInstance< ListEntryDialog > aDlg(pTabPage, rEntry, rTag); - - if (aDlg->Execute() == RET_OK) - rEntry = aDlg->maEntry; -} - -const OpenCLConfig::ImplMatcher& findCurrentEntry(OpenCLConfig::ImplMatcherSet& rSet, SvSimpleTable* pListBox) -{ - SvTreeListEntry* pEntry = pListBox->FirstSelected() ; - - const OpenCLConfig::ImplMatcher* pSet = static_cast(pEntry->GetUserData()); - - for (auto i = rSet.cbegin(); i != rSet.cend(); ++i) - { - if (*i == *pSet) - { - return *i; - } - } - auto i = rSet.begin(); - return *i; -} - -} - -long SvxOpenCLTabPage::EditHdl(SvSimpleTable* pListBox, OpenCLConfig::ImplMatcherSet& rSet, const OString& rTag) -{ - if (!pListBox->FirstSelected()) - return 0; - - OpenCLConfig::ImplMatcher rEntry(findCurrentEntry(rSet, pListBox)); - rSet.erase(rEntry); - openListDialog(this, rEntry, rTag); - rSet.insert(rEntry); - fillListBox(pListBox, rSet); - - return 0; -} - -long SvxOpenCLTabPage::AddHdl(SvSimpleTable* pListBox, OpenCLConfig::ImplMatcherSet& rSet, const OString& rTag) -{ - OpenCLConfig::ImplMatcher rEntry; - openListDialog(this, rEntry, rTag); - if (rEntry != OpenCLConfig::ImplMatcher()) - { - rSet.insert(rEntry); - fillListBox(pListBox, rSet); - } - - return 0; -} - -long SvxOpenCLTabPage::DeleteHdl(SvSimpleTable* pListBox, OpenCLConfig::ImplMatcherSet& rSet) -{ - if (!pListBox->FirstSelected()) - return 0; - - const OpenCLConfig::ImplMatcher& rEntry(findCurrentEntry(rSet, pListBox)); - rSet.erase(rEntry); - fillListBox(pListBox, rSet); - - return 0; } void SvxOpenCLTabPage::EnableOpenCLHdl(VclFrame* pFrame, bool aEnable) { - pFrame->Enable(aEnable); -} - -IMPL_LINK_NOARG_TYPED(SvxOpenCLTabPage, BlackListEditHdl, Button*, void) -{ - EditHdl(mpBlackList, maConfig.maBlackList, "bledit"); -} -IMPL_LINK_NOARG_TYPED(SvxOpenCLTabPage, BlackListAddHdl, Button*, void) -{ - AddHdl(mpBlackList, maConfig.maBlackList, "bladd"); -} - -IMPL_LINK_NOARG_TYPED(SvxOpenCLTabPage, BlackListDeleteHdl, Button*, void) -{ - DeleteHdl(mpBlackList, maConfig.maBlackList); -} - -IMPL_LINK_NOARG_TYPED(SvxOpenCLTabPage, WhiteListEditHdl, Button*, void) -{ - EditHdl(mpWhiteList, maConfig.maWhiteList, "wledit"); -} - -IMPL_LINK_NOARG_TYPED(SvxOpenCLTabPage, WhiteListAddHdl, Button*, void) -{ - AddHdl(mpWhiteList, maConfig.maWhiteList, "wladd"); + pFrame->Enable(aEnable); } -IMPL_LINK_NOARG_TYPED(SvxOpenCLTabPage, WhiteListDeleteHdl, Button*, void) -{ - DeleteHdl(mpWhiteList, maConfig.maWhiteList); -} IMPL_LINK_NOARG_TYPED(SvxOpenCLTabPage, EnableOpenCLHdl, Button*, void) { - EnableOpenCLHdl(mpBlackListFrame, mpUseOpenCL->IsChecked()); - EnableOpenCLHdl(mpWhiteListFrame, mpUseOpenCL->IsChecked()); } - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit