Don’t call updateGeometry() during a size constraintsEvent and don’t call resize.
If you want to keep the same aspect ratio you may be interested in Applet::setAspectRatioMode( ).
If you want to write a new clock widget, you should inherit from libplasmaclock ClockApplet.
Don’t do custom things: use default plasma methods and widgets when possible.
Some useful methods are: Applet::setBusy( ) if your applet is busy, Applet::setConfigurationRequired( ) if user needs to configure the widget, etc…
Some useful widgets are: Plasma::CheckBox, Plasma::ComboBox, Plasma::LineEdit, Plasma::PushButton, Plasma::RadioButton, etc…