#!/bin/bash
#Pfind - File finder
#Copyright 2007,2008
#Sigmund Berglund

#------------------------------
#This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2.

#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. <http://www.gnu.org/licenses/>.
#------------------------------

export VERSION="4.7"
CURDIR="`pwd`"
export PROGPID=$$ #every tmp-file gets a tail of PID. This seperates different instances of Pfind
export PROGPATH=`dirname "$0"`"/"
TAB="$PROGPATH""tab.png"
TAB100="$PROGPATH""tab100.png"

overview (){
TMP=`ps -eo pid,command`; TMP=`echo "$TMP" | grep 'box_splash'` #if no splash from search...
if [ -z "$TMP" ]; then #...this is just a gui-update
	echo "$LOC602" > /tmp/pfind-splashtext
	echo 0 > /tmp/pfind-splash #reset progress bar
	"$PROGPATH"box_splash &
fi
COUNTALL=`cat /tmp/pfind-files$PROGPID | wc -l`
COUNTDOC=`grep -ic "('$EXTDOC')" /tmp/pfind-files$PROGPID`
if [ $COUNTDOC -gt 0 ]; then GUIDOC="
<hbox>
 <vbox>
  <text><label>$LOC_DOCUMENTS:</label></text>
 </vbox>
 <vbox>
  <text><label>$COUNTDOC</label></text>
  <pixmap><input file>$TAB</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-open\"></input>
   <label>$LOC_BROWSE</label>
   <action>$PROGPATH/func -exec_doc</action>
  </button>
  <pixmap><input file>$TAB100</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-go-forward\"></input>
   <action>$PROGPATH/func -view_doc</action>
   <action>$PROGPATH/func -build_treeitems</action>
   <action>Refresh:TREE</action>
  </button>
 </vbox>
</hbox>"
else GUIDOC=""; fi
COUNTPIC=`grep -ic "('$EXTPIC')" /tmp/pfind-files$PROGPID`
if [ $COUNTPIC -gt 0 ]; then GUIPIC="
<hbox>
 <vbox>
  <text><label>$LOC_PICTURES:</label></text>
 </vbox>
 <vbox>
  <text><label>$COUNTPIC</label></text>
  <pixmap><input file>$TAB</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-select-color\"></input>
   <label>$LOC_VIEW</label>
   <action>$PROGPATH/func -exec_pic</action>
  </button>
  <pixmap><input file>$TAB100</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-go-forward\"></input>
   <action>$PROGPATH/func -view_pic</action>
   <action>$PROGPATH/func -build_treeitems</action>
   <action>Refresh:TREE</action>
  </button>
 </vbox>
</hbox>"
else GUIPIC=""; fi
COUNTMUSIC=`grep -ic "('$EXTMUSIC')" /tmp/pfind-files$PROGPID`
if [ $COUNTMUSIC -gt 0 ]; then GUIMUSIC="
<hbox>
 <vbox>
  <text><label>$LOC_SOUNDFILES:</label></text>
 </vbox>
 <vbox>
  <text><label>$COUNTMUSIC</label></text>
  <pixmap><input file>$TAB</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-media-play\"></input>
   <label>$LOC_PLAY</label>
   <action>$PROGPATH/func -exec_music</action>
  </button>
  <pixmap><input file>$TAB100</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-go-forward\"></input>
   <action>$PROGPATH/func -view_music</action>
   <action>$PROGPATH/func -build_treeitems</action>
   <action>Refresh:TREE</action>
  </button>
 </vbox>
</hbox>"
else GUIMUSIC=""; fi
COUNTVIDEO=`grep -ic "('$EXTVIDEO')" /tmp/pfind-files$PROGPID`
if [ $COUNTVIDEO -gt 0 ]; then GUIVIDEO="
<hbox>
 <vbox>
  <text><label>$LOC_VIDEOS:</label></text>
 </vbox>
 <vbox>
  <text><label>$COUNTVIDEO</label></text>
  <pixmap><input file>$TAB</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-media-play\"></input>
   <label>$LOC_PLAY</label>
   <action>$PROGPATH/func -exec_video</action>
  </button>
  <pixmap><input file>$TAB100</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-go-forward\"></input>
   <action>$PROGPATH/func -view_video</action>
   <action>$PROGPATH/func -build_treeitems</action>
   <action>Refresh:TREE</action>
  </button>
 </vbox>
</hbox>"
else GUIVIDEO=""; fi
COUNTMAIL=`grep -ic "('$EXTMAIL')" /tmp/pfind-files$PROGPID`
if [ $COUNTMAIL -gt 0 ]; then GUIMAIL="
<hbox>
 <vbox>
  <text><label>$LOC_MAILS:</label></text>
 </vbox>
 <vbox>
  <text><label>$COUNTMAIL</label></text>
  <pixmap><input file>$TAB</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-open\"></input>
   <label>$LOC_BROWSE</label>
   <action>$PROGPATH/func -exec_mail</action>
  </button>
  <pixmap><input file>$TAB100</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-go-forward\"></input>
   <action>$PROGPATH/func -view_mail</action>
   <action>$PROGPATH/func -build_treeitems</action>
   <action>Refresh:TREE</action>
  </button>
 </vbox>
</hbox>"
else GUIMAIL=""; fi
COUNTZIP=`grep -ic "('$EXTZIP')" /tmp/pfind-files$PROGPID`
if [ $COUNTZIP -gt 0 ]; then GUIZIP="
<hbox>
 <vbox>
  <text><label>$LOC_COMPRESSED:</label></text>
 </vbox>
 <vbox>
  <text><label>$COUNTZIP</label></text>
  <pixmap><input file>$TAB</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-open\"></input>
   <label>$LOC_BROWSE</label>
   <action>$PROGPATH/func -exec_zip</action>
  </button>
  <pixmap><input file>$TAB100</input></pixmap>
 </vbox>
 <vbox>
  <button><input file stock=\"gtk-go-forward\"></input>
   <action>$PROGPATH/func -view_zip</action>
   <action>$PROGPATH/func -build_treeitems</action>
   <action>Refresh:TREE</action>
  </button>
 </vbox>
</hbox>"
else GUIZIP=""; fi
COUNTCODE=`grep -ic "('$EXTCODE')" /tmp/pfind-files$PROGPID`
if [ $COUNTCODE -gt 0 ]; then GUICODE="
<hbox>
 <vbox>
  <text><label>$LOC_CODEFILES:</label></text>
 </vbox>
 <vbox>
  <text><label>$COUNTCODE</label></text>
  <pixmap><input file>$TAB</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-open\"></input>
   <label>$LOC_BROWSE</label>
   <action>$PROGPATH/func -exec_code</action>
  </button>
  <pixmap><input file>$TAB100</input></pixmap>
 </vbox>
 <vbox>
  <button>
   <input file stock=\"gtk-go-forward\"></input>
   <action>$PROGPATH/func -view_code</action>
   <action>$PROGPATH/func -build_treeitems</action>
   <action>Refresh:TREE</action>
  </button>
 </vbox>
</hbox>"
else GUICODE=""; fi
. $PROGPATH/func -build_treeitems #build treeitems
echo 100 > /tmp/pfind-splash #to end progressbar.
#---
export Overview="<window title=\"Pfind $VERSION\"icon-name=\"gtk-find\">
<hbox>
<vbox>
 <menubar>
  <menu>
   <menuitem icon=\"gtk-find\">
    <label>$LOC101</label>
    <action>$PROGPATH/func -search</action>
    <action>$PROGPATH/func -build_treeitems</action>
    <action>Refresh:TREE</action>
    <action type=\"exit\">0</action>
   </menuitem>
   <menuitem icon=\"gtk-fullscreen\">
    <label>$LOC_ADVANCED $LOC101</label>
    <action>$PROGPATH/func -pfilesearch</action>
    <action>$PROGPATH/func -build_treeitems</action>
    <action>Refresh:TREE</action>
    <action type=\"exit\">0</action>
   </menuitem>
   <separator></separator>
   <menuitem icon=\"gtk-preferences\">
    <label>$LOC102</label>
    <action type=\"exit\">98</action>
   </menuitem>
   <separator></separator>
   <menuitem icon=\"gtk-quit\">
    <label>$LOC_QUIT</label>
    <action type=\"exit\">*</action>
   </menuitem>
   <label>$LOC100</label>
  </menu>
  <menu>
   <menuitem icon=\"gtk-apply\">
    <label>$LOC110</label>
    <action>$PROGPATH/func -execute \$TREE &</action>
   </menuitem>
   <menuitem>
    <label>$LOC111...</label>
    <action>$PROGPATH/func_openwith -\$TREE &</action>
   </menuitem>
   <menuitem icon=\"gtk-edit\">
    <label>$LOC112</label>
    <action>$PROGPATH/func_openastext -\$TREE &</action>
   </menuitem>
   <menuitem icon=\"gtk-open\">
    <label>$LOC113...</label>
    <action>$PROGPATH/func_showlocation -\$TREE &</action>
   </menuitem>
   <menuitem icon=\"gtk-execute\">
    <label>$LOC114</label>
    <action>$PROGPATH/func_run -\$TREE &</action>
   </menuitem>
   <separator></separator>
   <menuitem icon=\"gtk-convert\">
    <label>$LOC115</label>
    <action>$PROGPATH/func -rename</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <menuitem icon=\"gtk-copy\">
    <label>$LOC116</label>
    <action>. $PROGPATH/func -copy</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <menuitem icon=\"gtk-ok\">
    <label>$LOC117</label>
    <action>. $PROGPATH/func -move</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <menuitem icon=\"gtk-dnd-multiple\">
    <label>$LOC118</label>
    <action>. $PROGPATH/func -link</action>
   </menuitem>
   <separator></separator>
   <menuitem icon=\"gtk-cancel\">
    <label>$LOC119</label>
    <action>. $PROGPATH/func -delete</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <menuitem icon=\"gtk-delete\">
    <label>$LOC120</label>
    <action>. $PROGPATH/func -trash</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <label>$LOC109</label>
  </menu>
  <menu>
   <menuitem icon=\"gtk-clear\">
    <label>$LOC131</label>
    <action>$PROGPATH/func_filter -Remove_files_from_list</action>
    <action>$PROGPATH/func -build_treeitems</action>
    <action>Refresh:TREE</action>
  </menuitem>
   <menuitem icon=\"gtk-find\">
    <label>$LOC132</label>
    <action>$PROGPATH/func_filter -Find_files_in_list</action>
    <action>$PROGPATH/func -build_treeitems</action>
    <action>Refresh:TREE</action>
  </menuitem>
   <menuitem icon=\"gtk-find\">
    <label>$LOC133</label>
    <action>$PROGPATH/func_filter -Search_for_TEXT_in_files</action>
    <action>$PROGPATH/func -build_treeitems</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <separator></separator>
   <menuitem icon=\"gtk-open\">
    <label>$LOC402</label>
    <action>$PROGPATH/func -view_in_filemanager</action>
   </menuitem>
   <menuitem icon=\"gtk-edit\">
    <label>$LOC404...</label>
    <action>$PROGPATH/func -export_list_to_texteditor</action>
   </menuitem>
   <menuitem icon=\"gtk-edit\">
    <label>$LOC403</label>
    <action>$PROGPATH/func -open_files_in_texteditor</action>
   </menuitem>
   <menuitem icon=\"gtk-select-color\">
    <label>$LOC405</label>
    <action>$PROGPATH/func -open_with_imagebrowser</action>
   </menuitem>
   <menuitem icon=\"gtk-select-color\">
    <label>$LOC406</label>
    <action>$PROGPATH/func -view_images_in_slideshow</action>
   </menuitem>
   <menuitem icon=\"gtk-execute\">
    <label>$LOC407</label>
    <action>$PROGPATH/func -open_with_musicplayer</action>
   </menuitem>
   <menuitem icon=\"gtk-execute\">
    <label>$LOC408</label>
    <action>$PROGPATH/func -open_with_videoplayer</action>
   </menuitem>
   <menuitem icon=\"gtk-cdrom\">
    <label>$LOC409</label>
    <action>$PROGPATH/func -open_with_burner</action>
   </menuitem>
   <menuitem icon=\"gtk-copy\">
    <label>$LOC410</label>
    <action>$PROGPATH/func -copy_files</action>
   </menuitem>
   <menuitem icon=\"gtk-execute\">
    <label>$LOC411</label>
    <action>$PROGPATH/func -execute_command</action>
   </menuitem>
   <label>$LOC130</label>
  </menu>
  <menu>
   <menuitem icon=\"gtk-sort-ascending\">
    <label>$LOC151</label>
    <action>$PROGPATH/func -sort_filename</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <menuitem icon=\"gtk-sort-ascending\">
    <label>$LOC152</label>
    <action>$PROGPATH/func -sort_extension</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <menuitem icon=\"gtk-sort-ascending\">
    <label>$LOC153</label>
    <action>$PROGPATH/func -sort_size</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <menuitem icon=\"gtk-sort-ascending\">
    <label>$LOC154</label>
    <action>$PROGPATH/func -sort_time</action>
    <action>Refresh:TREE</action>
   </menuitem>
   <label>$LOC150</label>
  </menu>
  <menu>
   <menuitem icon=\"gtk-about\">
    <label>$LOC141</label>
    <action>$PROGPATH/func -about &</action>
   </menuitem>
   <label>$LOC140</label>
  </menu>
 </menubar>        
 <frame $LOC603>
  <hbox>
   <entry activates-default=\"true\">
    <variable>SEARCHSTRING</variable>
    <input>echo $SEARCHSTRING</input>
   </entry>
   <button can-default=\"true\" has-default=\"true\" use-stock=\"true\">
    <input file stock=\"gtk-refresh\"></input>
    <label>$LOC_SEARCH</label>
    <action>$PROGPATH/func -search</action>
    <action>$PROGPATH/func -build_treeitems</action>
    <action>Refresh:TREE</action>
    <action type=\"exit\">0</action>
   </button>
  </hbox>
 </frame>
 <frame $LOC605>
  <hbox>
   <vbox>
    <text use-markup=\"true\"><label>\"$LOC604:\"</label></text>
   </vbox>
   <vbox>
    <text use-markup=\"true\"><label>\"<b>$COUNTALL</b>\"</label></text>
    <pixmap><input file>$TAB</input></pixmap>
   </vbox>
   <vbox>
    <button>
     <input file stock=\"gtk-open\"></input>
     <label>$LOC_BROWSE</label>
     <action>$PROGPATH/func -exec_all</action>
    </button>
    <pixmap><input file>$TAB100</input></pixmap>
   </vbox>
   <vbox>
    <button>
     <input file stock=\"gtk-go-forward\"></input>
     <action>$PROGPATH/func -view_all</action>
     <action>$PROGPATH/func -build_treeitems</action>
     <action>Refresh:TREE</action>
    </button>
   </vbox>
  </hbox>
  <pixmap><input file>$TAB</input></pixmap>
$GUIDOC
$GUIPIC
$GUIMUSIC
$GUIVIDEO
$GUIMAIL
$GUIZIP
$GUICODE
 </frame>
 <button>
  <input file stock=\"gtk-quit\"></input>
  <action type=\"exit\">99</action>
 </button>
</vbox>
 <tree rules_hint=\"true\" exported_column=\"1\">
  <label>$LOC200|$LOC201|$LOC202|$LOC203|$LOC204|$LOC205</label>
  <input>cat /tmp/pfind-treeitems$PROGPID</input>
  <variable>TREE</variable>
  <height>100</height><width>400</width>
  <action>$PROGPATH/func -execute \$TREE &</action>
 </tree>
</hbox>
</window>"
I=$IFS; IFS=""
for STATEMENTS in  $(gtkdialog3 --program=Overview --center); do
	eval $STATEMENTS
done
IFS=$I
case $EXIT in
	0) echo;;
	98) configure;;
	*)	rm -dr /tmp/searchresult$PROGPID
		rm /tmp/pfind*$PROGPID
		exit;;
esac
overview
}

gui_advanced (){
	$PROGPATH/func -pfilesearch
	$PROGPATH/func -build_treeitems
	overview
}

gui_simple (){
export Pfind_simple="
<window title=\"Pfind $VERSION\" icon-name=\"gtk-find\">
<vbox>
 <frame $LOC603>
 <text><label>\"\"</label></text>
  <entry activates-default=\"true\">
   <variable>SEARCHSTRING</variable>
   <input>echo $SEARCHSTRING</input>
  </entry>
 <text><label>\"\"</label></text>
 </frame>
 <hbox>
  <button can-default=\"true\" has-default=\"true\" use-stock=\"true\">
   <input file stock=\"gtk-find\"></input>
   <label>$LOC_SEARCH</label>
   <action>. $PROGPATH/func -search</action>
   <action type=\"exit\">0</action>
  </button>
  <button>
   <input file stock=\"gtk-fullscreen\"></input>
   <label>$LOC_ADVANCED</label>
   <action>$PROGPATH/func -pfilesearch</action>
   <action type=\"exit\">0</action>
  </button>
  <button>
   <input file stock=\"gtk-preferences\"></input>
   <label>$LOC102</label>
   <action type=\"exit\">98</action>
  </button>
  <button><input file stock=\"gtk-quit\"></input><action type=\"exit\">99</action></button>
 </hbox>
</vbox></window>"
I=$IFS; IFS=""
for STATEMENTS in  $(gtkdialog3 --program=Pfind_simple --center); do
	eval $STATEMENTS
done
IFS=$I
case $EXIT in
	98) configure
		gui_simple;;
	99)	rm -dr /tmp/searchresult$PROGPID
		rm /tmp/pfind*$PROGPID
		exit;;
	abort) rm -dr /tmp/searchresult$PROGPID
		rm /tmp/pfind*$PROGPID
		exit;;
