<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lena.jpg</filename>
    </added>
    <added>
      <filename>src/help/filters.html</filename>
    </added>
    <added>
      <filename>src/help/help.qrc</filename>
    </added>
    <added>
      <filename>src/help/star.png</filename>
    </added>
    <added>
      <filename>src/help/usage.html</filename>
    </added>
    <added>
      <filename>src/help/usage.png</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -3,5 +3,5 @@ src/.obj
 src/.moc
 src/.rcc
 src/.ui
-pid
+blindcamaleon
 *~</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -20,15 +20,15 @@
 #include &lt;math.h&gt;
 #include &lt;QInputDialog&gt;
 
-Butterworth::Butterworth(bool low)
+Butterworth::Butterworth(bool high)
 {
-    this-&gt;low = low; // low is true
+    this-&gt;high = high;
 }
 
 char* Butterworth::desc()
 {
     char *d = new char[26];
-    sprintf(d, &quot;Butterworth (passa %s)&quot;, low ? &quot;baixa&quot; : &quot;alta&quot;);
+    sprintf(d, &quot;Butterworth (passa %s)&quot;, high ? &quot;alta&quot; : &quot;baixa&quot;);
     return d;
 }
 
@@ -45,7 +45,7 @@ QImage* Butterworth::run(Complex* dft, int value, SimpleFilteredImage* img)
     for (i = 0; i &lt; width; i++)
         for (j = 0; j &lt; height; j++)
         {
-            h = H(i, j, value, img-&gt;x0(), img-&gt;y0(), low, n);
+            h = H(i, j, value, img-&gt;x0(), img-&gt;y0(), high, n);
             pos = (i * height) + j;
             dft[pos].setIm(dft[pos].im() * h);
             dft[pos].setRe(dft[pos].re() * h);</diff>
      <filename>src/butterworth.cpp</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,7 @@
 
 class Butterworth : public BasicFilter
 {
-    bool low;
+    bool high;
 public:
     Butterworth(bool);
     QImage* run(Complex*, int, SimpleFilteredImage*);</diff>
      <filename>src/butterworth.h</filename>
    </modified>
    <modified>
      <diff>@@ -33,7 +33,7 @@ Complex::Complex(Complex *c)
 
 double Complex::abso()
 {
-    return log(hypot(_re, _im));
+    return hypot(_re, _im);
 }
 double Complex::phase()
 {
@@ -42,7 +42,7 @@ double Complex::phase()
 
 double Complex::magnitude()
 {
-    return abs(_re + _im);
+    return abs(_re*_re + _im*_im);
 }
 
 Complex Complex::plus(Complex b)</diff>
      <filename>src/complex.cpp</filename>
    </modified>
    <modified>
      <diff>@@ -16,6 +16,44 @@
  */
 
 #include &quot;help.h&quot;
+#include &lt;QListWidgetItem&gt;
+#include &lt;QIcon&gt;
+#include &lt;QTextBrowser&gt;
+#include &lt;QStackedWidget&gt;
+#include &lt;QDebug&gt;
 
 Help::Help(PidMain *parent) : QDialog(parent)
-{ setupUi(this); }
+{
+    setupUi(this);
+
+    QListWidgetItem *usage = new QListWidgetItem(helpList);
+    usage-&gt;setIcon(QIcon(&quot;:/images/usage.png&quot;));
+    usage-&gt;setText(&quot;Usage&quot;);
+    usage-&gt;setTextAlignment(Qt::AlignHCenter);
+    usage-&gt;setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+    QListWidgetItem *filters = new QListWidgetItem(helpList);
+    filters-&gt;setIcon(QIcon(&quot;:/images/star.png&quot;));
+    filters-&gt;setText(&quot;Filters&quot;);
+    filters-&gt;setTextAlignment(Qt::AlignHCenter);
+    filters-&gt;setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+    helps[0] = QUrl(&quot;qrc:/html/usage.html&quot;);
+    helps[1] = QUrl(&quot;qrc:/html/filters.html&quot;);
+
+    connect(helpList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
+                this, SLOT(changePage(QListWidgetItem*, QListWidgetItem*)));
+
+    helpList-&gt;setCurrentRow(0);
+    helpList-&gt;setFlow(QListView::TopToBottom);
+}
+
+void Help::changePage(QListWidgetItem *current, QListWidgetItem* prev)
+{
+    if (!current)
+        current = prev;
+    
+    helpBrowser-&gt;clear();
+    helpBrowser-&gt;setSource(helps[helpList-&gt;row(current)]);
+    helpBrowser-&gt;reload();
+}</diff>
      <filename>src/help.cpp</filename>
    </modified>
    <modified>
      <diff>@@ -18,16 +18,24 @@
 #ifndef HELP_H
 #define HELP_H
 
-#include &lt;QDialog&gt;
 #include &quot;ui_help.h&quot;
 #include &quot;pidmain.h&quot;
 
+class QDialog;
+class QStackedWidget;
+class QListWidgetItem;
+
 class Help : public QDialog, public Ui::HelpDialog
 {
     Q_OBJECT
 
+    QUrl helps[2];
+
 public:
     Help(PidMain*);
+
+public slots:
+    void changePage(QListWidgetItem*, QListWidgetItem*);
 };
 
 #endif</diff>
      <filename>src/help.h</filename>
    </modified>
    <modified>
      <diff>@@ -1,20 +1,3 @@
-&lt;!--
- * This file is part of Blind Camaleon.
- *
- * Blind Camaleon is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Blind Camaleon 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Blind Camaleon.  If not, see &lt;http://www.gnu.org/licenses/lgpl-3.0.txt&gt;.
---&gt;
-
 &lt;ui version=&quot;4.0&quot; &gt;
  &lt;class&gt;HelpDialog&lt;/class&gt;
  &lt;widget class=&quot;QDialog&quot; name=&quot;HelpDialog&quot; &gt;
@@ -49,38 +32,40 @@
   &lt;/property&gt;
   &lt;layout class=&quot;QHBoxLayout&quot; &gt;
    &lt;item&gt;
-    &lt;widget class=&quot;QTextEdit&quot; name=&quot;textEdit&quot; &gt;
-     &lt;property name=&quot;readOnly&quot; &gt;
-      &lt;bool&gt;true&lt;/bool&gt;
+    &lt;widget class=&quot;QListWidget&quot; name=&quot;helpList&quot; &gt;
+     &lt;property name=&quot;maximumSize&quot; &gt;
+      &lt;size&gt;
+       &lt;width&gt;100&lt;/width&gt;
+       &lt;height&gt;16777215&lt;/height&gt;
+      &lt;/size&gt;
      &lt;/property&gt;
-     &lt;property name=&quot;html&quot; &gt;
-      &lt;string&gt;&amp;lt;html&gt;&amp;lt;head&gt;&amp;lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&amp;lt;title&gt;Image Editor Help&amp;lt;/title&gt;&amp;lt;style type=&quot;text/css&quot;&gt;
-p, li { white-space: pre-wrap; }
-&amp;lt;/style&gt;&amp;lt;/head&gt;&amp;lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
-&amp;lt;p style=&quot; margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-size:x-large;&quot;&gt;Abrindo uma imagem&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;ul style=&quot;-qt-list-indent: 1;&quot;&gt;&amp;lt;li style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small; font-weight:600;&quot;&gt;Ctrl+O ou File/Open&amp;lt;/span&gt;&amp;lt;/li&gt;&amp;lt;/ul&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small;&quot;&gt;Abre uma imagem que ser&#225; tratada pelo programa de varias maneiras, dependendo da op&#231;&#227;o escolhida pelo usu&#225;rio.&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;br /&gt;&amp;lt;/p&gt;
-&amp;lt;p style=&quot; margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-size:x-large;&quot;&gt;Salvar imagem atual&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;ul style=&quot;-qt-list-indent: 1;&quot;&gt;&amp;lt;li style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small; font-weight:600; color:#000000;&quot;&gt;Ctrl+Shift+S ou File/Save&amp;lt;/span&gt;&amp;lt;/li&gt;&amp;lt;/ul&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small;&quot;&gt;Salva a imagem atual e suas altera&#231;&#245;es que foram realizadas at&#233; este momento em um diret&#243;rio a ser escolhido.&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small;&quot;&gt;Com este recurso voc&#234; pode salvar a imagem original, sua vers&#227;o em escala de cinza ou ainda o espectro de fourier&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;br /&gt;&amp;lt;/p&gt;
-&amp;lt;p style=&quot; margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-size:x-large;&quot;&gt;Gerar escala de cinza&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;ul style=&quot;-qt-list-indent: 1;&quot;&gt;&amp;lt;li style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small; font-weight:600;&quot;&gt;Ctrl+G ou Image/Generate Gray Scale&amp;lt;/span&gt; &amp;lt;/li&gt;&amp;lt;/ul&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small; color:#000000;&quot;&gt;Gera uma vers&#227;o na escala de cinza da imagem, partindo do pressuposto que est&#225; &#233; colorida. Uma fun&#231;&#227;o &#233; utilizada para alterar os valores RGB(red, green, blue) de cada pixel da imagem para transform&#225;-lo em um pixel de tom cinza.&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;br /&gt;&amp;lt;/p&gt;
-&amp;lt;p style=&quot; margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-size:x-large;&quot;&gt;Gerar Histograma&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;ul style=&quot;-qt-list-indent: 1;&quot;&gt;&amp;lt;li style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small; font-weight:600; color:#000000;&quot;&gt;Ctrl+H ou Image/Generate Histogram&amp;lt;/span&gt;&amp;lt;/li&gt;&amp;lt;/ul&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small;&quot;&gt;Gera o histograma da imagem ap&#243;s ser transformada na vers&#227;o em escala de cinza, feito com base na distribui&#231;&#227;o de freq&#252;&#234;ncias de tons de cinza presentes na imagem, normalmente um gr&#225;fico de barras verticais.&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;p style=&quot; margin-top:16px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large; font-weight:600;&quot;&gt;&amp;lt;span style=&quot; font-size:x-large;&quot;&gt;Espectro de Fourier&amp;lt;/span&gt;&amp;lt;/p&gt;
-&amp;lt;ul style=&quot;-qt-list-indent: 1;&quot;&gt;&amp;lt;li style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small; font-weight:600; color:#000000;&quot;&gt;Ctrl+F ou Image/Generate Fourier Spectrum&amp;lt;/span&gt;&amp;lt;/li&gt;&amp;lt;/ul&gt;
-&amp;lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&amp;lt;span style=&quot; font-size:small;&quot;&gt;Gera o espectro de Fourier da imagem atual utilizando uma fun&#231;&#227;o que aplica a transformada de Fourier em uma imagem de duas dimens&#245;es. O espectro de Fourier &#233; o gr&#225;fico da magnitude versus freq&#252;&#234;ncia, aonde a freq&#252;&#234;ncia corresponde a freq&#252;&#234;ncia na forma de senos e cosenos.&amp;lt;/span&gt;&amp;lt;/p&gt;&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;/string&gt;
+     &lt;property name=&quot;iconSize&quot; &gt;
+      &lt;size&gt;
+       &lt;width&gt;50&lt;/width&gt;
+       &lt;height&gt;50&lt;/height&gt;
+      &lt;/size&gt;
+     &lt;/property&gt;
+     &lt;property name=&quot;movement&quot; &gt;
+      &lt;enum&gt;QListView::Static&lt;/enum&gt;
+     &lt;/property&gt;
+     &lt;property name=&quot;flow&quot; &gt;
+      &lt;enum&gt;QListView::TopToBottom&lt;/enum&gt;
+     &lt;/property&gt;
+     &lt;property name=&quot;spacing&quot; &gt;
+      &lt;number&gt;12&lt;/number&gt;
+     &lt;/property&gt;
+     &lt;property name=&quot;viewMode&quot; &gt;
+      &lt;enum&gt;QListView::IconMode&lt;/enum&gt;
      &lt;/property&gt;
     &lt;/widget&gt;
    &lt;/item&gt;
+   &lt;item&gt;
+    &lt;widget class=&quot;QTextBrowser&quot; name=&quot;helpBrowser&quot; /&gt;
+   &lt;/item&gt;
   &lt;/layout&gt;
  &lt;/widget&gt;
- &lt;resources/&gt;
+ &lt;resources&gt;
+  &lt;include location=&quot;help/help.qrc&quot; /&gt;
+ &lt;/resources&gt;
  &lt;connections/&gt;
 &lt;/ui&gt;</diff>
      <filename>src/help.ui</filename>
    </modified>
    <modified>
      <diff>@@ -62,7 +62,7 @@ ImageTabs::getSpectrum()
             for (int j = 0; j &lt; spectY; j++)
             {
                 pos = (i * spectY) + j;
-                bright = (int) dft[pos].abso();
+                bright = (int) log(dft[pos].magnitude());
                 spectrum-&gt;setPixel(i, j, qRgb(bright, bright, bright));
             }
     }</diff>
      <filename>src/imagetabs.cpp</filename>
    </modified>
    <modified>
      <diff>@@ -58,7 +58,7 @@ FORMS += \
     simplefilter.ui \
     ideal.ui
 
-RESOURCES += images/images.qrc
+RESOURCES += images/images.qrc help/help.qrc
 
 RCC_DIR = .rcc
 UI_DIR = .ui</diff>
      <filename>src/src.pri</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f42102164795c7fa33c418941325bbbc89c34a60</id>
    </parent>
  </parents>
  <author>
    <name>Carlos J&#250;nior</name>
    <email>carlos@milk-it.net</email>
  </author>
  <url>http://github.com/xjunior/blind-chameleon/commit/28558c3173779c713473c664cdde4c0807c2ffa8</url>
  <id>28558c3173779c713473c664cdde4c0807c2ffa8</id>
  <committed-date>2008-06-06T07:40:28-07:00</committed-date>
  <authored-date>2008-06-06T07:40:28-07:00</authored-date>
  <message>Improving help pages</message>
  <tree>6bd23bbfb1d8d893d12faeee0d434ab06c6c52b7</tree>
  <committer>
    <name>Carlos J&#250;nior</name>
    <email>carlos@milk-it.net</email>
  </committer>
</commit>
