WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Fluff beta version(s) leading to new Version 1.1  (Read 5428 times)

Offline MikeLockmoore

  • Hero Member
  • *****
  • Posts: 503
  • Good software needn't be big!
Fluff beta version(s) leading to new Version 1.1
« on: March 31, 2012, 05:37:09 PM »
Fellow Fluff-heads ( :o): I have made many small changes to Fluff to address several of the bugs and shortcomings reported over the last year or so.  This includes file renaming issues, windows not resizing properly, flicker on filesystem updates, and inability to use the file associations dialog boxes to configure associations for generic files (i.e. files not recognized as some more specific type).  Thanks to coreplayer2, floppy, and others for reporting issues.

The attached source code archive includes a make file to build the executable, create a new fluff.tcz extension, and, if you'd like, install the extension persistently ("make install") in your TCE directory for the "onboot" mode.  Or if you already have an onboot installation of Fluff, you can use the make file to update your copy ("make update").  To use the makefile, you will need the compiletc.tcz and squashfs-tools-4.x extensions and extract the archive file someplace, perhaps like this:
Code: [Select]
tar -xzf fluff_1_0_3_src.tar.gz
If you use make with no target, ("make"), only the Fluff executable "fluff" is created.  You can run this local executable from the build directory to test it without disturbing a current installation.

If you "make package", the fluff.tcz extension package is created.  Once this is done, you could use AppBrowser or the command line "tce-load -ic fluff.tcz" to do a local installation. NOTE: this is a temporary, non-persistent type of installation!

As stated above, "make install" will do a persistent, on-boot type of installation.  NOTE: the TCE directory is identified in different ways in 3.x and 4.x versions of Core/Tiny Core, so if you are building for a 3.x version, un-comment the alternative TCEDIR environment variable definition and comment out the 4.x version.

If you have any issues or bugs to report in this new version 1.0.3, or any later ones in this beta series, please post them here.  Once this new version is in good shape, I will release it to be posted in the official Tiny Core repository as version 1.1.  If needed, there could be additional beta versions between this 1.0.3 and the formal release of version 1.1.

I hope to get the Fluff source code up on Github someday.  But for now, this forum will be the source code repository.  If you can't do a build, but you really want to beta test this new version, PM me and I will work out something to make it easier for you.

If you have ideas for new features or significant changes, please post those comments in this separate thread: http://forum.tinycorelinux.net/index.php/topic,9517.0.html.  I will work on some of those ideas as I have time.  ;)

I hope this new version works better for all of you!
« Last Edit: March 31, 2012, 05:40:51 PM by MikeLockmoore »

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 1580
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #1 on: March 31, 2012, 05:56:03 PM »
Cool thanks  will check it out :)

Offline Lee

  • Hero Member
  • *****
  • Posts: 565
    • My Core wiki user page
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #2 on: March 31, 2012, 10:39:55 PM »
Already checking it out.  :)

Very cool.  Thank you.

The initial DirTreeWide value of 131 seems a bit narrow, but seriously - if that's the biggest issue, I'd say you pretty well nailed it.  :)

32 bit core4.7.7, Xprogs, Xorg-7.6, wbar, jwm
PPR, data persistence through filetool.sh
USB Flash drive, one partition, ext2, grub4dos