esac
if [ -s /tmp/pfind-view$PROGPID ]; then
	overview
else
	gui_simple
fi
}

configure () {
PROFILE=`grep PROFILE $HOME/.pfind/pfindrc | sed -e s/^.*\=//g`
export Pfind_preferences="
<window title=\"Pfind $LOC102\"icon-name=\"gtk-find\">
<vbox>
 <notebook labels=\" $LOC306 | $LOC307 | $LOC308 \">
  <vbox>
   <frame $LOC305>
     <hbox>
      <button>
       <input file stock=\"gtk-find\"></input>
       <label>$LOC305</label>
       <action>. pfilesearch -p</action>
      </button>
     </hbox>
     <text><label>\"\"</label></text>
     <text><label>$LOC304</label></text>
   </frame>
   <frame $LOC311>
    <hbox>
     <text><label>$LOC312</label></text>
     <combobox>
      <variable>NEW_LANGUAGE</variable>
      <item>$LANGUAGE</item>
      <item>auto</item>
      $LANGUAGES
     </combobox>
    </hbox>
   </frame>
  </vbox>
  <vbox>
   <frame $LOC200>
    <text use-markup=\"true\"><label>\"$LOC620\"</label></text>
    <combobox>
     <variable>FILENAME</variable>
     <item>$FILENAME</item>
     <item>$LOC314</item>
     <item>$LOC315</item>
     <item>$LOC316</item>
    </combobox>
   </frame>
   <frame>
    <checkbox>
     <label>\"$LOC317\"</label>
     <variable>ACCEPT_ARROW</variable>
     <default>$ACCEPT_ARROW</default>
    </checkbox>
    <text><label>\"\"</label></text>
    <hbox>
     <text><label>$LOC318</label></text>
     <entry><variable>MAX_LIST_ITEMS</variable><input>echo '$MAX_LIST_ITEMS'</input></entry>
    </hbox>
   </frame>
   <frame $LOC319>
    <hbox>
     <text><label>$LOC320</label></text>
     <entry><variable>FILEMANAGER</variable><input>echo '$FILEMANAGER'</input></entry>
    </hbox>
    <hbox>
     <text><label>$LOC321</label></text>
     <entry><variable>TEXTEDITOR</variable><input>echo '$TEXTEDITOR'</input></entry>
    </hbox>
   </frame>
  </vbox>
  <vbox>
   <text><label>$LOC402</label></text>
   <combobox>
    <variable>EXEC_FILEMANAGER_X</variable>
    <item>\"$EXEC_FILEMANAGER\"</item>
    <item>\"rox /tmp/searchresult/\"</item>
   </combobox>
   <text><label>$LOC403</label></text>
   <combobox>
    <variable>EXEC_TEXTEDITOR_X</variable>
    <item>\"$EXEC_TEXTEDITOR\"</item>
    <item>\"defaulttexteditor /tmp/searchresult/*\"</item>
    <item>\"geany /tmp/searchresult/*\"</item>
    <item>\"leafpad /tmp/searchresult/*\"</item>
   </combobox>
   <text><label>$LOC404</label></text>
   <combobox>
    <variable>EXEC_EXPORT_LIST_TO_TEXTEDITOR_X</variable>
    <item>\"$EXEC_EXPORT_LIST_TO_TEXTEDITOR\"</item>
    <item>\"defaulttexteditor /tmp/pfind-text\"</item>
    <item>\"geany /tmp/pfind-text\"</item>
    <item>\"leafpad /tmp/pfind-text\"</item>
   </combobox>
   <text><label>$LOC405</label></text>
   <combobox>
    <variable>EXEC_IMAGEBROWSER_X</variable>
    <item>\"$EXEC_IMAGEBROWSER\"</item>
    <item>\"fotoxx -i /tmp/searchresult\"</item>
    <item>\"gimv -d /tmp/searchresult/\"</item>
    <item>\"gpicview /tmp/searchresult/\"</item>
    <item>\"gqview /tmp/searchresult/\"</item>
    <item>\"gtksee -R /tmp/searchresult\"</item>
   </combobox>
   <text><label>$LOC406</label></text>
   <combobox>
    <variable>EXEC_SLIDESHOW_X</variable>
    <item>\"$EXEC_SLIDESHOW\"</item>
    <item>\"gimv -dS /tmp/searchresult/\"</item>
    <item>\"qiv -ftsNF /tmp/pfind-view\"</item>
    <item>\"gpicview /tmp/searchresult/\"</item>
    <item>\"gqview -s /tmp/searchresult/\"</item>
   </combobox>
   <text><label>$LOC407</label></text>
   <combobox>
    <variable>EXEC_MUSICPLAYER_X</variable>
    <item>\"$EXEC_MUSICPLAYER\"</item>
    <item>\"gmplayer -playlist /tmp/pfind-music.m3u\"</item>
    <item>\"gxine /tmp/searchresult/*\"</item>
    <item>\"pmusic /tmp/pfind-music.m3u\"</item>
    <item>\"xine -P /tmp/pfind-music.m3u\"</item>
    <item>\"xmms -p /tmp/pfind-music.m3u\"</item>
   </combobox>
   <text><label>$LOC408</label></text>
   <combobox>
    <variable>EXEC_VIDEOPLAYER_X</variable>
    <item>\"$EXEC_VIDEOPLAYER\"</item>
    <item>\"gmplayer -playlist /tmp/pfind-video.m3u\"</item>
    <item>\"gxine /tmp/searchresult/*\"</item>
    <item>\"xine -P /tmp/pfind-music.m3u\"</item>
   </combobox>
   <text><label>$LOC409</label></text>
   <combobox>
    <variable>EXEC_BURNER_X</variable>
    <item>\"$EXEC_BURNER\"</item>
    <item>\"grafburn -f /tmp/pfind-view\"</item>
    <item>\"pburn -i /tmp/pfind-view\"</item>
   </combobox>
  </vbox>
 </notebook>
 <hbox>
  <button><input file stock=\"gtk-cancel\"></input><label>$LOC_CANCEL</label></button>
  <button><input file stock=\"gtk-ok\"></input><label>$LOC_OK</label><action type=\"exit\">OK</action></button>
 </hbox>
</vbox>
</window>"
I=$IFS; IFS=""
for STATEMENTS in  $(gtkdialog3 --program=Pfind_preferences --center); do
	eval $STATEMENTS
done
IFS=$I
if [ $EXIT = OK ]; then
	if [ ! $LANGUAGE = $NEW_LANGUAGE ]; then
		LANGUAGE="$NEW_LANGUAGE"
		"$PROGPATH"/func -install
		FRAME="Info"; IMG="dialog-info"; TXT1="$LOC619"
		. "$PROGPATH"/box_ok
		. "$PROGPATH"/locals/$LANGUAGE
		SEARCHPATHS="/  ($LOC601)"
		FILENAME="$LOC316"
		write_config
		exit
	fi
	EXEC_FILEMANAGER="$EXEC_FILEMANAGER_X"
	EXEC_TEXTEDITOR="$EXEC_TEXTEDITOR_X"
	EXEC_EXPORT_LIST_TO_TEXTEDITOR="$EXEC_EXPORT_LIST_TO_TEXTEDITOR_X"
	EXEC_IMAGEBROWSER="$EXEC_IMAGEBROWSER_X"
	EXEC_SLIDESHOW="$EXEC_SLIDESHOW_X"
	EXEC_MUSICPLAYER="$EXEC_MUSICPLAYER_X"
	EXEC_VIDEOPLAYER="$EXEC_VIDEOPLAYER_X"
	EXEC_BURNER="$EXEC_BURNER_X"
	write_config
fi
}

