[Tracker] Thunderbird support - patches
- From: Michal Pryc <Michal Pryc Sun COM>
- To: Tracker <tracker-list gnome org>
- Subject: [Tracker] Thunderbird support - patches
- Date: Fri, 07 Sep 2007 11:01:01 +0100
Hello Tracker community,
I am sending few patches to add support for Thunderbird Emails through
extension, which was originally written by Pierre Östlund[0].
I have made each patch for each file, because it is easier for me to
describe what actually the patches are doing.
After applying those patches, you can see README, which describes
process of building and installing Tracker with Thunderbird support.
I have tried this on my e-mail account which contains *lots* of e-mails,
and it worked fine :-)
Comments welcome :-)
So, a little explanation of each patch:
1. tracker-email-evolution.diff
There was a little bug, which basically make iteration, but the
values were not taken from the interation itself. Also I have changed
the function a little bit, and now if the name from the e-mail is not
found it is e-mail itself (which caused seg fault on Solaris).
2. thunderbird-extension.diff
Patch that need to be applied for the thunderbird-extension taken
from beagle svn. This patch should be placed in the tracker source code
as described in the patched README file. The extension in the
Thunderbird will tell that it is Beagle one. In the future it will
change, I need to discuss this.
3. tracker-01-thunderbird-support.diff
Adds to trackerd.c routines for ThunderbirdEmails service, enables
index_thunderbird_emails.
4. tracker-02-thunderbird-support.diff
Adds description to docs/tracker.cfg.5 for the IndexEvolutionEmails
5. tracker-03-thunderbird-support.diff
Adds to data/services/default.service [ThunderbirdEmails] servuce
description
6. tracker-04-thunderbird-support.diff
Changes the glade file to allow "Enable Thunderbird email indexing"
in tracker-preferences. The glade file was generated using glade-3.
7. tracker-05-thunderbird-support.diff
Adds keys for configuration to tracker-preferences.c for Thunderbird
(/Emails/IndexThunderbirdEmails)
8. tracker-06-thunderbird-support.diff
Adds the "IndexThunderbirdEmails=true\n" to the configuration file.
9. tracker-07-thunderbird-support.diff
Changes the function thunderbird_watch_emails to have argument
"(DBConnection *db_con)". I made this change, since all other e-mail
headers have this argument, so why to have different one?
10. tracker-08-thunderbird-support.diff
* Adds the "IndexThunderbirdEmails=true\n" to the configuration file.
* Adds the tracker_parse_log_message_and_add_missing_formatting
function. This function replaces "%" with the "%%". This was written,
because some of the log messages contained characters with the "%" for
example "mail-message://test test%20Sample" in that case printf and
other functions that used formatting on Solaris caused seg fault,
because of wrong string. The correct string should look like
"mail-message://test test%%20Sample".
11. tracker-09-thunderbird-support.diff
Changes argument passed to the thunderbird_watch_emails function
(change followed by patch: tracker-07-thunderbird-support.diff).
12. tracker-10-thunderbird-support.diff
Adds tracker_parse_log_message_and_add_missing_formatting to the
header file (change followed by patch: tracker-08-thunderbird-support.diff).
13. tracker-11-thunderbird-support.diff
Parses output of the log message (change followed by patch:
tracker-08-thunderbird-support.diff).
14. tracker-12-thunderbird-support.diff
Adds MAIL_APP_THUNDERBIRD_FEED as an application to the
MailApplication enumeration. This might be in other place, but since
feeds and mails generated by extension doesn't differ almost at all,
this was the simplest way to go.
15. tracker-13-thunderbird-support.diff
Change followed by previous patch. This will add
MAIL_APP_THUNDERBIRD_FEED to the tracker-db-email.c and simple return
correct mime. Also fixes the email subject, when the subject is null.
16. tracker-14-thunderbird-support.diff
In the tracker-search-tool-callbacks.c adds opening e-mail by
Thunderbird functionality.
17. tracker-15-thunderbird-support.diff
Lot's of changes in tracker-email-thunderbird.c to support generated
messages. The old functions were not deleted, just new ones added above
those.
18. tracker-16-thunderbird-support.diff
Adds my name to the AUTHORS file ;-) :-)
19. tracker-17-thunderbird-support.diff
Changes Makefile.am to build thunderbird-extension if this extension
was found and the configure was run --with-thunderbird-extension option
20. tracker-18-thunderbird-support.diff
Changes configure.ac to get --with-thunderbird-extension as an
argument. Also checks if the thunderbird-extension was patched with the
thunderbird-extension.diff
21. tracker-19-thunderbird-support.diff
Changes in the README.
TODO;
- Dealing with deletion of folders and messages
- Feeds. To enable feeds, only few lines of code needs to be
uncommented, but I need to discuss this, since the feed is going to be
another service, so I don't want to index them as an Email service, that
is why I have commented this out.
[0] http://postlund.org/
--
all the best
Michal Pryc
http://blogs.sun.com/migi
Index: content/beagleIndexer.js
===================================================================
--- content/beagleIndexer.js (revision 3879)
+++ content/beagleIndexer.js (working copy)
@@ -75,7 +75,7 @@
if (!file || !file.isFile ())
continue;
- var number = parseInt (file.leafName);
+ var number = parseInt (file.leafName.substring(0,file.leafName.length-4));
if (object_count == -1 || object_count > number)
object_count = number;
}
@@ -102,7 +102,7 @@
do {
file.initWithPath (settings.getCharPref ('DestinationDirectory') +
- "/ToIndex/" + object_count++);
+ "/ToIndex/" + object_count++ +".tms");
} while (file.exists ());
return file.path;
Index: content/beagleService.js
===================================================================
--- content/beagleService.js (revision 3879)
+++ content/beagleService.js (working copy)
@@ -199,6 +199,7 @@
stop (true);
return;
}
+ }
// We need to create the ToIndex directory in case it doesn't exist
dir.initWithPath (gBeagleSettings.getCharPref ('DestinationDirectory') +
'/ToIndex');
@@ -217,12 +218,13 @@
stop (true);
return;
}
- } else {
- dump ("Destination directory does not exist!\n");
- addWarning ('destinationDirectoryNoExist', null, 0);
- stop (true);
- return;
- }
+ // Commented, if the directory does not exists it will be created by plugin
+ // } else {
+ // dump ("Destination directory does not exist!\n");
+ // addWarning ('destinationDirectoryNoExist', null, 0);
+ // stop (true);
+ // return;
+ // }
} catch (ex) {
dump ("Failed to create ToIndex directory! Bailing out! (" + ex + ")\n");
addWarning ('failedCreateToIndexDir', [ex], 1);
Index: content/beagleSettings.js
===================================================================
--- content/beagleSettings.js (revision 3879)
+++ content/beagleSettings.js (working copy)
@@ -51,7 +51,7 @@
// $BEAGLE_STORAGE environment variable. $HOME can also be overriden by $BEAGLE_HOME.
function getDestinationDirectory ()
{
- var directory = '/Indexes/ThunderbirdIndex';
+ var directory = '/ThunderbirdEmails';
var beagleStorage = environment.get ('BEAGLE_STORAGE');
if (beagleStorage)
@@ -61,7 +61,7 @@
if (beagleHome)
directory = beagleHome + '/.beagle/' + directory;
else
- directory = environment.get ('HOME') + '/.beagle/' + directory;
+ directory = environment.get ('HOME') + '/.xesam/' + directory;
}
return directory;
Index: patched.tmp
===================================================================
diff -N patched.tmp
--- /dev/null (revision 3879)
+++ patched.tmp (working copy)
@@ -0,0 +1,1 @@
+
Index: src/trackerd/trackerd.c
===================================================================
--- src/trackerd/trackerd.c (revision 807)
+++ src/trackerd/trackerd.c (working copy)
@@ -1103,7 +1103,8 @@
case INDEX_EMAILS: {
tracker_cache_flush_all (db_con);
- if (tracker->index_evolution_emails ||
tracker->index_kmail_emails) {
+ if (tracker->index_evolution_emails ||
tracker->index_kmail_emails
+ ||
tracker->index_thunderbird_emails) {
tracker_email_add_service_directories
(db_con->emails);
tracker_log ("Starting email
indexing...");
@@ -1121,6 +1122,13 @@
process_directory_list
(db_con, list, TRUE);
g_slist_free (list);
}
+
+ if
(tracker->index_thunderbird_emails) {
+ GSList *list =
tracker_get_service_dirs ("ThunderbirdEmails");
+ tracker_add_root_directories
(list);
+ process_directory_list
(db_con, list, TRUE);
+ g_slist_free (list);
+ }
}
@@ -1831,7 +1839,7 @@
tracker->flush_count = 0;
tracker->index_evolution_emails = TRUE;
- tracker->index_thunderbird_emails = FALSE;
+ tracker->index_thunderbird_emails = TRUE;
tracker->index_kmail_emails = TRUE;
tracker->use_extra_memory = TRUE;
@@ -1881,7 +1889,6 @@
static void
sanity_check_option_values (void)
{
- tracker->index_thunderbird_emails = FALSE;
if (tracker->max_index_text_length < 0) tracker->max_index_text_length = 0;
if (tracker->max_words_to_index < 0) tracker->max_words_to_index = 0;
Index: docs/tracker.cfg.5
===================================================================
--- docs/tracker.cfg.5 (revision 807)
+++ docs/tracker.cfg.5 (working copy)
@@ -151,7 +151,10 @@
This section may contain Email specific options.
.TP
IndexEvolutionEmails=BOOLEAN
-Enable or disable indexing or Evolution emails.
+Enable or disable indexing for Evolution emails.
+.TP
+IndexThunderbirdEmails=BOOLEAN
+Enable or disable indexing for Thunderbird emails.
.SS Performance
Trackerd performance related options.
Index: data/services/default.service
===================================================================
--- data/services/default.service (revision 807)
+++ data/services/default.service (working copy)
@@ -154,6 +154,18 @@
TileMetadata=Email:Sender;Email:Subject;Email:Date;Email:SentTo;Email:CC;Email:Attachments
ContentMetadata=Email:Body
+[ThunderbirdEmails]
+DisplayName=Thunderbird Emails
+Description=Thunderbird based emails
+Parent=Emails
+ViewerExec=thunderbird -viewmetatracker "%1"
+KeyMetadata1=Email:Subject
+KeyMetadata2=Email:Sender
+KeyMetadata3=Email:Date
+TabularMetadata=Email:Sender;Email:Subject;Email:Date;
+TileMetadata=Email:Sender;Email:Subject;Email:Date;Email:SentTo;Email:CC;Email:Attachments
+ContentMetadata=Email:Body
+
[KMailEmails]
DisplayName=KMail Emails
Description=KMail based emails
Index: src/tracker-preferences/tracker-preferences.glade
===================================================================
--- src/tracker-preferences/tracker-preferences.glade (revision 807)
+++ src/tracker-preferences/tracker-preferences.glade (working copy)
@@ -1,393 +1,197 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
<glade-interface>
-
-<widget class="GtkDialog" id="dlgPreferences">
- <property name="border_width">5</property>
- <property name="title" translatable="yes">Tracker Preferences</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="default_width">431</property>
- <property name="default_height">462</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
- <property name="has_separator">False</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_EDGE</property>
-
- <child>
- <widget class="GtkButton" id="cmdHelp">
- <property name="visible">True</property>
- <property name="label">gtk-help</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">0</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cmdClose">
- <property name="visible">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">0</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkNotebook" id="nbPreferences">
- <property name="visible">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">10</property>
- <property name="bottom_padding">5</property>
- <property name="left_padding">5</property>
- <property name="right_padding">5</property>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkFrame" id="fraStartup">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox8">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="lblInitialSleep">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Index _delay: </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">spnInitialSleep</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="spnInitialSleep">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">60 0 1000 1 300 300</property>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="lblInitialSleepSeconds">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Seconds</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">3</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Startup</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">6</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame5">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment9">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox11">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCheckButton" id="chkEnableIndexing">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Enable _Indexing</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">3</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="chkEnableWatching">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Enable _Watching</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label12">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Indexing
options</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">6</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame11">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment17">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox17">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox11">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label27">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Language:</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">comLanguage</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBox" id="comLanguage">
- <property name="visible">True</property>
- <property name="items" translatable="yes">danish
+ <widget class="GtkDialog" id="dlgPreferences">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Tracker Preferences</property>
+ <property name="default_width">431</property>
+ <property name="default_height">462</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkNotebook" id="nbPreferences">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="top_padding">10</property>
+ <property name="bottom_padding">5</property>
+ <property name="left_padding">5</property>
+ <property name="right_padding">5</property>
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkFrame" id="fraStartup">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkHBox" id="hbox8">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="lblInitialSleep">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Index _delay: </property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">spnInitialSleep</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="spnInitialSleep">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">60 0 1000 1 300 300</property>
+ <property name="climb_rate">1</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="lblInitialSleepSeconds">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Seconds</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">3</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Startup</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">6</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="frame5">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment9">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox11">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkCheckButton" id="chkEnableIndexing">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Enable _Indexing</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">3</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="chkEnableWatching">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Enable _Watching</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Indexing
options</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">6</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="frame11">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment17">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox17">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkHBox" id="hbox11">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label27">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Language:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">comLanguage</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkComboBox" id="comLanguage">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">danish
dutch
english
finnish
@@ -399,1768 +203,1087 @@
russian
spanish
swedish</property>
- <property name="add_tearoffs">False</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">2</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">3</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label26">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Stemming</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">6</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_General</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkAlignment" id="alignment5">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">10</property>
- <property name="bottom_padding">5</property>
- <property name="left_padding">5</property>
- <property name="right_padding">5</property>
-
- <child>
- <widget class="GtkVBox" id="vbox5">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">5</property>
-
- <child>
- <widget class="GtkFrame" id="fraThrottling">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment6">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox6">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="lblThrottlingLevel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Indexing speed:</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">2</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">4</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox10">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label24">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Faster</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">7</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHScale" id="scaThrottle">
- <property name="visible">True</property>
- <property name="draw_value">True</property>
- <property name="value_pos">GTK_POS_TOP</property>
- <property name="digits">0</property>
- <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
- <property name="inverted">False</property>
- <property name="adjustment">0 0 20 1 1 0</property>
- </widget>
- <packing>
- <property name="padding">2</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label23">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Slower</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">3</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">2</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="lblThrottling">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Throttling</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">6</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame8">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment12">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox13">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkRadioButton" id="optReducedMemory">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Minimize memory usage (slower
indexing)</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="optNormal">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Use additonal memory for faster
indexing</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">optReducedMemory</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label18">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Resource
Usage</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame12">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment18">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox18">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox14">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label30">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Maximum _amount of text to
Index (KB)</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">spnMaxText</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">1</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="spnMaxText">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1024 1 1000000 1 300 300</property>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">3</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox15">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label31">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Maximum number of unique
_words to index</property>
- <property name="use_underline">True</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">spnMaxWords</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="spnMaxWords">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">10000 1000 1000000 100 500 500</property>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label32">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Indexing Limits (per
file)</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">6</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">P_erformance</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox14">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkFrame" id="frame9">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment15">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox15">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCheckButton" id="chkIndexContents">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Index _file contents</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="chkGenerateThumbs">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Generate _thumbnails</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">1</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="chkSkipMountPoints">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Index _mounted directories</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label20">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Indexing</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">6</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="fraGeneralIndexing">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment7">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox7">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCheckButton" id="chkIndexHomeDirectory">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Index and watch my home
_directory</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">3</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Additional paths to index and
watch:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- <property name="mnemonic_widget">lstAdditionalPathIndexes</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">3</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">3</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="lstAdditionalPathIndexes">
- <property name="visible">True</property>
- <property name="headers_visible">False</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">1</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkButton" id="cmdAddIndexPath">
- <property name="visible">True</property>
- <property name="label">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cmdRemoveIndexPath">
- <property name="visible">True</property>
- <property name="label">gtk-remove</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Watch
Directories</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">6</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame10">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment16">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox16">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label21">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Additional paths to index on startup
(but not watch for updates)</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- <property name="mnemonic_widget">lstAdditionalPathIndexes</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">3</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox9">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">3</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow5">
- <property name="visible">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="lstCrawledPaths">
- <property name="visible">True</property>
- <property name="headers_visible">False</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">1</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox5">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkButton" id="cmdAddCrawledPath">
- <property name="visible">True</property>
- <property name="label">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cmdRemoveCrawledPath">
- <property name="visible">True</property>
- <property name="label">gtk-remove</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label22">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Crawled
Directories</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">6</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label19">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Files</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">10</property>
- <property name="bottom_padding">5</property>
- <property name="left_padding">5</property>
- <property name="right_padding">5</property>
-
- <child>
- <widget class="GtkVBox" id="vbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">3</property>
-
- <child>
- <widget class="GtkFrame" id="fraIgnoredPaths">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment13">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbIgnorePaths">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Path roots to be ignored during
indexing:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- <property name="mnemonic_widget">lstIgnorePaths</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">3</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow2">
- <property name="visible">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="lstIgnorePaths">
- <property name="visible">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox2">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkButton" id="cmdAddIgnorePath">
- <property name="visible">True</property>
- <property name="label">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cmdRemoveIgnorePath">
- <property name="visible">True</property>
- <property name="label">gtk-remove</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Ignored
Paths</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="fraIgnoredPatterns">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment14">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbIgnorePatterns">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">File patterns to ignore during
indexing:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- <property name="mnemonic_widget">lstIgnoreFilePatterns</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">3</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow3">
- <property name="visible">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="lstIgnoreFilePatterns">
- <property name="visible">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox3">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkButton" id="cmdAddIgnorePattern">
- <property name="visible">True</property>
- <property name="label">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cmdRemoveIgnorePattern">
- <property name="visible">True</property>
- <property name="label">gtk-remove</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label9">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Ignored File
Patterns</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Ignored Files</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkAlignment" id="alignment3">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">10</property>
- <property name="bottom_padding">5</property>
- <property name="left_padding">5</property>
- <property name="right_padding">5</property>
-
- <child>
- <widget class="GtkVBox" id="vbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">5</property>
-
- <child>
- <widget class="GtkFrame" id="fraServices">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment8">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox8">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCheckButton" id="chkEnableEvolutionIndexing">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Enable Evolution email
indexing</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="chkEnableThunderbirdIndexing">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="label" translatable="yes">Enable Thunderbird email
indexing</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="chkEnableKMailIndexing">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="label" translatable="yes">Enable KMail email
indexing</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="lblServices">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Services</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="fraIndexableMBoxes">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment10">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox12">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label14">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Additional mbox mailboxes to
index:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- <property name="mnemonic_widget">lstAdditionalMBoxIndexes</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox5">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">3</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow4">
- <property name="visible">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="lstAdditionalMBoxIndexes">
- <property name="visible">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox4">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkButton" id="cmdAddIndexMailbox">
- <property name="visible">True</property>
- <property name="label">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cmdRemoveIndexMailbox">
- <property name="visible">True</property>
- <property name="label">gtk-remove</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label14">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Mailboxes</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Emails</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
+ </widget>
+ <packing>
+ <property name="padding">2</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">3</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label26">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Stemming</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">6</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_General</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="alignment5">
+ <property name="visible">True</property>
+ <property name="top_padding">10</property>
+ <property name="bottom_padding">5</property>
+ <property name="left_padding">5</property>
+ <property name="right_padding">5</property>
+ <child>
+ <widget class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkFrame" id="fraThrottling">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment6">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox6">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkHBox" id="hbox4">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="lblThrottlingLevel">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Indexing speed:</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">4</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox10">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label24">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Faster</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">7</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHScale" id="scaThrottle">
+ <property name="visible">True</property>
+ <property name="adjustment">0 0 20 1 1 0</property>
+ <property name="digits">0</property>
+ </widget>
+ <packing>
+ <property name="padding">2</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label23">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Slower</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">3</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">2</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="lblThrottling">
+ <property name="visible">True</property>
+ <property name="label"
translatable="yes"><b>Throttling</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">6</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="frame8">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment12">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox13">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkRadioButton" id="optReducedMemory">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Minimize memory usage (slower
indexing)</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="optNormal">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Use additonal memory for
faster indexing</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">optReducedMemory</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label18">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Resource
Usage</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="frame12">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment18">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox18">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkHBox" id="hbox14">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label30">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Maximum _amount of text to
Index (KB)</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">spnMaxText</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="spnMaxText">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">1024 1 1000000 1 300 300</property>
+ <property name="climb_rate">1</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">3</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox15">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label31">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Maximum number of unique
_words to index</property>
+ <property name="use_markup">True</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">spnMaxWords</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="spnMaxWords">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">10000 1000 1000000 100 500 500</property>
+ <property name="climb_rate">1</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label32">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Indexing Limits (per
file)</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">6</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">P_erformance</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ <property name="position">1</property>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox14">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkFrame" id="frame9">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment15">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox15">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkCheckButton" id="chkIndexContents">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Index _file contents</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="chkGenerateThumbs">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Generate _thumbnails</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="chkSkipMountPoints">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Index _mounted
directories</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label20">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Indexing</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">6</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="fraGeneralIndexing">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment7">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox7">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkCheckButton" id="chkIndexHomeDirectory">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Index and watch my home
_directory</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">3</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="ypad">3</property>
+ <property name="label" translatable="yes">Additional paths to index and
watch:</property>
+ <property name="mnemonic_widget">lstAdditionalPathIndexes</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">3</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="spacing">3</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTreeView" id="lstAdditionalPathIndexes">
+ <property name="visible">True</property>
+ <property name="headers_visible">False</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVButtonBox" id="vbuttonbox1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_START</property>
+ <child>
+ <widget class="GtkButton" id="cmdAddIndexPath">
+ <property name="visible">True</property>
+ <property name="label">gtk-add</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdRemoveIndexPath">
+ <property name="visible">True</property>
+ <property name="label">gtk-remove</property>
+ <property name="use_stock">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Watch
Directories</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">6</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="frame10">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment16">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox16">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label21">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="ypad">3</property>
+ <property name="label" translatable="yes">Additional paths to index on
startup (but not watch for updates)</property>
+ <property name="mnemonic_widget">lstAdditionalPathIndexes</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="padding">3</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox9">
+ <property name="visible">True</property>
+ <property name="spacing">3</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow5">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTreeView" id="lstCrawledPaths">
+ <property name="visible">True</property>
+ <property name="headers_visible">False</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVButtonBox" id="vbuttonbox5">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_START</property>
+ <child>
+ <widget class="GtkButton" id="cmdAddCrawledPath">
+ <property name="visible">True</property>
+ <property name="label">gtk-add</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdRemoveCrawledPath">
+ <property name="visible">True</property>
+ <property name="label">gtk-remove</property>
+ <property name="use_stock">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label22">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Crawled
Directories</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">6</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label19">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Files</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ <property name="position">2</property>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="alignment4">
+ <property name="visible">True</property>
+ <property name="top_padding">10</property>
+ <property name="bottom_padding">5</property>
+ <property name="left_padding">5</property>
+ <property name="right_padding">5</property>
+ <child>
+ <widget class="GtkVBox" id="vbox4">
+ <property name="visible">True</property>
+ <property name="spacing">3</property>
+ <child>
+ <widget class="GtkFrame" id="fraIgnoredPaths">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment13">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbIgnorePaths">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="ypad">3</property>
+ <property name="label" translatable="yes">Path roots to be ignored
during indexing:</property>
+ <property name="mnemonic_widget">lstIgnorePaths</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="spacing">3</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow2">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTreeView" id="lstIgnorePaths">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkVButtonBox" id="vbuttonbox2">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_START</property>
+ <child>
+ <widget class="GtkButton" id="cmdAddIgnorePath">
+ <property name="visible">True</property>
+ <property name="label">gtk-add</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdRemoveIgnorePath">
+ <property name="visible">True</property>
+ <property name="label">gtk-remove</property>
+ <property name="use_stock">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Ignored
Paths</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="fraIgnoredPatterns">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment14">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbIgnorePatterns">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label11">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="ypad">3</property>
+ <property name="label" translatable="yes">File patterns to ignore during
indexing:</property>
+ <property name="mnemonic_widget">lstIgnoreFilePatterns</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="spacing">3</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow3">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTreeView" id="lstIgnoreFilePatterns">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkVButtonBox" id="vbuttonbox3">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_START</property>
+ <child>
+ <widget class="GtkButton" id="cmdAddIgnorePattern">
+ <property name="visible">True</property>
+ <property name="label">gtk-add</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdRemoveIgnorePattern">
+ <property name="visible">True</property>
+ <property name="label">gtk-remove</property>
+ <property name="use_stock">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Ignored File
Patterns</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">3</property>
+ <property name="tab_expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Ignored Files</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ <property name="position">3</property>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="top_padding">10</property>
+ <property name="bottom_padding">5</property>
+ <property name="left_padding">5</property>
+ <property name="right_padding">5</property>
+ <child>
+ <widget class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="spacing">5</property>
+ <child>
+ <widget class="GtkFrame" id="fraServices">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox8">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkCheckButton" id="chkEnableEvolutionIndexing">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Enable Evolution email
indexing</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="chkEnableThunderbirdIndexing">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Enable Thunderbird email
indexing</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="chkEnableKMailIndexing">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="label" translatable="yes">Enable KMail email
indexing</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="lblServices">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Services</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="fraIndexableMBoxes">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment10">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkVBox" id="vbox12">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label14">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="ypad">3</property>
+ <property name="label" translatable="yes">Additional mbox mailboxes to
index:</property>
+ <property name="mnemonic_widget">lstAdditionalMBoxIndexes</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox5">
+ <property name="visible">True</property>
+ <property name="spacing">3</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow4">
+ <property name="visible">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTreeView" id="lstAdditionalMBoxIndexes">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkVButtonBox" id="vbuttonbox4">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_START</property>
+ <child>
+ <widget class="GtkButton" id="cmdAddIndexMailbox">
+ <property name="visible">True</property>
+ <property name="label">gtk-add</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdRemoveIndexMailbox">
+ <property name="visible">True</property>
+ <property name="label">gtk-remove</property>
+ <property name="use_stock">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label14">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Mailboxes</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab_expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Emails</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ <property name="position">4</property>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_EDGE</property>
+ <child>
+ <widget class="GtkButton" id="cmdHelp">
+ <property name="visible">True</property>
+ <property name="label">gtk-help</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdClose">
+ <property name="visible">True</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
</glade-interface>
Index: src/tracker-preferences/tracker-preferences.c
===================================================================
--- src/tracker-preferences/tracker-preferences.c (revision 807)
+++ src/tracker-preferences/tracker-preferences.c (working copy)
@@ -388,6 +388,17 @@
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
value);
+
+ widget = glade_xml_get_widget (priv->gxml,
+ "chkEnableThunderbirdIndexing");
+
+ value = tracker_configuration_get_bool (configuration,
+ "/Emails/IndexThunderbirdEmails",
+ NULL);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
+ value);
+
}
@@ -548,8 +559,14 @@
tracker_configuration_set_bool (configuration,
"/Emails/IndexEvolutionEmails",
value);
-
-
+
+ widget = glade_xml_get_widget (priv->gxml,
+ "chkEnableThunderbirdIndexing");
+ value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+ tracker_configuration_set_bool (configuration,
+ "/Emails/IndexThunderbirdEmails",
+ value);
+
tracker_configuration_write (configuration);
gtk_main_quit ();
}
Index: src/tracker-preferences/tracker-configuration.c
===================================================================
--- src/tracker-preferences/tracker-configuration.c (revision 807)
+++ src/tracker-preferences/tracker-configuration.c (working copy)
@@ -372,6 +372,7 @@
"EnableStemmer=true\n",
"[Emails]\n",
"IndexEvolutionEmails=true\n",
+ "IndexThunderbirdEmails=true\n",
"[Performance]\n",
"# Maximum size of text in bytes to index from a file's text
contents\n",
"MaxTextToIndex=1048576\n",
Index: src/trackerd/tracker-email-thunderbird.h
===================================================================
--- src/trackerd/tracker-email-thunderbird.h (revision 807)
+++ src/trackerd/tracker-email-thunderbird.h (working copy)
@@ -39,7 +39,7 @@
gboolean thunderbird_init_module (void);
gboolean thunderbird_module_is_running (void);
gboolean thunderbird_finalize_module (void);
-void thunderbird_watch_emails ();
+void thunderbird_watch_emails (DBConnection *db_con);
gboolean thunderbird_file_is_interesting (FileInfo *info, const char *service);
void thunderbird_index_file (DBConnection *db_con, FileInfo *info);
Index: src/trackerd/tracker-utils.c
===================================================================
--- src/trackerd/tracker-utils.c (revision 807)
+++ src/trackerd/tracker-utils.c (working copy)
@@ -1,5 +1,6 @@
/* Tracker - indexer and metadata database engine
* Copyright (C) 2006, Mr Jamie McCracken (jamiemcc gnome org)
+ * Copyright (C) 2007, Michal Pryc (Michal Pryc Sun Com)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
@@ -2486,6 +2487,7 @@
"SkipMountPoints=false\n\n",
"[Emails]\n",
"IndexEvolutionEmails=true\n",
+ "IndexThunderbirdEmails=true\n",
"[Performance]\n",
"# Maximum size of text in bytes to index from a file's text
contents\n",
"MaxTextToIndex=1048576\n",
@@ -2664,6 +2666,11 @@
tracker->index_kmail_emails = FALSE;
}
+ if (g_key_file_has_key (key_file, "Emails", "IndexThunderbirdEmails", NULL)) {
+ tracker->index_thunderbird_emails = g_key_file_get_boolean (key_file, "Emails",
"IndexThunderbirdEmails", NULL);
+ } else {
+ tracker->index_thunderbird_emails = TRUE;
+ }
/* Performance options */
@@ -3636,3 +3643,43 @@
return TRUE;
}
+
+char *
+tracker_parse_log_message_and_add_missing_formatting (const char *log_message)
+{
+ char *tmp_msg;
+ int message_size=0;
+ int string_size=0;
+ int j=0;
+
+ message_size = strlen(log_message);
+
+ for(int i=0;i<message_size;i++){
+ if(log_message[i]){
+ if(log_message[i]=='%'){
+ string_size++;
+ }
+ string_size++;
+ }
+ }
+
+ if(0 == string_size)
+ return g_strdup(log_message);
+
+ tmp_msg = g_strnfill(string_size,NULL);
+
+
+ for(int i=0;i<message_size;i++)
+ {
+ if(log_message[i]!='%')
+ tmp_msg[j] = log_message[i];
+ else{
+ tmp_msg[j] = log_message[i];
+ j=j+sizeof(char);
+ tmp_msg[j] = log_message[i];
+ }
+ j=j+sizeof(char);
+ }
+
+ return tmp_msg;
+}
Index: src/trackerd/tracker-email.c
===================================================================
--- src/trackerd/tracker-email.c (revision 807)
+++ src/trackerd/tracker-email.c (working copy)
@@ -52,7 +52,7 @@
if (tracker->index_thunderbird_emails) {
if (thunderbird_init_module ()) {
- thunderbird_watch_emails ();
+ thunderbird_watch_emails (db_con);
}
}
}
Index: src/trackerd/tracker-utils.h
===================================================================
--- src/trackerd/tracker-utils.h (revision 807)
+++ src/trackerd/tracker-utils.h (working copy)
@@ -567,4 +567,6 @@
gboolean tracker_unlink (const char *uri);
+char* tracker_parse_log_message_and_add_missing_formatting (const char *log_message);
+
#endif
Index: src/trackerd/tracker-db-sqlite.c
===================================================================
--- src/trackerd/tracker-db-sqlite.c (revision 807)
+++ src/trackerd/tracker-db-sqlite.c (working copy)
@@ -35,6 +35,7 @@
#include "tracker-indexer.h"
#include "tracker-cache.h"
#include "tracker-metadata.h"
+#include "tracker-utils.h"
#include "config.h"
@@ -342,7 +343,7 @@
for (row = *rows; *row; row++) {
char *value;
- value = *row;
+ value = tracker_parse_log_message_and_add_missing_formatting(g_strdup(*row));
if (!value) {
value = "NULL";
Index: src/trackerd/tracker-email-utils.h
===================================================================
--- src/trackerd/tracker-email-utils.h (revision 807)
+++ src/trackerd/tracker-email-utils.h (working copy)
@@ -30,6 +30,7 @@
MAIL_APP_EVOLUTION,
MAIL_APP_KMAIL,
MAIL_APP_THUNDERBIRD,
+ MAIL_APP_THUNDERBIRD_FEED,
MAIL_APP_UNKNOWN
} MailApplication;
Index: src/trackerd/tracker-db-email.c
===================================================================
--- src/trackerd/tracker-db-email.c (revision 807)
+++ src/trackerd/tracker-db-email.c (working copy)
@@ -390,6 +390,8 @@
return g_strdup ("KMailEmails");
} else if (app == MAIL_APP_THUNDERBIRD) {
return g_strdup ("ThunderbirdEmails");
+ } else if (app == MAIL_APP_THUNDERBIRD_FEED) {
+ return g_strdup ("ThunderbirdEmails");
} else {
return g_strdup ("OtherEmails");
}
@@ -405,6 +407,8 @@
return g_strdup ("KMail/Email");
} else if (app == MAIL_APP_THUNDERBIRD) {
return g_strdup ("Thunderbird/Email");
+ } else if (app == MAIL_APP_THUNDERBIRD_FEED) {
+ return g_strdup ("Thunderbird/Feed");
} else {
return g_strdup ("Other/Email");
}
@@ -444,6 +448,11 @@
return FALSE;
}
+ if (!mm->subject) {
+ tracker_log ("WARNING: email with uri: %s has no subject",mm->uri);
+ mm->subject = g_strdup("");
+ }
+
if (mm->parent_mail_file && !mm->parent_mail_file->path) {
tracker_error ("ERROR: badly formatted email - abandoning index");
return FALSE;
Index: src/tracker-search-tool/tracker-search-tool-callbacks.c
===================================================================
--- src/tracker-search-tool/tracker-search-tool-callbacks.c (revision 807)
+++ src/tracker-search-tool/tracker-search-tool-callbacks.c (working copy)
@@ -605,6 +605,8 @@
exec = g_strdup_printf ("evolution \"%s\"", uri);
} else if (strstr (mime, "KMail")) {
exec = g_strdup_printf ("kmail --view \"%s\"", uri);
+ } else if (strstr (mime, "Thunderbird")) {
+ exec = g_strdup_printf ("thunderbird -viewbeagle \"%s\"", uri);
} else {
exec = NULL;
}
Index: src/trackerd/tracker-email-thunderbird.c
===================================================================
--- src/trackerd/tracker-email-thunderbird.c (revision 807)
+++ src/trackerd/tracker-email-thunderbird.c (working copy)
@@ -1,6 +1,7 @@
/* Tracker
* routines for emails with Thunderbird
* Copyright (C) 2006, Laurent Aguerreche (laurent aguerreche free fr)
+ * Copyright (C) 2007, Michal Pryc (Michal Pryc Sun Com)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
@@ -20,8 +21,10 @@
#include <string.h>
#include <glib/gstdio.h>
+#include <stdlib.h>
#include "tracker-email-thunderbird.h"
+#include "tracker-db-email.h"
#ifdef HAVE_INOTIFY
# include "tracker-inotify.h"
@@ -31,11 +34,36 @@
# endif
#endif
+typedef enum
+{
+ TAG_NONE = 0,
+ TAG_FOLDER_FILE,
+ TAG_FEED_URL,
+ TAG_AUTHOR,
+ TAG_DATE,
+ TAG_FOLDER,
+ TAG_HAS_OFFLINE,
+ TAG_MESSAGE_ID,
+ TAG_MESSAGE_SIZE,
+ TAG_MESSAGE_OFFSET,
+ TAG_OFFLINE_SIZE,
+ TAG_RECIPIENTS,
+ TAG_SUBJECT,
+ TAG_MESSAGE_KEY,
+ TAG_URI,
+} TmsParserTag;
+typedef struct
+{
+ TmsParserTag tag;
+ GString *buffer;
+ MailMessage *mail_message;
+ } TmsParserData;
+
extern Tracker *tracker;
-#define THUNDERBIRD_MAIL_DIR_S ".mozilla-thunderbird"
+#define THUNDERBIRD_MAIL_DIR_S ".xesam/ThunderbirdEmails/ToIndex"
typedef struct {
@@ -50,10 +78,24 @@
static void free_thunderbirdprefs_struct (ThunderbirdPrefs *prefs);
static GSList * find_thunderbird_mboxes (GSList *list_of_mboxes, const char
*profile_dir);
static GSList * add_inbox_mbox_of_dir (GSList *list_of_mboxes, const char
*dir);
+static GSList * add_persons_from_internet_address_list_string_parsing (GSList *list, const gchar
*s);
+static gboolean email_parse_mail_tms_file_and_save_new_emails (DBConnection *db_con, MailApplication
mail_app,
+ const char *path);
+static MailMessage * email_parse_mail_tms_file_by_path (MailApplication mail_app, const char *path);
+static void text_handler (GMarkupParseContext *context, const gchar *text,
+ gsize text_len, gpointer user_data, GError **error);
+static void start_element_handler (GMarkupParseContext *context, const gchar *element_name,
+ const gchar **attribute_names, const gchar
**attribute_values,
+ gpointer user_data, GError **error);
+static void end_element_handler (GMarkupParseContext *context, const gchar *element_name,
+ gpointer user_data, GError **error);
+static glong get_date_from_string (const gchar *date_string);
+static gboolean get_boolean_from_string (const gchar *boolean_string);
+static void free_parser_data (gpointer user_data);
+static GMarkupParser tms_file_parser;
-
/********************************************************************************************
Public functions
*********************************************************************************************/
@@ -65,7 +107,7 @@
thunderbird_mail_dir = g_build_filename (g_get_home_dir (), THUNDERBIRD_MAIL_DIR_S, NULL);
}
- return TRUE;
+ return thunderbird_module_is_running();
}
@@ -84,156 +126,330 @@
thunderbird_mail_dir = NULL;
}
- return TRUE;
+ return !thunderbird_module_is_running();
}
void
-thunderbird_watch_emails ()
+thunderbird_watch_emails (DBConnection *db_con)
{
- char *thunderbird_dir, *thunderbird_profile_file;
- GKeyFile *key_file;
- int i;
- GSList *profile_dirs, *list_of_mboxes;
- const GSList *tmp;
+ if( thunderbird_mail_dir != NULL ) {
+ tracker_log("Thunderbird directory lookup: \"%s\"", thunderbird_mail_dir);
+ email_watch_directory(thunderbird_mail_dir, "ThunderbirdEmails");
+ }
+}
- thunderbird_dir = g_build_filename (g_get_home_dir (), THUNDERBIRD_MAIL_DIR_S, NULL);
+gboolean
+thunderbird_file_is_interesting (FileInfo *info, const char *service)
+{
+ //Filename should be objectX.tms (Thunderbird Message Summary)
+ if (g_str_has_suffix(info->uri, ".tms")) {
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}
- thunderbird_profile_file = g_build_filename (thunderbird_dir, "profiles.ini", NULL);
- if (!g_file_test (thunderbird_profile_file, G_FILE_TEST_EXISTS)) {
- g_free (thunderbird_profile_file);
- g_free (thunderbird_dir);
- return;
- }
+void
+thunderbird_index_file (DBConnection *db_con, FileInfo *info)
+{
+ g_return_if_fail (db_con && info);
+ tracker_log ("Thunderbird file index: \"%s\"\n",info->uri);
+ if(email_parse_mail_tms_file_and_save_new_emails (db_con, MAIL_APP_THUNDERBIRD, info->uri))
+ unlink(info->uri);
+}
- key_file = g_key_file_new ();
- g_key_file_load_from_file (key_file, thunderbird_profile_file, G_KEY_FILE_NONE, NULL);
- g_free (thunderbird_profile_file);
+/********************************************************************************************
+ Private functions
+*********************************************************************************************/
- profile_dirs = NULL;
+static gboolean
+email_parse_mail_tms_file_and_save_new_emails (DBConnection *db_con, MailApplication mail_app, const char
*path)
+{
+ MailMessage *mail_msg;
- for (i = 0; ; i++) {
- char *str_id, *profile_id;
+ g_return_val_if_fail (db_con, FALSE);
+ g_return_val_if_fail (path, FALSE);
+ mail_msg = email_parse_mail_tms_file_by_path (mail_app, path);
- str_id = g_strdup_printf ("%d", i);
+ if (!mail_msg) {
+ return FALSE;
+ }
+ //Check if it is valid mail message
+
+ if(mail_msg->parent_mail_file->mail_app == MAIL_APP_THUNDERBIRD ) {
+// || mail_msg->parent_mail_file->mail_app == MAIL_APP_THUNDERBIRD_FEED) {
+ tracker_db_email_save_email (db_con, mail_msg);
+ email_free_mail_file(mail_msg->parent_mail_file);
+ email_free_mail_message (mail_msg);
+ return TRUE;
+ }
+
+ email_free_mail_file(mail_msg->parent_mail_file);
+ email_free_mail_message (mail_msg);
+
+ return FALSE;
+}
- profile_id = g_strconcat ("Profile", str_id, NULL);
+static MailMessage *
+email_parse_mail_tms_file_by_path (MailApplication mail_app, const char *path)
+{
+ MailMessage *mail_msg;
+ gsize length;
+ gchar *contents = NULL;
+ GMarkupParseContext *context;
+ GError *error = NULL;
+ TmsParserData *parser_data;
+
+ g_return_val_if_fail (path, NULL);
+
+ parser_data = g_new0(TmsParserData,1);
+ parser_data->mail_message = email_allocate_mail_message();
+ mail_msg = parser_data->mail_message;
+ mail_msg->parent_mail_file = g_slice_new0 (MailFile);
+
+ mail_msg->parent_mail_file->path = g_strdup(path);
- g_free (str_id);
+ if (!g_file_get_contents(path, &contents, &length, &error)) {
+ tracker_log ("Error reading Thunderbird message summary %s\n", error->message);
+ g_error_free(error);
+ return mail_msg;
+ }
- if (!g_key_file_has_group (key_file, profile_id)) {
- /* there isn't probably more profiles */
- g_free (profile_id);
- break;
- }
+ context = g_markup_parse_context_new(&tms_file_parser, G_MARKUP_TREAT_CDATA_AS_TEXT,
+ parser_data, free_parser_data );
- if (g_key_file_has_key (key_file, profile_id, "Path", NULL)) {
- gboolean path_is_relative;
- char *path;
+ if (!g_markup_parse_context_parse(context, contents, length, NULL)) {
+ tracker_log ("Error parsing context with length \n");
+ g_markup_parse_context_free(context);
+ g_free(contents);
+ return mail_msg;
+ }
- path = g_key_file_get_string (key_file, profile_id, "Path", NULL);
-
- if (!path) {
- g_free (profile_id);
- continue;
- }
-
- if (g_key_file_has_key (key_file, profile_id, "IsRelative", NULL)) {
- path_is_relative = g_key_file_get_boolean (key_file, profile_id,
"IsRelative", NULL);
- } else {
- path_is_relative = !g_path_is_absolute (path);
- }
-
- if (path_is_relative) {
- char *absolute_path;
-
- absolute_path = g_build_filename (thunderbird_dir, path, NULL);
-
- profile_dirs = g_slist_prepend (profile_dirs, absolute_path);
- } else {
- profile_dirs = g_slist_prepend (profile_dirs, g_strdup (path));
- }
-
- g_free (path);
- }
-
- g_free (profile_id);
+ if (!g_markup_parse_context_end_parse(context, NULL)) {
+ tracker_log ("Error parsing context \n");;
+ g_markup_parse_context_free(context);
+ g_free(contents);
+ return mail_msg;
}
- g_free (thunderbird_dir);
+ g_markup_parse_context_free(context);
+ g_free(contents);
+ return mail_msg;
+}
+static void
+text_handler(GMarkupParseContext *context, const gchar *text,
+ gsize text_len, gpointer user_data, GError **error)
+{
+ TmsParserData *data = user_data;
- list_of_mboxes = NULL;
+ if (data->buffer == NULL)
+ data->buffer = g_string_new_len(text, text_len);
+ else
+ g_string_append_len(data->buffer, text, text_len);
+}
- for (tmp = profile_dirs; tmp; tmp = tmp->next) {
- const char *dir;
- dir = tmp->data;
+static void
+start_element_handler(GMarkupParseContext *context,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data, GError **error)
+{
+ TmsParserData *data = user_data;
- list_of_mboxes = find_thunderbird_mboxes (list_of_mboxes, dir);
+ if (data->buffer != NULL) {
+ g_string_free(data->buffer, TRUE);
+ data->buffer = NULL;
}
+
+ if (!strcmp(element_name, "MailMessage")) {
+ data->mail_message->parent_mail_file->mail_app = MAIL_APP_THUNDERBIRD;
+ } else if (!strcmp(element_name, "DeleteFolder")) {
+ //data->mail_message->tms_type = TYPE_DELETE_FOLDER;
+ } else if (!strcmp(element_name, "FeedItem")) {
+ data->mail_message->parent_mail_file->mail_app = MAIL_APP_THUNDERBIRD_FEED;
+ } else if (!strcmp(element_name, "FolderFile")) {
+ data->tag = TAG_FOLDER_FILE;
+ } else if (!strcmp(element_name, "Author")) {
+ data->tag = TAG_AUTHOR;
+ } else if (!strcmp(element_name, "Date")) {
+ data->tag = TAG_DATE;
+ } else if (!strcmp(element_name, "Folder")) {
+ data->tag = TAG_FOLDER;
+ } else if (!strcmp(element_name, "FolderFile")) {
+ data->tag = TAG_FOLDER_FILE;
+ } else if (!strcmp(element_name, "HasOffline")) {
+ data->tag = TAG_HAS_OFFLINE;
+ } else if (!strcmp(element_name, "MessageId")) {
+ data->tag = TAG_MESSAGE_ID;
+ } else if (!strcmp(element_name, "MessageSize")) {
+ data->tag = TAG_MESSAGE_SIZE;
+ } else if (!strcmp(element_name, "MessageOffset")) {
+ data->tag = TAG_MESSAGE_OFFSET;
+ } else if (!strcmp(element_name, "OfflineSize")) {
+ data->tag = TAG_OFFLINE_SIZE;
+ } else if (!strcmp(element_name, "Recipients")) {
+ data->tag = TAG_RECIPIENTS;
+ } else if (!strcmp(element_name, "Subject")) {
+ data->tag = TAG_SUBJECT;
+ } else if (!strcmp(element_name, "MessageKey")) {
+ data->tag = TAG_MESSAGE_KEY;
+ } else if (!strcmp(element_name, "Uri")) {
+ data->tag = TAG_URI;
+ } else if (!strcmp(element_name, "FeedURL")) {
+ data->tag = TAG_FEED_URL;
+ }
+}
- for (tmp = list_of_mboxes; tmp; tmp = tmp->next) {
- const char *path;
- char *base_dir;
- path = tmp->data;
+static void
+end_element_handler(GMarkupParseContext *context, const gchar *element_name,
+ gpointer user_data, GError **error)
+{
+ TmsParserData *data = user_data;
+ gchar *buffer;
+ MailMessage *msg;
+ msg = data->mail_message;
+
+ if (data->buffer == NULL)
+ return;
+ buffer = g_string_free(data->buffer, FALSE);
+ data->buffer = NULL;
+
+ if (*buffer != '\0') {
+ switch(data->tag) {
+ case TAG_AUTHOR:
+ msg->from = g_strdup(buffer);
+ break;
+ case TAG_DATE:
+ msg->date = get_date_from_string(g_strdup(buffer));
+ break;
+ case TAG_FOLDER:
+ //msg->folder = g_strdup(buffer);
+ break;
+ case TAG_FOLDER_FILE:
+ //msg->folder_file = g_strdup(buffer);
+ break;
+ case TAG_HAS_OFFLINE:
+ //msg->has_offline = get_boolean_from_string(g_strdup(buffer));
+ break;
+ case TAG_MESSAGE_ID:
+ msg->message_id = g_strdup(buffer);
+ break;
+ case TAG_MESSAGE_SIZE:
+ //Value should be uint
+ //msg->message_size = atoi(g_strdup(buffer));
+ break;
+ case TAG_MESSAGE_OFFSET:
+ msg->offset = atoi(g_strdup(buffer));
+ break;
+ case TAG_OFFLINE_SIZE:
+ //msg->offline_size = atoi(g_strdup(buffer));
+ break;
+ case TAG_RECIPIENTS:
+ //Should be function to parse recipients
+ //
+ //g_slist_prepend(msg->to,g_strdup(buffer));
+ msg->to = add_persons_from_internet_address_list_string_parsing (NULL,
g_strdup(buffer));
+ break;
+ case TAG_SUBJECT:
+ msg->subject = g_strdup(buffer);
+ break;
+ case TAG_MESSAGE_KEY:
+ //msg->message_key = g_strdup(buffer);
+ break;
+ case TAG_URI:
+ msg->uri = g_strdup(buffer);
+ break;
+ case TAG_FEED_URL:
+ //msg->url = g_strdup(buffer);
+ break;
+ }
+ }
- base_dir = g_path_get_dirname (path);
+ data->tag = TAG_NONE;
+
+ g_free(buffer);
- tracker_add_service_path ("ThunderbirdEmails", base_dir);
-
- g_free (base_dir);
-
-
- }
-
- g_slist_foreach (list_of_mboxes, (GFunc) g_free, NULL);
- g_slist_free (list_of_mboxes);
}
+static GMarkupParser tms_file_parser =
+{
+ start_element_handler,
+ end_element_handler,
+ text_handler,
+ NULL,
+ NULL
+};
-gboolean
-thunderbird_file_is_interesting (FileInfo *info, const char *service)
+static glong
+get_date_from_string (const gchar *date_string)
{
+ glong date;
+ gchar *char_date=NULL;
+
+ date = strtol(date_string,&char_date,10);
+ if (*char_date)
+ return 0;
- if (info->is_directory) {
- return TRUE;
- }
+ return date;
+}
- return g_str_has_suffix (info->uri, ".msf");
+static gboolean
+get_boolean_from_string(const gchar *boolean_string)
+{
+ if(g_str_equal(boolean_string,"true"))
+ return TRUE;
+ return FALSE;
+
+}
+static void
+free_parser_data(gpointer user_data)
+{
+ TmsParserData *data = user_data;
+ if(data->buffer != NULL)
+ g_string_free(data->buffer,TRUE);
+ g_free(data);
}
-
-void
-thunderbird_index_file (DBConnection *db_con, FileInfo *info)
+static GSList *
+add_persons_from_internet_address_list_string_parsing (GSList *list, const gchar *s)
{
- g_return_if_fail (db_con && info);
+ InternetAddressList *addrs_list, *tmp;
- if (g_str_has_suffix (info->uri, ".msf")) {
- char *uri = g_strndup (info->uri, strlen (info->uri) - 4);
- email_parse_mail_file_and_save_new_emails (db_con, MAIL_APP_THUNDERBIRD, uri, NULL, NULL,
NULL, NULL, NULL);
- g_free (uri);
+ g_return_val_if_fail (s, NULL);
- } else if (strcmp (info->mime, "message/rfc822") == 0) {
- email_parse_and_save_mail_message (db_con, MAIL_APP_THUNDERBIRD, info->uri, NULL, NULL);
- }
-}
+ addrs_list = internet_address_parse_string (s);
+ for (tmp = addrs_list; tmp; tmp = tmp->next) {
+ MailPerson *mp;
+ mp = email_allocate_mail_person ();
+ mp->addr = g_strdup (tmp->address->value.addr);
+ if(tmp->address->name)
+ mp->name = g_strdup (tmp->address->name);
+ else
+ mp->name = g_strdup (tmp->address->value.addr);
+
+ list = g_slist_prepend (list, mp);
+ }
-/********************************************************************************************
- Private functions
-*********************************************************************************************/
+ internet_address_list_destroy (addrs_list);
+ return list;
+}
+
/*
* Currently parser is only looking for server hostnames. Here it means that we
* only want to know folders containing emails currently used by user.
Index: AUTHORS
===================================================================
--- AUTHORS (revision 807)
+++ AUTHORS (working copy)
@@ -28,3 +28,4 @@
John Stowers <john stowers gmail com>
Neil Patel <njpatel gmail com>
Anders Rune Jensen <anders iola dk>
+Michal Pryc <Michal.Pryc at Sun.Com>
Index: Makefile.am
===================================================================
--- Makefile.am (revision 807)
+++ Makefile.am (working copy)
@@ -1,5 +1,9 @@
SUBDIRS = data src filters thumbnailers docs po python
+if WITH_THUNDERBIRD_EXTENSION
+SUBDIRS += @THUNDERBIRD_EXTENSION_DIRECTORY@
+endif
+
autostartdir = $(sysconfdir)/xdg/autostart
autostart_in_files = trackerd.desktop.in
autostart_DATA = $(autostart_in_files:.desktop.in=.desktop)
@@ -21,7 +25,8 @@
rdf-query-examples/wallpapers.rdf \
intltool-extract.in \
intltool-merge.in \
- intltool-update.in
+ intltool-update.in \
+ thunderbird-extension.diff
CLEANFILES = $(autostart_DATA)
Index: configure.ac
===================================================================
--- configure.ac (revision 807)
+++ configure.ac (working copy)
@@ -594,9 +594,41 @@
AM_CONDITIONAL(ENABLE_PREFERENCES, test "$enable_preferences" != "no")
+##################################################################
+# check for thunderbird extension
+##################################################################
+AC_ARG_WITH(thunderbird-extension,
+ AC_HELP_STRING([--with-thunderbird-extension], [Build with thunderbird extension]),
+ [
+ enable_tbird=no
+ tbird_extension_directory=thunderbird-extension
+ AC_CHECK_FILES( $tbird_extension_directory/Makefile.am \
+ $tbird_extension_directory/install.rdf \
+ $tbird_extension_directory/components/BeagleIndexer.js,
+ [
+ AC_CHECK_FILES($tbird_extension_directory/patched.tmp,
+ [
+ enable_tbird=yes
+ AC_SUBST(THUNDERBIRD_EXTENSION_DIRECTORY,[$tbird_extension_directory])
+ thunderbird_extension_message="
+ *****INFO*****
+ You have choosen to build with the Thunderbird extension.
+ Please refer to the README file, for notes about installing
+ the extension in the Thunderbird application
+ "
+ ],
+ AC_MSG_ERROR([The Thunderbird extension was not patched. Please see README
file])
+ )
+ ],
+ AC_MSG_ERROR([Couldn't find Thunderbird extension source directory. Please
see README file])
+ )
+ ],
+ [
+ enable_tbird=no
+ ])
+AM_CONDITIONAL(WITH_THUNDERBIRD_EXTENSION, test "x$enable_tbird" = "xyes")
-
##################################################################
# check for poppler's glib bingings
##################################################################
@@ -739,6 +771,7 @@
po/Makefile.in
python/Makefile
python/deskbar-handler/Makefile
+ $thunderbird_makefile
])
AC_CONFIG_HEADERS([config.h])
@@ -773,6 +806,12 @@
xml/html formats: $have_libxml2
embedded/sidecar xmp: $have_exempi
+Thunderbird extension:
+
+ Build Thunderbird extension: $enable_tbird
+ The extension will be build to: $tbird_extension_directory/beagle.xpi
+ $thunderbird_extension_message
+
"
echo "
Index: README
===================================================================
--- README (revision 807)
+++ README (working copy)
@@ -145,7 +145,15 @@
* xdg-utils (provides some functionality needed by tracker-search-tool but falls
back to gnome-open if not available)
+Optional packages for Thunderbird support:
+* thunderbird-extension from Beagle project
+ This extension can be obtained using SVN, by running following command:
+
+svn co http://svn.gnome.org/svn/beagle/trunk/beagle/thunderbird-extension \
+path_to_tracker_project/thunderbird-extension
+
+
COMPILATION
To compile Tracker, use the following commands :
@@ -161,6 +169,24 @@
directory and/or might need to update ld_conf if you install into non
standard directories.)
+Notes to build with thunderbird-extension
+
+First you need to apply thunderbird-extension.diff patch, by running the command :
+patch -d thunderbird-extension -p0 < thunderbird-extension.diff
+
+on Solaris :
+gpatch -d thunderbird-extension -p0 < thunderbird-extension.diff
+
+To compile thunderbird extension us the following commands :
+./configure --with-thunderbird-extension
+make
+(login as root)
+make install
+
+Install extension from thunderbird-extension/beagle.xpi in your
+Thunderbird application by selecting option :
+Tools -> Extensions (Add-ons) -> Install
+
Notes to build tracker on Solaris
To compile Tracker with GCC on Solaris uses the following commands :
Index: src/trackerd/tracker-email-evolution.c
===================================================================
--- src/trackerd/tracker-email-evolution.c (revision 807)
+++ src/trackerd/tracker-email-evolution.c (working copy)
@@ -2404,8 +2404,11 @@
mp = email_allocate_mail_person ();
- mp->name = g_strdup (addrs_list->address->name);
- mp->addr = g_strdup (addrs_list->address->value.addr);
+ mp->addr = g_strdup (tmp->address->value.addr);
+ if(tmp->address->name)
+ mp->name = g_strdup (tmp->address->name);
+ else
+ mp->name = g_strdup (tmp->address->value.addr);
list = g_slist_prepend (list, mp);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]