First of all, all the guys that have commented before me have given very good, sound advice so try to take it all in.
You remind me of one of my mates. He's had two girlfriends in his life (one he's still with) and he does exactly the same things you've posted here. The 1st girlfriend he had sounds alot like the one that took advantage of you. He would do everything for her. Now, correct me if I'm wrong here, but like my mate, you believed that being so 'nice' was the key to being the perfect boyfriend? This is WRONG. If you give women an inch, they'll take a mile. If you give them a mile, they'll take your soul

Women do NOT respect this type of behaviour. He really struggled after his 1st gf to find someone else and only got lucky with the 2nd (she loves attention).
This is a more common mistake that you think so don't beat yourself up about it.
Just remember that men and women are equal and so the relationship should be too. Don't do anything for them, that they're not prepared to do for you.