write_config () {
	echo "export VERSION=$VERSION"							 > $HOME/.pfind/pfindrc
	echo "export LANGUAGE=$LANGUAGE"						>> $HOME/.pfind/pfindrc
	echo "export FILENAME=$FILENAME"						>> $HOME/.pfind/pfindrc
	echo "ACCEPT_ARROW=$ACCEPT_ARROW" 						>> $HOME/.pfind/pfindrc
	echo "PROFILE=\"$PROFILE\"" 							>> $HOME/.pfind/pfindrc
	echo "export MAX_LIST_ITEMS=$MAX_LIST_ITEMS"			>> $HOME/.pfind/pfindrc
	echo "export FILEMANAGER=\"$FILEMANAGER\""				>> $HOME/.pfind/pfindrc
	echo "export TEXTEDITOR=\"$TEXTEDITOR\""				>> $HOME/.pfind/pfindrc
	echo "export EXEC_FILEMANAGER=\"$EXEC_FILEMANAGER\""	>> $HOME/.pfind/pfindrc
	echo "export EXEC_TEXTEDITOR=\"$EXEC_TEXTEDITOR\""		>> $HOME/.pfind/pfindrc
	echo "export EXEC_EXPORT_LIST_TO_TEXTEDITOR=\"$EXEC_EXPORT_LIST_TO_TEXTEDITOR\"" >> $HOME/.pfind/pfindrc
	echo "export EXEC_IMAGEBROWSER=\"$EXEC_IMAGEBROWSER\""	>> $HOME/.pfind/pfindrc
	echo "export EXEC_SLIDESHOW=\"$EXEC_SLIDESHOW\""		>> $HOME/.pfind/pfindrc
	echo "export EXEC_MUSICPLAYER=\"$EXEC_MUSICPLAYER\""	>> $HOME/.pfind/pfindrc
	echo "export EXEC_VIDEOPLAYER=\"$EXEC_VIDEOPLAYER\""	>> $HOME/.pfind/pfindrc
	echo "export EXEC_BURNER=\"$EXEC_BURNER\""				>> $HOME/.pfind/pfindrc
	. $HOME/.pfind/pfindrc #read config file
}

#========================== PROGRAM =============================
#parameters
while [ $# != 0 ]; do
	I=1
	while [ $I -le `echo $# | wc -c` ]; do #check -xft
		if [ `echo $1 | grep a` ]; then START_ADVANCED=true; fi
		if [ `echo $1 | grep v` ]; then echo "Pfind $VERSION"; exit; fi
		if [ `echo $1 | grep h` ]; then
echo 'Options
  -a          Start with advanced gui.
  -d [DIR]    Search in a specific directory.
  -h          show this help message.
  -v          show Pfind version.'
  			exit
		fi
		#all parameters that 'shifts'
		if [ `echo $1 | grep d` ]; then export OVERRIDE_SEARCHPATHS="$2"; shift; fi
		shift
		I=$[$I+1]
	done
done
#default values
SEARCHSTRING="$LOC501"
. $HOME/.pfind/pfindrc #read config file
#languages
. "$PROGPATH"func -set_language
. "$PROGPATH"locals/english #always run to fill gaps in translation
. "$PROGPATH"locals/$LANGUAGE 2> /dev/null
LANGUAGES=`ls "$PROGPATH"locals | awk '{print "<item>"$1"</item>"}'` #for configure
#version upgrade
CURRENT_VERSION="`grep VERSION $HOME/.pfind/pfindrc`"
if [ -z "$CURRENT_VERSION" ]; then #no pfindrc, first run, or older than 2.3. copy from /usr/...
	mkdir $HOME/.pfind
	cp -f "$PROGPATH"pfindrc $HOME/.pfind/pfindrc
	. $HOME/.pfind/pfindrc
	. "$PROGPATH"/func -install
	write_config
fi
if [  `echo $CURRENT_VERSION | sed -e s/^.*\=//g | tr -d "."` -lt 40 > /dev/null 2>&1 ]; then #Older than 4.0
	mkdir $HOME/.pfind
	cp -f "$PROGPATH"pfindrc $HOME/.pfind/pfindrc
	. $HOME/.pfind/pfindrc
	. "$PROGPATH"/func -install
	write_config
fi
if [ `echo $CURRENT_VERSION | sed -e s/^.*\=//g | tr -d "."` -lt 47 > /dev/null 2>&1 ]; then #Older than 4.7
	cp -f "$PROGPATH"pfindrc $HOME/.pfind/pfindrc
	. $HOME/.pfind/pfindrc
fi
#---
. "$PROGPATH"pfindhlp #read help text (in installed language)
#---
export EXTDOC=`grep document= $HOME/.pfilesearch/pfilesearchMIMErc | sed -e s/^.*\=//g | sed -e 's/ ./$\\\|\\\./g'`
#'$' makes the end of word (extension) '\|' makes grep either
export EXTPIC=`grep picture= $HOME/.pfilesearch/pfilesearchMIMErc | sed -e s/^.*\=//g | sed -e 's/ ./$\\\|\\\./g'`
export EXTMUSIC=`grep music= $HOME/.pfilesearch/pfilesearchMIMErc | sed -e s/^.*\=//g | sed -e 's/ ./$\\\|\\\./g'`
export EXTVIDEO=`grep video= $HOME/.pfilesearch/pfilesearchMIMErc | sed -e s/^.*\=//g | sed -e 's/ ./$\\\|\\\./g'`
export EXTMAIL=`grep mail= $HOME/.pfilesearch/pfilesearchMIMErc | sed -e s/^.*\=//g | sed -e 's/ ./$\\\|\\\./g'`
export EXTZIP=`grep zip= $HOME/.pfilesearch/pfilesearchMIMErc | sed -e s/^.*\=//g | sed -e 's/ ./$\\\|\\\./g'`
export EXTCODE=`grep code= $HOME/.pfilesearch/pfilesearchMIMErc | sed -e s/^.*\=//g | sed -e 's/ ./$\\\|\\\./g'`
if [ "$INTERFACE" = "cli" ]; then SEARCHSTRING="$CLI_STRING"; search; fi
#choose browser for helpfile
if which defaultbrowser >/dev/null ; then export BROWSER=defaultbrowser
	elif which hv3 >/dev/null ;   then export BROWSER=hv3
	elif which dillo >/dev/null ; then export BROWSER=dillo
	elif which mozilla >/dev/null ; then export BROWSER=mozilla
	elif which opera >/dev/null ; then export BROWSER=opera
	elif which netscape >/dev/null ; then export BROWSER=netscape
	elif which firefox >/dev/null ;   then export BROWSER=firefox
	elif which konqueror >/dev/null; then export BROWSER=konqueror
fi
#---
if [ "$START_ADVANCED" = "true" ]; then
	gui_advanced
else
	gui_simple
fi
