nurupo / ProjectTox-Qt-GUI

A cross-platform front end for ProjectTox Core library, written in C++11 with use of Qt5
GNU General Public License v3.0
341 stars 116 forks source link

Smoth animation for new messages #45

Closed Schlumpf closed 11 years ago

Schlumpf commented 11 years ago

I added some eye candy. Now we have a nice animation for new messages. The messages fade in and the scroll down is animated.

nurupo commented 11 years ago

The auto-scroll animation sometimes cuts the bottom of the last line:

01

JamoBox commented 11 years ago

@sometwo What array of people were asked though? Keeping in mind the end product will be marketed to the general public, the thoughts and opinions on what does and doesn't look good from a developer's point of view doesn't count for much. A lot of end-users generally love that kind of animation stuff. Perhaps there should be an enable/disable animations setting for it; if not then this should be put on the back-burner until a wider audience's opinion is collected.

Schlumpf commented 11 years ago

I agree with JamoBox. I'll implement the settings option and fix nurupos bug tomorrow.

nurupo commented 11 years ago

@Schlumpf if you will be creating new *settingspage.cpp, it's important that you create GUI in buildGui() method without calling anything from Settings class, then in setGui() you call the Settings class to set the created GUI and in applyChanges() you save the values back into Settings. The order BasicSettingsDialog will call methods on your *settingspage is buildGui(), setGui() and if user clicks Ok in the settings dialog, agreeing on the settings to be saved, applyChanges() is called. You can model it after loggingsettingspage.cpp, without QLabel and without QGroupBox being checkable.

In Settings you just create getter/setter methods and add some code to save() and load(). You can also emit a signal in the setter, if you want to notify about the change, which is rarely needed, since you can just do if (Settings::getInstance().getAnimationEnabled()) { do animation } check in your code. I prefer using methods instead of Q_PROPERTY in Settings and I use getX for bools just for consistency with other getters, although the standard isX for bools maybe better solution.

fix nurupos bug tomorrow

I think you just have to repaint the last message, since the scroll bar is already on the bottom and the rest of the bottom line shows when I make the window active/put focus on it, i.e. when it repaints.

Schlumpf commented 11 years ago

I'm not completely sure about the bug. Repainting didn't help. I extended the opacity animation a little bit, now it takes 10ms longer than the scroll animation and it works fine. strange...