Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Software > Calibre > Library Management

Notices

Reply
 
Thread Tools Search this Thread
Old 04-08-2013, 07:15 AM   #1
chaley
"chaley", not "charley"
chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.
 
Posts: 5,907
Karma: 1217216
Join Date: Jan 2010
Location: France
Device: Many android devices
Question: addition of "virtual libraries" (was "base search restriction")

I am considering adding a new variant of search restriction and would appreciate comments on the idea.

A common need I have is to operate on subsets of my library as "virtual libraries". For example, I want to look at "unread" books as a virtual library, having all operations such as searches see only these books. This is why I originally added search restrictions to calibre way-back-when.

However, from time to time I want to apply a restriction on the virtual library, for example to operate on a particular genre of unread books. Restrictions can to this as well, but it is a bother to create the search (current_restriction AND #genre:foo) and then apply it as the current restriction. Also, some plugins use restrictions, and because they change the restriction it is hard to get them to operate on a restricted set of books.

The new feature I am considering might be called a "base restriction". You would set this restriction somehow, and from that point it would be automatically ANDed with any temporary search restriction entered in the current restriction box. The net effect would be to move the idea of "virtual library" a bit further down into calibre, permitting you to set it then use all of calibre including restrictions without worrying about whether you are still seeing only the virtual library.

The questions:

1) Am I the only one who has this need? If very few people have the need then it is not worth adding visible complexity to calibre to support it.
2) Would it be acceptable to set the "base restriction" in preferences -> behavior, near where the startup restriction is set? I am very leery of taking screen real estate for what is a rather esoteric capability.
3) Should the setting be persistent, surviving calibre restarts? I don't need this, but ...
4) How should the GUI show that a base restriction has been set? Is using the current coloring of the "(N of M)" information sufficient? (It is for me.)
5) Any other comments?

EDIT: The feature has been added and a beta is available. See this post for the beta. Post 12 provides an overview of what it looks like.

Last edited by chaley; 04-14-2013 at 04:08 AM.
chaley is offline   Reply With Quote
Old 04-08-2013, 07:52 AM   #2
DoctorOhh
US Navy, Retired
DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.
 
DoctorOhh's Avatar
 
Posts: 8,908
Karma: 12755553
Join Date: Feb 2009
Location: North Carolina
Device: Nexus 7
Being able to set a restriction to a already set virtual library may come in handy and seems to be a natural extension of the feature.

I always have my library open to a restricted view and possibly if working on a project having a persistent 2nd level restriction might be of use. Possibly changing the first restriction from Restrict to to Virtual Library (I think naming the dropdown list Virtual Library would be more descriptive of its use) and have the second level restriction referred to as Restrict to or Restricted view.

As long as you find value in this I do not think it increases the complexity of this feature beyond its current level.

It is one of those things I may not use often but will be nice to have when the urge hits me. Looking forward to changes you may implement.

Last edited by DoctorOhh; 04-08-2013 at 07:55 AM.
DoctorOhh is offline   Reply With Quote
Old 04-08-2013, 07:56 AM   #3
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 26,436
Karma: 5383257
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
If you want to do this, I suggest going the whole hog and creating virtual libraries. Create a submenu in in the popup menu of the calibre button (the one used to switch libraries), which can have entries that look like:

Code:
Virtual libraries ->
  Create a virtual library
  Remove virtual library
  _____________

  Virtual sub-library 1
  Virtual sub-library 2
...
Allow the user to define a virtual sub library using a simple search (rather than only a saved search). Each virtual library should have two things, a friendly name, and a search expression.

A good place to indicate the use of a virtual library is the title bar. Currently it reads || library name || you can change that when switching virtual libraries to something like || library name :: virtual library name ||
kovidgoyal is offline   Reply With Quote
Old 04-08-2013, 08:02 AM   #4
DoctorOhh
US Navy, Retired
DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.
 
DoctorOhh's Avatar
 
Posts: 8,908
Karma: 12755553
Join Date: Feb 2009
Location: North Carolina
Device: Nexus 7
Quote:
Originally Posted by kovidgoyal View Post
If you want to do this, I suggest going the whole hog and creating virtual libraries.


I'm not doing the work so a +1 is easy for me to get behind, but as it stands now the restrict to virtual libraries are the best, least used feature of calibre. Changing the presentation and the implementation as suggested would be a great step in having everyone get the most out of this great feature.
DoctorOhh is offline   Reply With Quote
Old 04-08-2013, 08:07 AM   #5
BetterRed
null operator
BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.
 
Posts: 3,979
Karma: 2925589
Join Date: Mar 2012
Location: NSW Australia
Device: none
Quote:
Originally Posted by chaley View Post
...
The questions:

1) Am I the only one who has this need? If very few people have the need then it is not worth adding visible complexity to calibre to support it.
I think I'd use it, but not high priority

Quote:
Originally Posted by chaley View Post
2) Would it be acceptable to set the "base restriction" in preferences -> behavior, near where the startup restriction is set? I am very leery of taking screen real estate for what is a rather esoteric capability.
  • I'd rather have a button to the left of the Restrict to, as it's the sort of thing I'd want to toggle
  • If its applied then maybe the button could be highlighted (e.g. edge glow).
  • IMO putting it in preferences puts it too far away from saved searches, which I assume it would use
  • The Temp Marker drop down might be a good 'template' for the button
  • What to put on the button, dare I suggest 'BR' for Base Restriction
Quote:
Originally Posted by chaley View Post
3) Should the setting be persistent, surviving calibre restarts? I don't need this, but ...
I wish all Restrictions could be flagged as persistent

Quote:
Originally Posted by chaley View Post
4) How should the GUI show that a base restriction has been set? Is using the current coloring of the "(N of M)" information sufficient? (It is for me.)
  • How about colouring the Restrict To button if a restriction is set - see 2,
  • I find the highlight colouring of N of M mildly irritating, and I have to think about what its telling me
I'm not fond of putting things in the title bar - its sometimes hard to read in dark themes, such as the one I use after sunset. I'd rather see things in the status bar (maybe configured via a right click popup set of checkboxes a'la MS Word)

BR

Last edited by BetterRed; 04-08-2013 at 08:24 AM. Reason: error correction & grammar
BetterRed is online now   Reply With Quote
Old 04-08-2013, 08:08 AM   #6
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 26,436
Karma: 5383257
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
Oh and in case it wasn't clear, I am advocating that the current restrictions behavior become the "base" restriction, while the new feature becomes the easily switchable one. In particular, there is no need to persist the virtual library across a restart and no need for another setting to specify that a library always open with a given virtual library. Both of those are possible with the current restrictions feature, so they dont need to be duplicated.
kovidgoyal is offline   Reply With Quote
Old 04-08-2013, 08:15 AM   #7
DoctorOhh
US Navy, Retired
DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.
 
DoctorOhh's Avatar
 
Posts: 8,908
Karma: 12755553
Join Date: Feb 2009
Location: North Carolina
Device: Nexus 7
Quote:
Originally Posted by kovidgoyal View Post
Oh and in case it wasn't clear, I am advocating that the current restrictions behavior become the "base" restriction, while the new feature becomes the easily switchable one. In particular, there is no need to persist the virtual library across a restart and no need for another setting to specify that a library always open with a given virtual library. Both of those are possible with the current restrictions feature, so they dont need to be duplicated.
And my idea was exactly opposite. Calling the first level a Virtual Library (as the base restriction) implementing what you suggested I think would be easier for folks to grasp than the current "Restrict to" terminology.

But as I said easy for me to speak since I won't be doing the work.
DoctorOhh is offline   Reply With Quote
Old 04-08-2013, 08:20 AM   #8
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 26,436
Karma: 5383257
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
It doesn't really matter which is the base and which isn't. The actual operation is an AND, which is order independent.

In particular you would be able to use virtual libraries without using restrictions and vice versa. The question really is whether virtual libraries need to have the same set of persistence features as restrictions, namely, specifying a VL at startup, and perhaps for the content server as well.

Certainly, I imagine VL will become the primary way to use search restrictions in calibre. The restrict to dropdown will only be used when an additional level of restriction is needed.
kovidgoyal is offline   Reply With Quote
Old 04-08-2013, 08:23 AM   #9
chaley
"chaley", not "charley"
chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.
 
Posts: 5,907
Karma: 1217216
Join Date: Jan 2010
Location: France
Device: Many android devices
Quote:
Originally Posted by kovidgoyal View Post
Oh and in case it wasn't clear, I am advocating that the current restrictions behavior become the "base" restriction, while the new feature becomes the easily switchable one. In particular, there is no need to persist the virtual library across a restart and no need for another setting to specify that a library always open with a given virtual library. Both of those are possible with the current restrictions feature, so they dont need to be duplicated.
Sorry, don't quite follow.

Assuming we use your suggestion and add virtual libraries to the library menu: what is the relationship between

- a virtual library and the current preferences -> behavior -> restriction at startup?
- what is in the restrictions box and the current preferences -> behavior -> restriction at startup?
- what is in the restrictions box and the virtual library menu?

Currently a startup restriction is shown in the "restrict to" box. That means that the startup restriction can (and does) go away frequently, which tells me that it is not a "virtual library". Are you suggesting that the startup restriction no longer populate that box, but instead be added (somehow) to the virtual libraries that the user can choose from?
chaley is offline   Reply With Quote
Old 04-08-2013, 08:24 AM   #10
DoctorOhh
US Navy, Retired
DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.DoctorOhh ought to be getting tired of karma fortunes by now.
 
DoctorOhh's Avatar
 
Posts: 8,908
Karma: 12755553
Join Date: Feb 2009
Location: North Carolina
Device: Nexus 7
Quote:
Originally Posted by kovidgoyal View Post
In particular you would be able to use virtual libraries without using restrictions and vice versa. The question really is whether virtual libraries need to have the same set of persistence features as restrictions, namely, specifying a VL at startup, and perhaps for the content server as well.

Certainly, I imagine VL will become the primary way to use search restrictions in calibre. The restrict to dropdown will only be used when an additional level of restriction is needed.
Thanks for the clarification of the concept. This is exactly what I was thinking. Making virtual libraries simple to implement and calling them virtual libraries will be easier to convey, terminology wise, to the masses.

Sounds great!
DoctorOhh is offline   Reply With Quote
Old 04-08-2013, 08:29 AM   #11
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 26,436
Karma: 5383257
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
In fact thinking about it some more, regarding the UI, we can probably get rid of the Restrict to dropdown and replace it with a button that says

"Virtual library"

When clicked the button pops up a menu with the choices I described below, in addition, an extra submenu that says "Additional restriction" which will allow the use of the current restrict to feature.

That will make the feature more discoverable, as opposed to putting it inside the library menu.

In such a case Doctor-Ohh is right and the VL feature should become the "base". i.e. it should be used in Preferences->Behavior and in the content server.
kovidgoyal is offline   Reply With Quote
Old 04-08-2013, 08:39 AM   #12
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 26,436
Karma: 5383257
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
Too many posts

Here's my updated proposal, disregard everything in my previous posts:

Name the feature Virtual Libraries

The UI
Replace the Restrict to dropdown with a new button that says "Virtual Libraries"
This button when clicked will popup a menu with the entries:
Code:
Create VL
Remove VL
Additional restriction ->
  same as current restrict to popup
_____
VL 1
VL 2
No VL
If a VL is applied, it is indicated in the title bar as || library name :: VL name ||

If an "additional restriction" is applied it is also indicated in the title bar as
|| library name :: VL name :: restriction name ||

The current (m of n ) labels shows m of n where n is the number of books in the fully restricted library, i.e. with VL and additional restriction (if any) applied.

The startup option should be changed to using a VL, which is indicated in the title bar as before.

There are probably some wrinkles to work out with this proposal.

EDIT: A VL should not depends on saved searches, that is, it should allow the use of simple searches. A VL is defined as (friendly name, search). The friendly name will be used in the UI (titlebar/menus/etc.)

Last edited by kovidgoyal; 04-08-2013 at 08:45 AM.
kovidgoyal is offline   Reply With Quote
Old 04-08-2013, 08:58 AM   #13
BetterRed
null operator
BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.
 
Posts: 3,979
Karma: 2925589
Join Date: Mar 2012
Location: NSW Australia
Device: none
Virtual Library sounds like marketing jargon to me.

The manual uses the word Filter in a similar context on command line switches

I suggest the terms Primary and Secondary Filter be used, then there is little doubt as to which comes first (takes precedence) and what's being done - "filtering' - as in selecting the books that meet the criteria - nothing virtual about that, it's real.

BR

Last edited by BetterRed; 04-08-2013 at 09:19 AM.
BetterRed is online now   Reply With Quote
Old 04-08-2013, 09:23 AM   #14
chaley
"chaley", not "charley"
chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.
 
Posts: 5,907
Karma: 1217216
Join Date: Jan 2010
Location: France
Device: Many android devices
Quote:
Originally Posted by kovidgoyal View Post
This button when clicked will popup a menu with the entries:
[code]
Create VL
Remove VL
Additional restriction ->
same as current restrict to popup
Can do this, but be aware that there is a fair amount of code that looks at the content of the current search_restrictions combo box. In particular, at least some of kiwidude's plugins do that, for example find duplicates. As there is no way that I can find to put a combobox into a menu, all that code will need to change to get the "additional restriction" in some other way.

The change can be fully compatible with existing code and plugins if the "virtual library" button is put on the tool bar (either a new button or an addition to the library button) instead of replacing the existing combo box, or if both the button and the combo box are on the main gui.
chaley is offline   Reply With Quote
Old 04-08-2013, 10:18 AM   #15
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 26,436
Karma: 5383257
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
@chaley: Thanks to the dynamic nature of python, maintaining compatibility is easy. We just create a dummy object that exposes the same API (a minimal subset) as the current combobox object and get the actual restriction from the new code.

@BR: Filtering is used to denote filtering the current book list alone, not the entire library, which a restriction does. Restrictions are not filters. And one of the motivations for this change is to make this feature both easier to discover and describe. Virtual library meets both those goals.
kovidgoyal is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
"Sharpness" and "Kobo Styling" question? EldRick Kobo Reader 3 11-19-2012 10:25 AM
Question about disable indexing permanently by disabling access to "Search Indexes" WS64 Kindle Developer's Corner 1 12-17-2011 06:51 PM
E-Books Achat d'E.books & "restriction géographique" choup Forum Français 112 07-19-2010 12:52 PM
Question - Does iLiab have the "search" & "annotation, highlighting" features? HiSoC8Y iRex 5 07-01-2009 05:37 PM


All times are GMT -4. The time now is 07:17 PM.


MobileRead.com is a privately owned, operated and funded community.