Seite 1 von 1

[Qt4.13] Bug im ListView?

Verfasst: 1. Juni 2006 17:28
von Esleborn
hi,
- QListview im IconMode, mit rootIndex a
- Verschiebt man jetzt ein Item an eine andere Position (nicht das erste, da sieht man nichts)
- Anschließend ändert man per setRootIndex den index zu b
- Anschließend ändert man per setRootIndex den index zurück zu a

Jetzt liegen die vorhin verschobenen Items auf der Position des ersten Items.


Bei Qt4.12 geht das ganze mit dem gewünschten Effekt:
Die Items liegen wie ganz am Anfang...

Verfasst: 5. Juni 2006 19:49
von Esleborn
kann das einer verifizieren?

Verfasst: 6. Juni 2006 13:02
von Esleborn
könnte wohl jemand den angehängten Code ausprobieren. Ich hab nur ein Qt mit inoffizielen Patch für MS Visual Studio 2003... das nehmen die als Bugbeschreibung nicht an...

Wenn man das Programm öffnet (QT413 kompiliert, achtet drauf, dass auch die richtigen dynamischen libs verwendet werden, wenn ihr dynamisch linkt), uss man drauf achten, dass man nciht in einem Rootverzeichnis ist, da ich um den rootindex zu ändern (DirModel) einmal cd ( ".." ) aufrufe :).

Dann der eigentliche Test:
  • 1. man bekommt das momentane Verzeichniss angeziegt (in einem Listview, IconMode).
    2. Man verschiebt ein paar Items
    3. Man drückt den Button
    4. Wenn es den Bug gibt, dann werden jetzt mehrere Items auf die Position des "links-oberstes" items angezeigt (um genau zu sein, alle die verschoben wurde und das was davor schon auf der "obersten" Stelle lag)
Danke für die Verifizierung
Elgrimm Esleborn

PS: Der Code ist nicht so ganz sauber, sorry, aber ich hatte nicht wirklcih viel Zeit...

Verfasst: 6. Juni 2006 13:19
von Esleborn
ok ich hab jetzt mal den Code bisele aufgeräumt...

(vllt kann einer mein .... nenn wir es englisch ... verbessern? *g)

Verfasst: 6. Juni 2006 13:21
von macman
Den Fehler kenne ich, allerdings in etwas anderer Form. Ich habe aber mal deine Sourcen geändert und dann taucht er auch auf. Setz das GridSize mal größer als die Icons, so das Du etwas zwischen Icons ablegen kannst. Wenn Du jetzt ein Icon zwischen zwei andere legst, dann wird das Icon auf das obere Icon drauf gepappt. Man bekommt sie dann nicht mehr getrennt.

Verfasst: 6. Juni 2006 13:23
von Esleborn
mmh supi... welchen Compiler hast du verwendet?

Ist der Bug schon reported? (hab ihn nicht gefunden...)

Verfasst: 6. Juni 2006 13:25
von macman
Visual Studio 8, aber das spielt wohl kaum eine Rolle. Im TaskTracker habe ich den Bug auch noch nicht gefunden und zu einem Beispiel bin ich noch nicht gekommen. Könnte ich aber heute machen.

Verfasst: 6. Juni 2006 13:45
von Esleborn
mmh benutzt du den inoffizielen Patch?

Weil wir brauchen die Verifikation mti einem "offizeilen" Compiler...

Verfasst: 6. Juni 2006 13:53
von macman
Nein, alles Vollversionen. Report ist schon raus, mit diesem Stückchen Code (für Linux sollte man das C: ersetzen):

Code: Alles auswählen

# include <QApplication>
# include <QListView>
# include <QDirModel>

int main ( int argc, char **argv )
{
	QApplication app(argc, argv);
	QDirModel* mp_model = new QDirModel ( NULL );
	QListView* mp_view = new QListView;
	mp_view->setModel ( mp_model );
	mp_view->setRootIndex ( mp_model->index ( "C:" ) );
	mp_view->setCurrentIndex ( mp_model->index ( "C:" ) );
	mp_view->setMovement ( QListView::Snap );
	mp_view->setGridSize ( QSize ( 60, 60 ) );
	mp_view->show ( );

	app.exec ( );

	return 0;
}
Man kann locker Icons auf andere Icons pappen und Redrawfehler gibt es auch, wenn mal runter scrollt und dort Drag&Dropped :-)

Verfasst: 6. Juni 2006 15:21
von Esleborn
mmh schick mal bug nummer, sobald bekannt

Verfasst: 14. Juni 2006 07:03
von macman
Lang hat's gedauert, aber dann kam doch noch Antwort :-)
http://www.trolltech.com/developer/task ... thod=entry