+ int i_index = -1;
+ int i_flag = 0;
+
+ // FIXME: Disable sorting on startup by ignoring
+ // first call of sorting caused by showing dialog
+ // see: standardpanel.cpp:65
+ static bool b_first_time = true;
+ if( b_first_time )
+ {
+ b_first_time = false;
+ return;
+ }
+
+#define CHECK_COLUMN( meta ) \
+{ \
+ if( ( shownFlags() & meta ) ) \
+ i_index++; \
+ if( column == i_index ) \
+ { \
+ i_flag = meta; \
+ goto next; \
+ } \
+}
+
+ CHECK_COLUMN( COLUMN_NUMBER );
+ CHECK_COLUMN( COLUMN_TITLE );
+ CHECK_COLUMN( COLUMN_DURATION );
+ CHECK_COLUMN( COLUMN_ARTIST );
+ CHECK_COLUMN( COLUMN_GENRE );
+ CHECK_COLUMN( COLUMN_ALBUM );
+ CHECK_COLUMN( COLUMN_TRACK_NUMBER );
+ CHECK_COLUMN( COLUMN_DESCRIPTION );
+
+#undef CHECK_COLUMN
+
+next: