usage info: Checkbox to turn it on and off (Tools -> Options... -> General).

Change-Id: I67143e604314f5553026c369bbed3fdd683c39a6
This commit is contained in:
Jan Holesovsky
2014-10-16 10:53:52 +02:00
parent fe25090e99
commit 9c9831f79c
5 changed files with 79 additions and 8 deletions

View File

@@ -67,6 +67,7 @@
#include <unotools/saveopt.hxx>
#include <unotools/searchopt.hxx>
#include <sal/macros.h>
#include <officecfg/Office/Common.hxx>
#include <com/sun/star/configuration/theDefaultProvider.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
@@ -206,6 +207,7 @@ OfaMiscTabPage::OfaMiscTabPage(vcl::Window* pParent, const SfxItemSet& rSet)
get(m_pYearFrame, "yearframe");
get(m_pYearValueField, "year");
get(m_pToYearFT, "toyear");
get(m_pCollectUsageInfo, "collectusageinfo");
if (m_pFileDlgCB->IsVisible() && SvtMiscOptions().IsUseSystemFileDialogReadOnly())
{
@@ -246,6 +248,7 @@ SfxTabPage* OfaMiscTabPage::Create( vcl::Window* pParent, const SfxItemSet* rAtt
bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet )
{
bool bModified = false;
boost::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
SvtHelpOptions aHelpOptions;
if ( m_pToolTipsCB->IsValueChangedFromSaved() )
@@ -291,6 +294,14 @@ bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet )
rSet->Put( SfxUInt16Item( SID_ATTR_YEAR2000, nNum ) );
}
if (m_pCollectUsageInfo->IsValueChangedFromSaved())
{
officecfg::Office::Common::Misc::CollectUsageInformation::set(m_pCollectUsageInfo->IsChecked(), batch);
bModified = true;
}
batch->commit();
return bModified;
}
@@ -327,6 +338,9 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet )
{
m_pYearFrame->Enable(false);
}
m_pCollectUsageInfo->Check(officecfg::Office::Common::Misc::CollectUsageInformation::get());
m_pCollectUsageInfo->SaveValue();
}

View File

@@ -55,6 +55,8 @@ private:
OUString m_aStrDateInfo;
CheckBox* m_pCollectUsageInfo;
DECL_LINK( TwoFigureHdl, NumericField* );
DECL_LINK( TwoFigureConfigHdl, NumericField* );
DECL_LINK(HelpCheckHdl_Impl, void *);

View File

@@ -1,6 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">1583</property>
<property name="upper">9857</property>
<property name="value">1930</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkGrid" id="OptGeneralPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -351,12 +358,48 @@
<property name="height">1</property>
</packing>
</child>
</object>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">1583</property>
<property name="upper">9857</property>
<property name="value">1930</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
<child>
<object class="GtkFrame" id="privacyframe">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="GtkCheckButton" id="collectusageinfo">
<property name="label" translatable="yes">Allow collecting usage information, and sending it to TDF servers</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Privacy</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">5</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
</interface>

View File

@@ -5600,6 +5600,14 @@
</info>
<value>false</value>
</prop>
<prop oor:name="CollectUsageInformation" oor:type="xs:boolean" oor:nillable="false">
<info>
<desc>Determines whether the usage information (like what actions
the user has performed) can be collected, and potentially sent for
examination.</desc>
</info>
<value>false</value>
</prop>
<prop oor:name="MacroRecorderMode" oor:type="xs:boolean" oor:nillable="false">
<info>
<desc>Determines if the limited, and awkward code producing

View File

@@ -44,6 +44,7 @@
#include <com/sun/star/frame/status/Visibility.hpp>
#include <comphelper/processfactory.hxx>
#include <comphelper/sequence.hxx>
#include <officecfg/Office/Common.hxx>
#include <osl/mutex.hxx>
#include <uno/current_context.hxx>
#include <vcl/svapp.hxx>
@@ -644,6 +645,9 @@ void UsageInfo::load()
void UsageInfo::save()
{
if (!officecfg::Office::Common::Misc::CollectUsageInformation::get())
return;
// TODO - do a real saving here, not only dump to the screen
std::cerr << "Usage information:" << std::endl;
for (UsageMap::const_iterator it = maUsage.begin(); it != maUsage.end(); ++it)
@@ -658,7 +662,7 @@ class theUsageInfo : public rtl::Static<UsageInfo, theUsageInfo> {};
/// Extracts information about the command + args, and stores that.
void collectUsageInformation(const util::URL& rURL, const uno::Sequence<beans::PropertyValue>& rArgs)
{
if (/*TODO disabled now, bind this to a config option instead*/true)
if (!officecfg::Office::Common::Misc::CollectUsageInformation::get())
return;
OUStringBuffer aBuffer;