diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/styles/qcommonstyle.cpp | 77 | ||||
-rw-r--r-- | src/tools/qstring.cpp | 73 |
2 files changed, 69 insertions, 81 deletions
diff --git a/src/styles/qcommonstyle.cpp b/src/styles/qcommonstyle.cpp index bf8507786..a1ede1ad2 100644 --- a/src/styles/qcommonstyle.cpp +++ b/src/styles/qcommonstyle.cpp @@ -140,6 +140,27 @@ static const char * const check_list_controller_xpm[] = { " ", " "}; +// Increase speed by avoiding constant allocation/deallocation of commonly used strings +static TQString TQPushButton_static_string("TQPushButton"); +static TQString TQToolButton_static_string("TQToolButton"); +static TQString TQButton_static_string("TQButton"); +static TQString TQTabBar_static_string("TQTabBar"); +static TQString TQTitleBar_static_string("TQTitleBar"); +static TQString TQToolBox_static_string("TQToolBox"); +static TQString TQProgressBar_static_string("TQProgressBar"); +static TQString TQPopupMenu_static_string("TQPopupMenu"); +static TQString TQComboBox_static_string("TQComboBox"); +static TQString TQCheckBox_static_string("TQCheckBox"); +static TQString TQRadioButton_static_string("TQRadioButton"); +static TQString TQHeader_static_string("TQHeader"); +static TQString TQScrollBar_static_string("TQScrollBar"); +static TQString TQSlider_static_string("TQSlider"); +static TQString TQDialogButtons_static_string("TQDialogButtons"); +static TQString TQSpinWidget_static_string("TQSpinWidget"); +static TQString TQListView_static_string("TQListView"); +static TQString TQDockWindow_static_string("TQDockWindow"); +static TQString TQFrame_static_string("TQFrame"); + #include <ntqmetaobject.h> TQStringList getObjectTypeListForObject(const TQObject* object) { @@ -163,7 +184,7 @@ TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* obj TQStyle::ControlElementFlags cef = TQStyle::CEF_None; if (object) { - if (objectTypeList.contains("TQPushButton")) { + if (objectTypeList.contains(TQPushButton_static_string)) { const TQPushButton *button = dynamic_cast<const TQPushButton*>(object); if (button) { if (button->isDefault()) cef = cef | TQStyle::CEF_IsDefault; @@ -173,7 +194,7 @@ TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* obj if (button->isFlat()) cef = cef | TQStyle::CEF_IsFlat; } } - if (objectTypeList.contains("TQToolButton")) { + if (objectTypeList.contains(TQToolButton_static_string)) { const TQToolButton *button = dynamic_cast<const TQToolButton*>(object); if (button) { if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState; @@ -182,7 +203,7 @@ TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* obj if (button->popup()) cef = cef | TQStyle::CEF_HasPopupMenu; } } - if (objectTypeList.contains("TQButton")) { + if (objectTypeList.contains(TQButton_static_string)) { const TQButton *button = dynamic_cast<const TQButton*>(object); if (button) { if (button->isDown()) cef = cef | TQStyle::CEF_IsDown; @@ -190,39 +211,39 @@ TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* obj if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState; } } - if (objectTypeList.contains("TQTabBar")) { + if (objectTypeList.contains(TQTabBar_static_string)) { const TQTabBar *tb = dynamic_cast<const TQTabBar*>(object); TQTab * t = opt.tab(); if ((t) && (tb)) { if (t->identifier() == tb->currentTab()) cef = cef | TQStyle::CEF_IsActive; } } - if (objectTypeList.contains("TQTitleBar")) { + if (objectTypeList.contains(TQTitleBar_static_string)) { const TQTitleBar *tb = dynamic_cast<const TQTitleBar*>(object); if (tb) { if (tb->isActive()) cef = cef | TQStyle::CEF_IsActive; } } - if (objectTypeList.contains("TQToolBox")) { + if (objectTypeList.contains(TQToolBox_static_string)) { const TQToolBox *tb = dynamic_cast<const TQToolBox*>(object); if (tb) { if (!tb->currentItem()) cef = cef | TQStyle::CEF_IsContainerEmpty; } } - if (objectTypeList.contains("TQProgressBar")) { + if (objectTypeList.contains(TQProgressBar_static_string)) { const TQProgressBar *pb = dynamic_cast<const TQProgressBar*>(object); if (pb) { if (pb->centerIndicator()) cef = cef | TQStyle::CEF_CenterIndicator; if (pb->indicatorFollowsStyle()) cef = cef | TQStyle::CEF_IndicatorFollowsStyle; } } - if (objectTypeList.contains("TQPopupMenu")) { + if (objectTypeList.contains(TQPopupMenu_static_string)) { const TQPopupMenu *pm = dynamic_cast<const TQPopupMenu*>(object); if (pm) { if (pm->isCheckable()) cef = cef | TQStyle::CEF_IsCheckable; } } - if (objectTypeList.contains("TQComboBox")) { + if (objectTypeList.contains(TQComboBox_static_string)) { const TQComboBox *cb = dynamic_cast<const TQComboBox*>(object); if (cb) { if (cb->editable()) cef = cef | TQStyle::CEF_IsEditable; @@ -295,7 +316,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w ceData.name = widget->name(); ceData.caption = widget->caption(); if (!populateMinimumNumberOfFields) { - if (ceData.widgetObjectTypes.contains("TQPushButton")) { + if (ceData.widgetObjectTypes.contains(TQPushButton_static_string)) { const TQPushButton *button = dynamic_cast<const TQPushButton*>(widget); if (button) { TQIconSet* iconSet = 0; @@ -310,7 +331,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQToolButton")) { + if (ceData.widgetObjectTypes.contains(TQToolButton_static_string)) { const TQToolButton *button = dynamic_cast<const TQToolButton*>(widget); if (button) { const TQPixmap* fgPixmap = 0; @@ -324,7 +345,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w ceData.popupDelay = button->popupDelay(); } } - if (ceData.widgetObjectTypes.contains("TQCheckBox")) { + if (ceData.widgetObjectTypes.contains(TQCheckBox_static_string)) { const TQCheckBox *button = dynamic_cast<const TQCheckBox*>(widget); if (button) { const TQPixmap* fgPixmap = 0; @@ -334,7 +355,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQRadioButton")) { + if (ceData.widgetObjectTypes.contains(TQRadioButton_static_string)) { const TQRadioButton *button = dynamic_cast<const TQRadioButton*>(widget); if (button) { const TQPixmap* fgPixmap = 0; @@ -344,7 +365,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQButton")) { + if (ceData.widgetObjectTypes.contains(TQButton_static_string)) { const TQButton *button = dynamic_cast<const TQButton*>(widget); if (button) { ceData.text = button->text(); @@ -355,7 +376,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQTabBar")) { + if (ceData.widgetObjectTypes.contains(TQTabBar_static_string)) { const TQTabBar *tb = dynamic_cast<const TQTabBar*>(widget); if (tb) { ceData.tabBarData.tabCount = tb->count(); @@ -403,7 +424,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQToolBox")) { + if (ceData.widgetObjectTypes.contains(TQToolBox_static_string)) { const TQToolBox *tb = dynamic_cast<const TQToolBox*>(widget); if (tb) { const TQWidget* currentItem = tb->currentItem(); @@ -412,7 +433,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQProgressBar")) { + if (ceData.widgetObjectTypes.contains(TQProgressBar_static_string)) { const TQProgressBar *pb = dynamic_cast<const TQProgressBar*>(widget); if (pb) { ceData.currentStep = pb->progress(); @@ -422,7 +443,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w ceData.orientation = pb->orientation(); } } - if (ceData.widgetObjectTypes.contains("TQHeader")) { + if (ceData.widgetObjectTypes.contains(TQHeader_static_string)) { const TQHeader *header = dynamic_cast<const TQHeader*>(widget); if (header) { int section = opt.headerSection(); @@ -435,7 +456,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } // Complex Controls - if (ceData.widgetObjectTypes.contains("TQScrollBar")) { + if (ceData.widgetObjectTypes.contains(TQScrollBar_static_string)) { const TQScrollBar *sb = dynamic_cast<const TQScrollBar*>(widget); if (sb) { ceData.orientation = sb->orientation(); @@ -450,7 +471,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQSlider")) { + if (ceData.widgetObjectTypes.contains(TQSlider_static_string)) { const TQSlider *sl = dynamic_cast<const TQSlider*>(widget); if (sl) { ceData.orientation = sl->orientation(); @@ -467,7 +488,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQDialogButtons")) { + if (ceData.widgetObjectTypes.contains(TQDialogButtons_static_string)) { const TQDialogButtons *dlgbtns = dynamic_cast<const TQDialogButtons*>(widget); if (dlgbtns) { ceData.orientation = dlgbtns->orientation(); @@ -481,7 +502,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } - if (ceData.widgetObjectTypes.contains("TQTitleBar")) { + if (ceData.widgetObjectTypes.contains(TQTitleBar_static_string)) { const TQTitleBar *tb = dynamic_cast<const TQTitleBar*>(widget); if (tb) { ceData.titleBarData.hasWindow = !!(tb->window()); @@ -494,7 +515,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w ceData.titleBarData.visibleText = tb->visibleText(); } } - if (ceData.widgetObjectTypes.contains("TQSpinWidget")) { + if (ceData.widgetObjectTypes.contains(TQSpinWidget_static_string)) { const TQSpinWidget *sw = dynamic_cast<const TQSpinWidget*>(widget); if (sw) { ceData.spinWidgetData.buttonSymbols = sw->buttonSymbols(); @@ -504,7 +525,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w ceData.spinWidgetData.downEnabled = sw->isDownEnabled(); } } - if (ceData.widgetObjectTypes.contains("TQListView")) { + if (ceData.widgetObjectTypes.contains(TQListView_static_string)) { const TQListView *lv = dynamic_cast<const TQListView*>(widget); if (lv) { ceData.listViewData.rootDecorated = lv->rootIsDecorated(); @@ -546,7 +567,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQComboBox")) { + if (ceData.widgetObjectTypes.contains(TQComboBox_static_string)) { const TQComboBox *cb = dynamic_cast<const TQComboBox*>(widget); if (cb) { const TQLineEdit* lineEdit = cb->lineEdit(); @@ -559,7 +580,7 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w } } } - if (ceData.widgetObjectTypes.contains("TQFrame")) { + if (ceData.widgetObjectTypes.contains(TQFrame_static_string)) { const TQFrame *frame = dynamic_cast<const TQFrame*>(widget); if (frame) { ceData.frameStyle = frame->frameStyle(); @@ -2776,7 +2797,7 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQStyleControlElementData &c if ( ceData.wflags & WStyle_Tool ) { ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 16 ); #ifndef QT_NO_MAINWINDOW - } else if ( ceData.widgetObjectTypes.contains("TQDockWindow") ) { + } else if ( ceData.widgetObjectTypes.contains(TQDockWindow_static_string) ) { ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 13 ); #endif } else { @@ -2924,7 +2945,7 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQStyleControlElementData &c #ifndef QT_NO_TABBAR case PM_TabBarTabVSpace: { - if ( ceData.widgetObjectTypes.contains("TQTabBar") && ( ceData.tabBarData.shape == TQTabBar::RoundedAbove || + if ( ceData.widgetObjectTypes.contains(TQTabBar_static_string) && ( ceData.tabBarData.shape == TQTabBar::RoundedAbove || ceData.tabBarData.shape == TQTabBar::RoundedBelow ) ) ret = 10; else diff --git a/src/tools/qstring.cpp b/src/tools/qstring.cpp index 9b76dd9c0..24339fcdb 100644 --- a/src/tools/qstring.cpp +++ b/src/tools/qstring.cpp @@ -1048,13 +1048,9 @@ TQStringData::TQStringData() : TQShared(), islatin1(FALSE), security_unpaged(FALSE) { #ifdef QT_THREAD_SUPPORT - mutex = new TQMutex( TRUE ); - mutex->lock(); + mutex = new TQMutex(FALSE); #endif // QT_THREAD_SUPPORT ref(); -#ifdef QT_THREAD_SUPPORT - mutex->unlock(); -#endif // QT_THREAD_SUPPORT } TQStringData::TQStringData(TQChar *u, uint l, uint m) : TQShared(), @@ -1066,7 +1062,7 @@ TQStringData::TQStringData(TQChar *u, uint l, uint m) : TQShared(), islatin1(FALSE), security_unpaged(FALSE) { #ifdef QT_THREAD_SUPPORT - mutex = new TQMutex( TRUE ); + mutex = new TQMutex(FALSE); #endif // QT_THREAD_SUPPORT } @@ -1494,13 +1490,6 @@ TQString::TQString() : d(0) { d = shared_null ? shared_null : makeSharedNull(); -#ifdef QT_THREAD_SUPPORT - d->mutex->lock(); -#endif // QT_THREAD_SUPPORT - d->ref(); -#ifdef QT_THREAD_SUPPORT - d->mutex->unlock(); -#endif // QT_THREAD_SUPPORT } /*! @@ -1519,15 +1508,15 @@ TQString::TQString( TQChar ch ) TQString::TQString( const TQString &s ) : d(s.d) { + if (d != shared_null) { #ifdef QT_THREAD_SUPPORT - d->mutex->lock(); + d->mutex->lock(); #endif // QT_THREAD_SUPPORT - - d->ref(); - + d->ref(); #ifdef QT_THREAD_SUPPORT - d->mutex->unlock(); + d->mutex->unlock(); #endif // QT_THREAD_SUPPORT + } } /*! @@ -1550,13 +1539,6 @@ TQString::TQString( int size, bool /*dummy*/ ) d = new TQStringData( uc, 0, l ); } else { d = shared_null ? shared_null : (shared_null=new TQStringData); -#ifdef QT_THREAD_SUPPORT - d->mutex->lock(); -#endif // QT_THREAD_SUPPORT - d->ref(); -#ifdef QT_THREAD_SUPPORT - d->mutex->unlock(); -#endif // QT_THREAD_SUPPORT } } @@ -1598,13 +1580,6 @@ TQString::TQString( const TQChar* unicode, uint length ) { if ( !unicode && !length ) { d = shared_null ? shared_null : makeSharedNull(); -#ifdef QT_THREAD_SUPPORT - d->mutex->lock(); -#endif // QT_THREAD_SUPPORT - d->ref(); -#ifdef QT_THREAD_SUPPORT - d->mutex->unlock(); -#endif // QT_THREAD_SUPPORT } else { TQChar* uc = QT_ALLOC_QCHAR_VEC( length ); @@ -1689,22 +1664,19 @@ TQString::~TQString() } #endif + if (d == shared_null) { + return; + } + #ifdef QT_THREAD_SUPPORT d->mutex->lock(); #endif // QT_THREAD_SUPPORT if ( d->deref() ) { - if ( d != shared_null ) { #ifdef QT_THREAD_SUPPORT - d->mutex->unlock(); -#endif // QT_THREAD_SUPPORT - d->deleteSelf(); - d = NULL; - } - else { -#ifdef QT_THREAD_SUPPORT - d->mutex->unlock(); + d->mutex->unlock(); #endif // QT_THREAD_SUPPORT - } + d->deleteSelf(); + d = NULL; } else { #ifdef QT_THREAD_SUPPORT @@ -1730,7 +1702,7 @@ void TQString::real_detach() void TQString::deref() { - if ( d ) { + if ( d && (d != shared_null) ) { #ifdef QT_THREAD_SUPPORT d->mutex->lock(); #endif // QT_THREAD_SUPPORT @@ -1788,13 +1760,15 @@ void TQStringData::deleteSelf() */ TQString &TQString::operator=( const TQString &s ) { + if (s.d != shared_null) { #ifdef QT_THREAD_SUPPORT - s.d->mutex->lock(); + s.d->mutex->lock(); #endif // QT_THREAD_SUPPORT - s.d->ref(); + s.d->ref(); #ifdef QT_THREAD_SUPPORT - s.d->mutex->unlock(); + s.d->mutex->unlock(); #endif // QT_THREAD_SUPPORT + } deref(); d = s.d; @@ -6527,13 +6501,6 @@ TQString& TQString::setUnicode( const TQChar *unicode, uint len ) if ( d != shared_null ) { // beware of nullstring being set to nullstring deref(); d = shared_null ? shared_null : makeSharedNull(); -#ifdef QT_THREAD_SUPPORT - d->mutex->lock(); -#endif // QT_THREAD_SUPPORT - d->ref(); -#ifdef QT_THREAD_SUPPORT - d->mutex->unlock(); -#endif // QT_THREAD_SUPPORT } } else { |