Page 7 of 26

Posted: Sat 02 May 2009, 13:52
by Lobster
Whist MU astounds us with real programs
I am attempting to use Valide in Jaunty Pup with the devxx
First of all Valide is now more stable - hooray

I had to go back to basics
Valide seems to be changing
tabs to two indents (this is the default mode, which I will stick with
BUT can be changed in Edit / Preferences from the latest Valide)
Valide is much improved

So I place this on top of programs

Code: Select all

[indent=2]
and made sure I finished with a tab on a blank line

Code: Select all

[indent=2] 

init

  // return a random value from 1 to 9
  a:int
  a = GLib.Random.int_range(1,10)
  print("%d" , a)
  
OK that works

. . . to be continued . . . 8)

Posted: Sat 02 May 2009, 17:17
by MU
I attach a next step.
This is a tree, that displays the folders on your computer, and the files in them.

This is far from being finished, but basically works.
I just upload it for people, who might need to look up the one or other command in the code.

The filebrowsing is not yet placed in the treeview class, so the main.gs looks prettty complex, you also could say "messy".
So do not use it as a template for an own program yet.
The trees now are attached to a project.glade, that also includes the 3 buttons.

Mark

Posted: Sat 02 May 2009, 17:54
by MU
Lobster,

yes, you can setup in "edit - preferences" the "Tab width".
If you prefer 4 , you can set it there.
I also use this setting now, as the code then is better readable.

Mark

Posted: Sat 02 May 2009, 21:58
by MU
I updated the filebrowser to v0.2, it now sorts the folders and files alphabetiically.
Mark

Posted: Sun 03 May 2009, 00:11
by MU
I have not cleaned up the classes yet, but it was challenging, to add some lines, that turn the filebrowser into a usable application.
So now it is a small pictureviewer :)

http://www.murga-linux.com/puppy/viewto ... 381#301381

I updated the source to v0.3.

Mark

Posted: Sun 03 May 2009, 01:16
by technosaurus
Since vala shares a lot of syntax with C#, maybe these projects that use gtk# would be a good source of "inspiration"


Banshee (http://banshee-project.org/Main_Page) <-replace pmusic,
Beagle (http://beagle-project.org/Main_Page) <-replace pfind
F-spot (http://f-spot.org/Main_Page)
MonoDevelop (http://www.monodevelop.com/Main_Page)
Tomboy (http://www.gnome.org/projects/tomboy)

or maybe even some of the ones here
http://csharp-source.net/

(btw thanks for pointing me to http://mono-project.com/GtkSharp_TreeView_Tutorial)

Posted: Sun 03 May 2009, 11:29
by MU
I have completely restructured the pictureviewer.

main.gs is very short again.

You now have additional files like libglade.gs or filebrowser.gs.

They help to keep the code readable.
The tree related filebrowsing methods are now part of the treeclass.
So you do not have to mess around in that code, you simply just use the methods.
The class manages everything automatically.
Just for additional actions, filebrowser.gs is available.
Here you can for example explicitly force to update the file-list in the second tree, when a folder in the first tree was clicked.

I added several comments, so I hope, it is easy to use.
I might add more comments in future, and want to add more methods.
But in the urrent state, it is already a full working template for your own, file tree based programs.

Mark

Posted: Sun 03 May 2009, 12:57
by ttuuxxx
technosaurus wrote: Banshee (http://banshee-project.org/Main_Page) <-replace pmusic,
Beagle (http://beagle-project.org/Main_Page) <-replace pfind
Have you ever tried to compile Beagle? I have and it gets way blown out of size due to deps, Terrible program, I tried two+ weeks ago when I wanted a Pfind replacement, It looked nice and had great reports, but the size was the downfall, So then I tried Search Monkey and that was perfect 117kb pet and a perfect replacement with better features than Pfind and easy to configure.

Banshee is also nice but uses gstreamer, another large program, BMP is the best replacement for Pmusic thats made with 'C' and its uses winamp2 skins, its about 1/6 the size of banshee and also uses some xmms plugins also. I think the last time I compiled it on 4 series I had it down to 300kb pet.
The only way that banshee could ever make it in with gstreamer, is if we dropped gxine/xinelib for a gstreamer based mediaplayer. Then that could workout to be around the same size.

Good ideas just a bit too large for default puppy.
Hmmmm whats were we talking about here ???
sorry didn't mean to take you off topic.
ttuuxxx

Posted: Sun 03 May 2009, 22:37
by 01micko

Code: Select all

# valac hello.gs 
error: Failed to execute child process "pkg-config" (No such file or directory)
error: Failed to execute child process "pkg-config" (No such file or directory)
error: Failed to execute child process "pkg-config" (No such file or directory)
Compilation failed: 3 error(s), 0 warning(s)
Genie noob here :mrgreen: This is the error I get when I try to compile "Hello World". Also a file is created called "hello.c", which seems perfectly useless! :cry:

What am I doing wrong??? (or what am I missing?)

Posted: Sun 03 May 2009, 23:05
by MU
you need devx_420.sfs, that has the compiler and pkgconfig.

------------------------------
I attach a new sourcepackage of the treeview.
It now is renamed to "Picturebrowser-0.2" to allow correct versioning with the Picturebrowser binary pet.

I added more methods to access the trees, you can look up how to use them in the example actions in filebrowser.gs.

Mark

Posted: Sun 03 May 2009, 23:16
by 01micko
strange then

I am running spup from woof I built... devx is loaded. I'll see if I can compile something else ... maybe my devx is broken :cry:

Yes... devx seems broken.. I'll try in 412

Posted: Sun 03 May 2009, 23:44
by MU
please type:
gcc

you should see:
gcc: no input files.

If you do not see it, devx is not loaded.
If you see it, you need pkg-config, this would mean it is missing for whatever reason.
I attach it, extract it in /usr/local/bin/.
Mark

Posted: Mon 04 May 2009, 00:14
by 01micko
Nah good. My devx is definitely broken. It says it is loaded on boot mgr, but the gcc command fails. In 412 now will install valide and load devx and try again!

Posted: Mon 04 May 2009, 01:25
by 01micko
Oooh.. I like the power! Nice. Working fine now. I was able to compile BK's examples... they look nice!

Bit sad :cry: that my spup devx is busted but that might be fixed by woof beta. :)

Thanks for your help Mark.

EDIT: :lol: My spup devx is fixed now! (it is my OS of choice ATM..fast)

Posted: Mon 04 May 2009, 18:04
by MU
Picturebrowser 0.3.

A PET is available in the other thread:
http://www.murga-linux.com/puppy/viewtopic.php?t=41919


Here now is the source, it includes a Binary for Windows, and libglade.dll and libxml.dll.
To run it in Windows:
Install:
http://valide.googlecode.com/files/vala-0.7.1.exe
It includes the required Gtk for Windows files.
Then unzip my archive somewhere, and click on Picturebrowser.exe.

To compile, you also had to extract this:
http://dotpups.de/puppy4/dotpups/Progra ... alog32.zip
in: C:\vala-0.7.1

The refinements contain some new methods, and a general cleanup, so it is not only from advantage for windows.

In Windows, the new "autoscaling" is disabled (to fit the picture when you resize the window), because the threads do not work as expected (a known issue).

Update: Pet removed, see next messages for updated version.

Mark

Posted: Tue 05 May 2009, 15:11
by MU
I attach picturebrowser v0.4.

Massive internal changes.

The whole treeclass was cleaned up, and is easier to use.
I think it now has reached the "final" structure, so the method names will not change in future.
I just might add some more, or enhance some. what might require more parameters.

Old code:

Code: Select all

    treeclass1 = new treeclass()
    treeclass1.mode = "filebrowser"
    mytree1 = treeclass1.treeview()
    treeclass1.column.set_title("Folders")
    get_scrolledwindow("scrolledwindow1" ).add (mytree1)


    var iter = treeclass2.get_first_iter(mytree2)
        if treeclass2.store.iter_is_valid(iter)
            treeclass2.select_iter(treeclass2, iter)
            tree2_row_click()
New code:

Code: Select all

    tree1 = new treeclass()
    tree1.mode = "filebrowser"
    tree1.init()
    tree1.column.set_title("Folders")
    var sw1 = (ScrolledWindow)get_widget("scrolledwindow1")
    sw1.add(tree1.tree)

    tree2.select_first_item()
    tree2_row_click()
Please note, that also the libglade.gs changed.

old:

Code: Select all

    get_scrolledwindow("scrolledwindow1" ).add (mytree1)
This used a method, that had to be defined "by hand", like this:

Code: Select all

//-- HELPER method: this method returns a SCROLLEDWINDOW ! --

def get_scrolledwindow(name : string) : ScrolledWindow
    b : Gtk.ScrolledWindow*
    var w = xml.get_widget(name)
    b = (ScrolledWindow) w
    return b
This is no longer needed!
You only need these 2 lines:

Code: Select all

    var sw1 = (ScrolledWindow) get_widget("scrolledwindow1")
    sw1.add(tree1.tree)
I think this is one of the enhancements in Vala 0.7.1, if I remember well, it did not work in 0.5.7, so I had written those helper methods.

The Windows binary is included again.

The program no longer uses "Threads" to scale a picture, but a method based on Gdk.Pixbuf.
This works faster, needs less resources (14% cpu-usage instead of 42%), and works in Linux and Windows.

And bookmarks now also work with special characters in the filenames.

A PET for Puppy 4.12 follows later.

Mark

Posted: Tue 05 May 2009, 20:16
by MU

Posted: Wed 06 May 2009, 22:06
by MU
I seperated the code to display the pictures in a own class now.
So it can easily embedded in own programs.
The class even manages to download pictures, that are dropped on the viewer (it uses wget).

I attach the source of a seperate small example application, that is described here:
http://www.murga-linux.com/puppy/viewto ... 769#302769

As no tree is included, this example is extremely short :)


The source for the picturebrowser is not adapted yet.
Mark

Posted: Thu 07 May 2009, 07:45
by MU
there was a bug in the load_picture() method in the pictureview class.
There 3 methods were called with a leading "picview.", so it did not work, if your instance of the class had a different name.

Uploaded 0.1b.

Mark

Posted: Thu 07 May 2009, 19:08
by MU
I updated the pictureviewer class, it can display PDF files now.

On Windows, you also need:
http://dotpups.de/puppy4/dotpups/Progra ... wslibs.zip

http://dotpups.de/puppy4/dotpups/Progra ... wslibs.txt

Mark