Offline MikeLockmoore

  • Hero Member
  • *****
  • Posts: 503
  • Good software needn't be big!
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #3 on: April 09, 2012, 06:26:41 PM »
 :-[  I found and hopefully fixed a significant bug in the file type identification function.  Please discontinue using the 1.0.3 version and test with 1.0.4, attached bellow.  Please report any other bugs and issues.  Thanks.
 

Offline quanpin

  • Newbie
  • *
  • Posts: 28
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #4 on: April 18, 2012, 11:38:26 PM »
use tc's editor open the "fluff.cpp" file will be changed.

in vi

Code: [Select]
                                                               
        else if (ans == 1) {                                                   
            if (restore_mode) {                                                 
                FileMenuCB((Fl_Widget*)MainWnd_p->list_p, (void*)MI_RESTORE);   
            }                                                                   
            else {                                                             
                wait_cursor();                                                 
                int t = 0;                                                                                 
- fluff.cpp 3854/6551 58%

change to

Code: [Select]
        else if (ans == 1) {
            if (restore_mode) {
      get*)MainWnd_p->list_p, (void*)MI_RESTORE);
            }
            else {
                wait_cursor();
                int t = 0;

and while compile 1.0.0 and 1.0.3's fluff.cpp are also easy changed by self in the line 38xx .



Offline quanpin

  • Newbie
  • *
  • Posts: 28
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #5 on: April 19, 2012, 12:00:15 AM »
I use fltk-1.3-dev to compile  unicode version



Code: [Select]
tc@box:~/fluff1.0.4$ make
g++ "-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti" `fltk-config --cxxflags` -Wall -c fluff.cpp
gcc `fltk-config --use-images --ldflags` -lfltk_images -lm fluff.o -o fluff
fluff.o: In function `btnbar_help_cb()':
fluff.cpp:(.text+0x426): undefined reference to `Fl_Help_Dialog::textsize(int)'
fluff.o: In function `Fl_DND_Box::callback_deferred(void*)':
fluff.cpp:(.text+0x563): undefined reference to `Fl_Widget::do_callback(Fl_Widget*, void*)'
fluff.o: In function `File_Detail_List_Browser::draw()':
fluff.cpp:(.text+0x704): undefined reference to `fl_graphics_driver'
fluff.cpp:(.text+0x74b): undefined reference to `fl_graphics_driver'
fluff.o: In function `Fl_DND_Box::handle(int)':
fluff.cpp:(.text+0x882): undefined reference to `Fl_Widget::do_callback(Fl_Widget*, void*)'
fluff.o: In function `wait_cursor()':
fluff.cpp:(.text+0x91b): undefined reference to `fl_cursor(Fl_Cursor, unsigned int, unsigned int)'
fluff.o: In function `normal_cursor()':
fluff.cpp:(.text+0x942): undefined reference to `fl_cursor(Fl_Cursor, unsigned int, unsigned int)'
fluff.o: In function `Fluff_Window::handle(int)':
fluff.cpp:(.text+0xa508): undefined reference to `fl_cursor(Fl_Cursor, unsigned int, unsigned int)'
fluff.cpp:(.text+0xa638): undefined reference to `fl_cursor(Fl_Cursor, unsigned int, unsigned int)'
fluff.o: In function `File_Detail_List_Browser::handle(int)':
fluff.cpp:(.text+0xa7cc): undefined reference to `fl_cursor(Fl_Cursor, unsigned int, unsigned int)'
fluff.o:fluff.cpp:(.text+0xa8dc): more undefined references to `fl_cursor(Fl_Cursor, unsigned int, unsigned int)' follow
fluff.o: In function `File_Detail_List_Browser::handle(int)':
fluff.cpp:(.text+0xaa3a): undefined reference to `Fl_Widget::do_callback(Fl_Widget*, void*)'
fluff.o: In function `faded(unsigned int&, float)':
fluff.cpp:(.text+0xac3c): undefined reference to `Fl::get_color(unsigned int, unsigned char&, unsigned char&, unsigned char&)'
fluff.o: In function `configure_colors()':
fluff.cpp:(.text+0xad06): undefined reference to `Fl::get_color(unsigned int, unsigned char&, unsigned char&, unsigned char&)'
fluff.cpp:(.text+0xad1f): undefined reference to `Fl::set_color(unsigned int, unsigned char, unsigned char, unsigned char)'
fluff.cpp:(.text+0xad3b): undefined reference to `Fl::get_color(unsigned int, unsigned char&, unsigned char&, unsigned char&)'
fluff.cpp:(.text+0xad54): undefined reference to `Fl::set_color(unsigned int, unsigned char, unsigned char, unsigned char)'
fluff.cpp:(.text+0xad68): undefined reference to `Fl::get_color(unsigned int, unsigned char&, unsigned char&, unsigned char&)'
fluff.cpp:(.text+0xad81): undefined reference to `Fl::set_color(unsigned int, unsigned char, unsigned char, unsigned char)'
fluff.cpp:(.text+0xad9d): undefined reference to `Fl::get_color(unsigned int, unsigned char&, unsigned char&, unsigned char&)'
fluff.cpp:(.text+0xadb6): undefined reference to `Fl::set_color(unsigned int, unsigned char, unsigned char, unsigned char)'
fluff.o: In function `fl_color(int)':
fluff.cpp:(.text._Z8fl_colori[fl_color(int)]+0x7): undefined reference to `fl_graphics_driver'
fluff.o:(.rodata._ZTV16Dir_Tree_Browser[vtable for Dir_Tree_Browser]+0x3c): undefined reference to `Fl_Browser::item_last() const'
fluff.o:(.rodata._ZTV16Dir_Tree_Browser[vtable for Dir_Tree_Browser]+0x50): undefined reference to `Fl_Browser::item_text(void*) const'
fluff.o:(.rodata._ZTV24File_Detail_List_Browser[vtable for File_Detail_List_Browser]+0x3c): undefined reference to `Fl_Browser::item_last() const'
fluff.o:(.rodata._ZTV24File_Detail_List_Browser[vtable for File_Detail_List_Browser]+0x50): undefined reference to `Fl_Browser::item_text(void*) const'
fluff.o:(.rodata._ZTV17Fl_Select_Browser[vtable for Fl_Select_Browser]+0x3c): undefined reference to `Fl_Browser::item_last() const'
fluff.o:(.rodata._ZTV17Fl_Select_Browser[vtable for Fl_Select_Browser]+0x50): undefined reference to `Fl_Browser::item_text(void*) const'
fluff.o:(.rodata._ZTV16Fl_Multi_Browser[vtable for Fl_Multi_Browser]+0x3c): undefined reference to `Fl_Browser::item_last() const'
fluff.o:(.rodata._ZTV16Fl_Multi_Browser[vtable for Fl_Multi_Browser]+0x50): undefined reference to `Fl_Browser::item_text(void*) const'
fluff.o:(.rodata._ZTV15Fl_Hold_Browser[vtable for Fl_Hold_Browser]+0x3c): undefined reference to `Fl_Browser::item_last() const'
fluff.o:(.rodata._ZTV15Fl_Hold_Browser[vtable for Fl_Hold_Browser]+0x50): undefined reference to `Fl_Browser::item_text(void*) const'
collect2: ld returned 1 exit status
make: *** [all] Error 1



tc@box:~/fluff1.0.4$ fltk-config --compile fluff.cpp
g++ -I/usr/local/include -march=i486 -mtune=i686 -Os -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT -o 'fluff' 'fluff.cpp' /usr/local/lib/libfltk.a -lXext -lpthread -ldl -lm -lX11
/tmp/ccSVVDTT.o: In function `btnbar_help_cb()':
fluff.cpp:(.text+0x405): undefined reference to `Fl_Help_Dialog::Fl_Help_Dialog()'
fluff.cpp:(.text+0x41c): undefined reference to `Fl_Help_Dialog::load(char const*)'
fluff.cpp:(.text+0x426): undefined reference to `Fl_Help_Dialog::textsize(int)'
fluff.cpp:(.text+0x42e): undefined reference to `Fl_Help_Dialog::show()'
fluff.cpp:(.text+0x448): undefined reference to `Fl_Help_Dialog::visible()'
fluff.cpp:(.text+0x45e): undefined reference to `Fl_Help_Dialog::~Fl_Help_Dialog()'
fluff.cpp:(.text+0x474): undefined reference to `Fl_Help_Dialog::~Fl_Help_Dialog()'
collect2: ld returned 1 exit status
tc@box:~/fluff1.0.4$

and vi fluff.cpp


void btnbar_help_cb(void)                                                       
{                                                                               
//    Fl_Help_Dialog hd;                                                       
//    IgnoreNextKey = 1;                                                       
//    hd.load("/usr/local/share/doc/fluff/fluff_help.htm");                     
//    hd.textsize(14);                                                         
//    hd.show();                                                               
//    while (hd.visible()) {                                                   
 //       Fl::wait(1);                                                         
//    }                                                                         
}                                                                               
I fluff.cpp [Modified] 3932/6551 60%


#include "FontSetup.h"                                                         
                                                                               
I fluff.cpp [Modified] 78/6551 1%


then
Code: [Select]
tc@box:~/fluff1.0.4$ fltk-config --compile fluff.cpp
g++ -I/usr/local/include -march=i486 -mtune=i686 -Os -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT -o 'fluff' 'fluff.cpp' /usr/local/lib/libfltk.a -lXext -lpthread -ldl -lm -lX11
tc@box:~/fluff1.0.4$


the "fluff" exefile is 573.40KB

tc@box:~/fluff1.0.4$ strip fluff

the "fluff" exefile change to 480.52KB


why can use "fltk-cofig --compile fluff.cpp " and can not use "make" ?

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 6327
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #6 on: April 19, 2012, 12:19:28 AM »
the "fluff" exefile is 573.40KB

tc@box:~/fluff1.0.4$ strip fluff

the "fluff" exefile change to 480.52KB

..and "strip --strip-all fluff"?

Offline MikeLockmoore

  • Hero Member
  • *****
  • Posts: 503
  • Good software needn't be big!
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #7 on: April 20, 2012, 12:38:45 PM »
Hi quanpin.  I see that you want a Unicode Fluff.  I did not make it Unicode because Tiny Core base does not come with Unicode support.

Perhaps you know FLTK 1.3 is not a standard part of Tiny Core Linux.  I see your second post includes a compile+link command referencing /usr/local/lib/libfltk.a.  This means that gcc will _statically_ link copies of the FLTK 1.3 functions into the Fluff executable, which makes it much bigger.  The non-unicode Fluff _dynamically_ links to FLTK version 1.1, so its executable is much smaller (~150 kilobytes).

I don't understand your first post.  ??? Why did you edit it that way?  The new code looks corrupted.  I think "get*)MainWnd_p->list_p, (void*)MI_RESTORE);" won't compile.

I will not release a Unicode version in the near future, but perhaps I can make the source code more compatible with the Unicode version of FLTK if I understand the problems better.
--
Mike

Offline jls_legalize

  • Hero Member
  • *****
  • Posts: 1335
    • Core17
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #8 on: April 22, 2012, 06:06:41 PM »
I'm testing fluff 1.0.4 and I don't see problems, thanks a lot Mike.
- files with extension MPG should be threted the same as mpg.
- link creation is missing.
- Is not possible to change the curson when the mouse is on the line which divides the 2 panels?
- when we go deep into directories they are no more visible in the left panel so the panel could be auto-enlarged
legalize them                                     ThisIsNotlYnuCsfrOmscR-Etch

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 1580
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #9 on: April 22, 2012, 07:55:31 PM »
Thanks, the blank window appearance during resizing appears to be fixed :)

The achilles heel with all  file managers it seems is the ability to know which app to open a particular file with or how easy the file manager makes setting the default app for these various file types.  will advise..

Offline coreplayer2

  • Hero Member
  • *****
  • Posts: 1580
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #10 on: April 22, 2012, 09:08:59 PM »
I don't understand how mp4 video files are so difficult to handle, I find I have to go through the whole process of "Open With" etc etc each and every time I want to play a video, even the same video.    It's likely I have not figured out yet how to set and configure default programs to open specific files, but for sure it's not intuitive.


The other issue of scrolling to find your place after a file copy or move persists in v1.04.   

How about an example.   Lets say we have 1000 files in a directory in the right pane with 200 files starting with the litter S, lets say we want to copy specific files to various other locations via drag and drop to a directory in the left pane which obviously can't be performed in a single operation.  we scroll down the list of files in the right pane until we find one or two files with similar names beginning with S to move, we select them and drag them to there new location and select move from the menu.  Up to this point all is good, however this is where the issue occurs, because immediately after the move operation the right window items are re-sorted in alphabetical order now starting with files beginning with A, in effect we have lost our place within the files names beginning with S, more importantly we have lost our price location where the previously moved files were found.   Yet more similarly name files (beginning with S which where previously located near the last files moved) still require moving to another location, since we we have lost our place after the reshuffle we are forced to search via scrolling through 1000 files to find files beginning with S then further search within these files names to find our previous location.  We are finally back to our previous location and can copy the next file(s).   and so on...   

If this wasn't frustrating enough, try this whilst the left pane of expanded directories are behaving similarly..! Now we are totally lost, we don't know if we're looking at the source or the destination.  For many tasks whilst working this behavior is very frustrating, to be constantly searching for your last location in the list/column so you can press on..

To sum up the issue is the highlighting of the first file in a selected column after a re-sort. this effectively looses your place in the column of listed files. 

Please don't misunderstand I luv Fluff  :)









Offline MikeLockmoore

  • Hero Member
  • *****
  • Posts: 503
  • Good software needn't be big!
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #11 on: April 23, 2012, 07:00:19 AM »
coreplayer2: Thanks for taking the time to retest and write a detailed description.  I can see that the current behavior for drag-and-drop is not nice when there is a large set of files.  I'll try to make Fluff work better by trying to have Fluff remember the scroll location within the original set of files, whether some of the files have moved or not.

To set up a new default app for a certain type of file like .mp4, select an example then invoke the properties window (Props button or right-click on the file and select Properites).  In the Properties window, click on the Type button. You will be asked for a short descriptive name (like "video") of the file type.  After you enter one, the "Manage File Types and Hints" dialog box opens. 

If the file you selected ends with a dot - something naming pattern, the "Filename extension" filetype Hint method will be pre-selected.  This should work OK if your files will be named like this consistently.  The hint method is how Fluff distinguishes each file type and so it can offer suitable default applications for it.  If you know of a special byte sequence in the early part of the file that will be an unambigously "fingerprint" the filetype (like "BM" in Windows Bitmap files), then you can change the Hint method.  You can also define additional hint methods, for example, if the filetype extensions can be spelled or capitalized different ways (.mp4, .MP4, etc.).

In the  "Manage File Types and Hints" you can click on "Associated apps..." button to open the "Manage Associations" dialog box, which you use to define the apps that will be the default ones.  The first listed app will be the one that is used if you double-click on the file, and the first two apps are the ones that appear in the button bar and right-click menu.  Additional apps can be accessed with the "Open With" command, as you seem to be using now.

jls: Thanks for testing and comments.  As I said to coreplayer2,  for .MPG and .mpg... for now you can set up a second hint method with the alternate capitalization.  I'll think about whether to make the hint system ignore capitalization.  I will try to get the mouse cursor to change when over the separation between left and right panes.  (I thougth I had that working before! ???) I think auto-enlarging the left pane will not be wanted by everyone... let me think about it. Maybe these won't make the version 1.1.  Link creation is a good idea but probably in later version after 1.1.
« Last Edit: April 23, 2012, 07:19:55 AM by MikeLockmoore »

Offline jls_legalize

  • Hero Member
  • *****
  • Posts: 1335
    • Core17
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #12 on: April 28, 2012, 04:32:48 AM »
If I use e17 DM when I minimize fluff it closes instead of minimizing
legalize them                                     ThisIsNotlYnuCsfrOmscR-Etch

Offline MikeLockmoore

  • Hero Member
  • *****
  • Posts: 503
  • Good software needn't be big!
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #13 on: April 30, 2012, 09:35:41 AM »
jls: That's weird.   ???

If you start Fluff from a command prompt, then minimize, is there any error message or other output that might provide a clue as to why it would close in e17?  If not, I'll have to think about why it might do that.  Thanks for reporting it.

Offline jls_legalize

  • Hero Member
  • *****
  • Posts: 1335
    • Core17
Re: Fluff beta version(s) leading to new Version 1.1
« Reply #14 on: April 30, 2012, 11:51:51 AM »
no error message, no output, and nothing also in dmesg
legalize them                                     ThisIsNotlYnuCsfrOmscR-Etch