Quicky : beta-test
Saluuut,
En attendant MozoDojo, qui est toujours en développement (j'ai un copain beta-testeur très très très exigeant), je vous propose une petite appli qui casse pas des briques, mais qui me rend bien service : Quicky (c'est une appli Cocoa ;-)
C'est un visionneur d'images à la ACDSee : on ouvre une image, et on peut naviguer rapidement entre les différentes images du même dossier. Pour accélérer, les images sont chargées en arrière-plan.
En effet, il me semble que par défaut, aucune appli MacOS X ne permet de faire juste ça, et bien. iPhoto n'est pas fait pour ça, Aperçu n'est pas pratique pour ça, FFView ne me plait pas beaucoup...
Pour télécharger la beta,
http://ktd.club.fr/programmation/fichiers/Quicky.dmg
Voilà , si vous vous sentez motivés, j'attends vos remarques.
+
Chacha
[Fichier joint supprimé par l'administrateur]
En attendant MozoDojo, qui est toujours en développement (j'ai un copain beta-testeur très très très exigeant), je vous propose une petite appli qui casse pas des briques, mais qui me rend bien service : Quicky (c'est une appli Cocoa ;-)
C'est un visionneur d'images à la ACDSee : on ouvre une image, et on peut naviguer rapidement entre les différentes images du même dossier. Pour accélérer, les images sont chargées en arrière-plan.
En effet, il me semble que par défaut, aucune appli MacOS X ne permet de faire juste ça, et bien. iPhoto n'est pas fait pour ça, Aperçu n'est pas pratique pour ça, FFView ne me plait pas beaucoup...
Pour télécharger la beta,
http://ktd.club.fr/programmation/fichiers/Quicky.dmg
Voilà , si vous vous sentez motivés, j'attends vos remarques.
+
Chacha
[Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
cepandant deux remarques (si je puis me permettre):
- la taille de la fenêtre change avec celle de l'image, ce qui fait qu'on ne peut pas trop utiliser les boutons pour regarder rapidement une suite d'images, puisque les boutons changent de place à chaque fois...
- les images qui ne sont pas à 72 ppp sont affichées à une échelle qui restitue la taille en cm mais pas en pixels (ce qui peut être bien aussi, mais comme il n'y a pas de fonction de zoom, on n'a pas trop le choix)...
[size=70pt]Mort à l'alu![/size]
Bon sans rire, ça ne vas pas du tout ici, il vaut mieux un fond uni, ou personalisable. En plus les fenêtre Alu doivent avoir une bordure, ce que tu n'as pas fait, et qui donne parfois de mauvais résultats (voir screenshot).
Sinon pour répondre à une question, il y a une fonction similaire. Dans les options de présentations d'un dossier, on peut avoir les aperçus des images contenues dans un dossier, mais ça reste limité.
Sinon comme a dit cbrandt, il faudrait aligner les boutons pour passer d'une image à l'autre sur la gauche, histoire que l'emplacement ne bouge pas. Il y a aussi quelques problèmes de redimensionnement. Si on prend les 3 images qu'il y a par défaut dans le dossier Sites, une fois que le logo Apache est passé la fenêtre ne se redimentionne plus, mais les image oui.
Il y a un problème avec les PDF, qui ne sont pas affichés.
[Fichier joint supprimé par l'administrateur]
-Pour l'alu, j'ai cru comprendre que Renaud n'aimait pas (comme beaucoup de gens en fait). Moi j'aime mieux avec, mais je vais voir au niveau des réactions globales. Cela dit, je ne connaissais pas cette règle de "une fenêtre alu doit avoir une bordure". ça vient d'où ?
-Pour les NSSegmentedControl : je ne connaissais pas du tout, mais je viens de jeter un oeil, c'est carrément intéressant ici ! Merci du conseil.
-Pour la position des boutons gauche/droite : en fait, je ne me rendais pas compte de l'importance de leur immobilité, parce que moi j'utilise les raccourcis claviers gauche/droite pour naviguer. Vous me conseillez de les mettre à gauche, c'est une idée, mais moi je trouve plus logique qu'ils soient centrés. Mon idée est donc de redimensionner et replacer la fenêtre de façon à ce qu'ils restent centrés. ça vous va ?
-Pour la fenêtre qui ne se redimensionne pas correctement pour les images dans Sites/images, effectivement, il y a un problème. Je vais voir.
-Pour les PDF qui ne s'affichent pas, c'est bizarre. Je pense que CoreGraphics doit pas aimer les PDF dans le ConvertNSImageToImageRef (enfin, un truc comme ça), il faut que je voie aussi.
-Pour les images qui ne sont pas à 72 ppp, je n'y avais pas pensé. Je vais voir le comportement que je préfère garder.
Encore merci
+
Chacha
Ce n'est pas vraiment une règle en fait, mais plutôt du bon sens. Les fenêtres aqua n'ont pas de décoration autour du contentView, alors que pour les fenêtres alu, tu as un effet de relief. Si dans le positionnement des subview, tu ne tiens pas compte de ce relief, tu peux avoir dans certains cas un truc pas très joli (comme dans la screenshot), ou bien alors comme Safari (mais qui faire encore exception), il y a une vue opaque qui chevauche complètement les bords (parce que dans ton cas, il y a en plus le problème des images avec couche alpha).
J'aimerais bien faire une bordure pas trop grande, mais la taille du Sizer n'est pas adaptée, pfff !
[Fichier joint supprimé par l'administrateur]
Merci beaucoup à Renaud, notamment.
V'là le lien:
http://ktd.club.fr/programmation/fichiers/Quicky.dmg
+
Chacha
Sympa comme application, par contre j'ai eu des crashs en passant d'une image à l'autre :
Date/Time: 2005-03-17 00:26:26 +0100
OS Version: 10.3.8 (Build 7U16)
Report Version: 2
Command: Quicky
Path: /Volumes/Quicky/Quicky.app/Contents/MacOS/Quicky
Version: Quicky version 1.0 beta 3 (1.0 beta 3)
PID: 843
Thread: 0
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_INVALID_ADDRESS (0x0001) at 0xc0014000
Thread 0 Crashed:
0 <<00000000>> 0x937a6a84 0 + 0x937a6a84
1 <<00000000>> 0x9362f2dc 0 + 0x9362f2dc
2 <<00000000>> 0x935dc4d8 0 + 0x935dc4d8
3 <<00000000>> 0x91b81914 0 + 0x91b81914
4 <<00000000>> 0x91b83264 0 + 0x91b83264
5 <<00000000>> 0x935eee7c 0 + 0x935eee7c
6 fr.club.ktd.Quicky 0x0000cc98 -[MyImageView drawRect:] + 0x1d8
7 <<00000000>> 0x92dc7c2c 0 + 0x92dc7c2c
8 <<00000000>> 0x92dd8670 0 + 0x92dd8670
9 <<00000000>> 0x92dc3f44 0 + 0x92dc3f44
10 <<00000000>> 0x92dc4360 0 + 0x92dc4360
11 <<00000000>> 0x92dc4360 0 + 0x92dc4360
12 <<00000000>> 0x92e10ef0 0 + 0x92e10ef0
13 <<00000000>> 0x92df808c 0 + 0x92df808c
14 <<00000000>> 0x92dd5244 0 + 0x92dd5244
15 <<00000000>> 0x92dee274 0 + 0x92dee274
16 <<00000000>> 0x92dfef4c 0 + 0x92dfef4c
17 <<00000000>> 0x92ddf5ac 0 + 0x92ddf5ac
18 com.apple.CoreFoundation 0x90191ca0 __CFRunLoopDoObservers + 0x194
19 com.apple.CoreFoundation 0x9019153c __CFRunLoopRun + 0x18c
20 com.apple.CoreFoundation 0x90195e8c CFRunLoopRunSpecific + 0x148
21 <<00000000>> 0x927d5f60 0 + 0x927d5f60
22 <<00000000>> 0x927dc640 0 + 0x927dc640
23 <<00000000>> 0x927fe6a0 0 + 0x927fe6a0
24 <<00000000>> 0x92dd2e44 0 + 0x92dd2e44
25 <<00000000>> 0x92de98c8 0 + 0x92de98c8
26 ??? 0x002345c8 -[NSApplication(CocoaGestures) cocoaGesturesNextEventMatchingMask:untilDate:inMode:dequeue:] + 0x20
27 <<00000000>> 0x92dfdc30 0 + 0x92dfdc30
28 <<00000000>> 0x92eba2b8 0 + 0x92eba2b8
29 fr.club.ktd.Quicky 0x00009b80 _start + 0x188 (crt.c:267)
30 dyld 0x8fe1a558 _dyld_start + 0x64
Ben ça alors, zut.
Est-ce que ce plantage est systématique ? Sur un type d'images particulier ? Des grandes images ? En fullscreen ?
C'est bête, apparemment j'ai désactivé les debug symbol par erreur (pas cool pour une beta). Mais si ça plante bien dans le drawRect, comme le crashlog semble l'indiquer, c'est très bizarre; il n'y a vraiment pas du code dangereux là -dedans, juste des appels à des fonctions CoreGraphics qui ne m'avaient jamais posé problème jusqu'alors. Enfin, bon, les détails c'est une chose, mais l'appli plante et ça c'est grave.
Grrr.
+
Chacha
bref ne t'inquiète pas c'était un fichier corrompu !
Désolé de t'avoir alarmé pour rien
Y'a pas de mal, c'est du beta-testing; en plus, Preview, lui, il est capable de dire qu'il y a un problème, alors que mon appli, elle plante.
Je vais donc quand même regarder le problème.
+
Chacha
PS : peux-tu m'envoyer ton fichier corrompu ? Je n'arrive pas à faire planter même en bidouillant un tiff à la main !
Sinon, très sympa ton appli, et une de plus dans mon dock !
Chouette !
Eeehhh! Mais, oui, depuis que j'ai enlevé le métal brossé, on n'y voit plus rien ! J'avais pas réalisé. Je vais changer ça.
Attends au moins la version finale ! (bon, d'accord, y'aura pas grand chose de neuf). Il faut aussi remercier les beta-testeurs impitoyables.
+
Chacha
Lors du chargement, en cas d'erreur, NSImage peut être égal à nil, mais ça peut aussi lancer une exception.
D'acc, merci beaucoup !
Merci Chacha, et bonne continuation
Une petite beta 4 devrait vous permettre d'essayer, non ?
http://ktd.club.fr/programmation/fichiers/Quicky.dmg
+
Chacha
- la possibilité de draguer directement un dossier (il descendrait récursivement dans l'arborescence du folder pour chercher des images)
- la possibilité de draguer image en cours de visualisation pour par exemple la glisser sur le bureau (il en fait une copie), ou la glisser dans un email ...
C'est effectivement quelque chose que je voudrais faire, je viens de poser une question à ce sujet sur le forum. Cela dit, je ne suis pas trop pour l'aspect récursif, j'aime autant limiter à 1 niveau d'arborescence.
C'est envisageable, je vais regarder ça (j'ai bien fait de faire des betas)
+
Chacha
On peut maintenant déposer un dossier sur l'appli ou une de ses fenêtres, et on peut extraire ce que la fenêtre affiche.
Au passage : pour extraire l'image originale, on peut toujours utiliser la "proxy icon" de la barre de titre de la fenêtre.
Enjoy beta 5
http://ktd.club.fr/programmation/fichiers/Quicky.dmg
+
Chacha
Chacha champion sur l'écoute des utilisateurs  :adios!: bon alors du coup j'en rajoute
Â
. Je ne trouve pas terrible les icônes de rotation (en fait, c'est le mélange des genres alu <->aqua qui me gène )
. perso je préférais avoir un truc comme ça : (l'utilisation d'un NSToolbar pourrait résoudre les habitudes de positionnement des btns de chacun, mais je ne sais pas si c'est une bonne idée, car il ne faut pas que Quicky soit long à charger)
[Fichier joint supprimé par l'administrateur]
En même temps, j'ai pris les icônes d'iPhoto. Pour moi, c'est le plus clair que je puisse faire, et l'utilisateur lambda ne se demandera donc pas longtemps à quoi elles peuvent servir. Les flèches que tu proposes sont jolies, certes, mais à la limite on dirait du Undo/Redo.
Je ne sais pas utiliser les NSToolBar, je ne l'ai jamais fait, donc ça me prendrait du temps. Et puis surtout, une toolbar pour 4 icônes, ça me paraà®t un peu abuser. Je ne crois pas qu'il soit terriblement intéressant de changer la disposition des icônes, dans la mesure où elles sont toutes disponibles constamment.
M'enfin tu fais bien de proposer, les idées sont toujours bonnes à recevoir.
C'est comment le proverbe chinois déjà ? Un truc comme ça:
"Si tu as un objet et que tu l'échanges avec quelqu'un, vous aurez chacun un objet. Mais si tu as une idée et que tu l'échanges avec quelqu'un, vous aurez chacun deux idées."
+
Chacha
Ce sont les icônes de -rotation- de Preview
Oui je te comprends ... par contre si un jour tu en as besoin, tu peux regarder l'exemple SimpleToolbar (/Developer/Examples/AppKit/SimpleToolbar). Ce n'est pas bien compliqué à prg avec ce squelette.
Je ne le connaissais pas celui la .. c'est tellement juste !
[Fichier joint supprimé par l'administrateur]
[mauvaise foi on]
Ah d'accord. Je ne les ai pas reconnu, car ne m'en servant jamais, je les ai virées de ma barre d'outils.
N'empêche qu'elles ne sont pas terribles
[mauvaise foi off]
Si, j'ai iPhoto 5...
Ok, je viens de regarder, je n'avais trouvé que les premières, mais il y en avait d'autres plus loin; celles que tu proposes sont effectivement beaucoup plus jolies sur de l'Aqua. Ah là là , on sent que je suis pas designer, moi. ça se voit rien que sur mes icônes d'application; comment je galère.
Merci des conseils
+
Chacha
Voici donc une release candidate de Quicky:
http://ktd.club.fr/programmation/fichiers/Quicky.dmg
On s'approche de la finale, c'est bien.
+
Chacha
[Fichier joint supprimé par l'administrateur]
Bugs
. Le menu "Fichier" semble "dérailler" par moment (je pense que c'est du au fait que tu n'as pas fait encore le choix de savoir si Quicky était mono ou multifenêtre) : par exemple, fait un cmd+W (fermer la fenêtre) puis un cmd+O (Ouvrir) cela ne fonctionne plus.
. Bug : Le menu "Ouvrir Récent" ne fonctionne pas ici.(perso je n'utilise que le drag&drop dont si il n'y avait pas de menu Fichier cela ne me choquerait pas )
Suggestions
. Pour le drag&drop : utiliser le mécanisme de promesse serait plus souple (sinon il y a un temps de latence avec les grosses images ), et enclencher le dragout que si il y a un click+drag de plus de x pixel.
- l'image dragué serait plus sympa en transparence (NSCompositeSourceOver 0.75 par ex)
. mémoriser la position de la fenêtre principale est pratique pour ce type d'application lorsque l'on a 2 écrans par exemple (mécanisme AutosaveName dispo)
Mais bon tout ça peut être pour une v2.0 car ton application remplit complètement son rolle déjà  : Bravo !
Bien vu, effectivement, j'attachais le NSOpenPanel aux fenêtres alors que finalement c'est mieux de le rendre plus global. D'ailleurs, je viens d'utiliser avec succès le openDocument de NSDocumentController, comme ça j'allège encore plus le code.
[edit]
Ah non, finalement je me suis refait un openPanel plus adapté.
[/edit]
D'accord. En drag'n drop, effectivement, le menu "fichiers récents" ne prend pas les choses en compte. Pardon : ne prenait ;-)
C'est bon, j'ai résolu le problème des temps de latence, non pas avec des promised files, mais avec du code efficace à grands coups de Core Graphics.
D'accord, je regarde ça, ça ne devrait pas être trop compliqué. Mais j'ai un souci : je ne sais pas pourquoi, l'événement "mouseDragged" n'est jamais appelé dans ma vue, alors que j'ai tout fait pour. Du coup j'ai dû me débrouiller avec mouseDown.
[edit]
Réparé : une NSImageView ne répond pas à mouseDragged si elle est "Enabled". Ben faut le savoir, hein. Et encore : je ne l'ai pas lu dans une doc, je l'ai trouvé avec des tests !
[/edit]
Ok
Mais je n'ai pas de fenêtre principale ?! Je ne comprends pas très bien... En plus, le autosavename c'est pour les NSTableView, non ?
+
Chacha
http://ktd.club.fr/programmation/fichiers/Quicky.dmg
Le seul truc qui m'embête, c'est l'icône. Elle est moche.
+
Chacha
J'aimerais:
- si je choisis l'affichage taille maxi, que cette option reste valide pour les autres images (un bouton On/Off ? )
- pouvoir faire défiler les images en plein écran avec les flèches du clavier ou un clic de la souris.
Merci