I am talking about the present...
Even in the past Dhoni's captaincy has been intact due to the good form of openers. Sehwag was in prime form, was ICC #1 batsman and scored 13 50+ scores in 2008 (a world record) which included 5 tons. It's only then that India became number 1 too.
And at one point of time Gambhir scored 4 or 5 consecutive tons in as many games.
Nobody asked for a change of skipper as the team was winning, thanks to the openers. Now the two fail, change of captain is demanded and you say that either of them don't deserve to be the skipper because they are out of form. Of this is how Indian cricket works then they can never lead the side.
And Virat should undoubtedly lead the limited overs team. A ton in the last game of a pathetic series and people put forth his name for test skipper. He isn't even a certainty in the team with players like Rahane and Tiwary eyeing a spot in the middle order.