Alo Sarv
lead developer

Donate via
MoneyBookers

Latest Builds

version 0.3
tar.gz tar.bz2
Boost 1.33.1 Headers
MLDonkey Downloads Import Module Development
Payment completed
Development in progress.
Developer's Diary
irc.hydranode.com/#hydranode

Tuesday, April 25, 2006

Categories and file names/comments box

The trouble with implementing categories was that I didn't really want to implement them on core-side, to keep the hncore library flexible; besides, categories as a concept tends to be more of a gui-side feature anyway. So the problem was how to keep track of the download/shared files across sessions; generally, we use Object class identifiers for that, but those are not saved anywhere. The solution was to add a customdata field to MetaData (each download and shared file is tied to one MetaData object), which stores those stable identifiers, as I like to call them. The user interface stores a list of categories, and file identifiers in it's config file, and is thus capable of re-creating categories on either core or gui restarts. Categories are thus per-user (incase of multi-user setups), so each user connecting to the core can have it's own category settings without affecting other people's category setup. At least that's the theory.

Another thing that got implemented today was file names/comments area in the interface. The cgcomm side support for this was already implemented few days ago, which meant I only had to implement the gui side of it. So to avoid lengthy description of the thing, here's a screenshot.



At the download area you can also see the categories feature - items marked with the blue PLUS sign are categories and open when you click on them. Torrents (and eMulecollections, in the future) behave exactly the same, so from both visual and functional point of view, there's no difference between a category or a torrent.

The file names/comments area opens from either "File Names" button in details box, or from "Show Comments" entry in context menu. Default is turned off, of course.

On other news, you can now connect to Hydranode irc server via irc.hydranode.com. The channel is the same, #hydranode. The new domain points to the same irc server as before, but if you had problems connecting earlier to the irc.respectp2p.org address, they are fixed now (there's a non-working DNS entry for irc.respectp2p.org which broke some irc clients).

Madcat, ZzZz



Comments:
No Categories on Core side? Hmm... I thought about the future and dreamt of having one core running for the whole family with (nearly) completely independant Downloads and Incoming Folders that only the owner can see. (Nearly as if two download the same, they share the file of course). Now that would be awesome and I don't see how that could work without at least ownership of downloads...
 
No Categories on Core side? Hmm... I thought about the future and dreamt of having one core running for the whole family with (nearly) completely independant Downloads and Incoming Folders that only the owner can see. (Nearly as if two download the same, they share the file of course). Now that would be awesome and I don't see how that could work without at least ownership of downloads...
 
Multi-user support and per-user file / access permissions are not related to categories in any way.

Madcat.
 
Well great to hear, I just thought that it would be great to share categories across my laptop and desktop and if categories were implemented on core it would be easy to implement access permissions on them.
But you probably know better how you will achieve that, so do what you think suits best.
 
Personally I think categories must be implemented in core and then used by the GUI thingie. What about people using hnsh?
 
"Personally I think categories must be implemented in core and then used by the GUI thingie. What about people using hnsh?"
Technically, I agree that core should support something like this as well. However, due to time restrictions regarding the 0.3 release, I avoid touching anything in core (coding in core is several times more complex than coding in GUI), which means it was easier for me to implement this in GUI for the time being.

Madcat.
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?