Changeset 8237


Ignore:
Timestamp:
Apr 15, 2009, 1:59:54 AM (12 years ago)
Author:
charles
Message:

(trunk qt) hack on the main window layout

Location:
trunk/qt
Files:
3 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/qt/mainwin.cc

    r8236 r8237  
    2929#include "details.h"
    3030#include "filters.h"
     31#include "hig.h"
    3132#include "mainwin.h"
    3233#include "make-dialog.h"
     
    4142#include "torrent-filter.h"
    4243#include "torrent-model.h"
     44#include "triconpushbutton.h"
    4345#include "ui_mainwin.h"
    4446#include "utils.h"
     
    7072        QSize sz = fm.size( Qt::TextShowMnemonic, s );
    7173        return button->style()->sizeFromContents( QStyle::CT_PushButton, &opt, sz, button ).expandedTo( QApplication::globalStrut( ) );
    72     }
    73 
    74     void setTextButtonSizeHint( QPushButton * button )
    75     {
    76         /* this is kind of a hack, possibly coming from my being new to Qt.
    77          * Qt 4.4's sizeHint calculations for QPushButton have it include
    78          * space for an icon, even if no icon is used.  because of this,
    79          * default pushbuttons look way too wide in the filterbar...
    80          * so this routine recalculates the sizeHint without icons.
    81          * If there's a Right Way to do this that I've missed, let me know */
    82         button->setMaximumSize( calculateTextButtonSizeHint( button ) );
    8374    }
    8475}
     
    137128    ui.action_Contents->setIcon( getStockIcon( "help-contents", QStyle::SP_DialogHelpButton ) );
    138129    ui.action_About->setIcon( getStockIcon( "help-about" ) );
    139     ui.statusbarStatsButton->setIcon( getStockIcon( "view-refresh", QStyle::SP_BrowserReload ) );
    140     ui.downloadIconLabel->setPixmap( getStockIcon( "go-down", QStyle::SP_ArrowDown ).pixmap( smallIconSize ) );
    141     ui.uploadIconLabel->setPixmap( getStockIcon( "go-up", QStyle::SP_ArrowUp ).pixmap( smallIconSize ) );
    142     ui.filterEntryModeButton->setIcon( getStockIcon( "edit-find", QStyle::SP_ArrowForward ) );
    143     ui.filterEntryClearButton->setIcon( getStockIcon( "edit-clear", QStyle::SP_DialogCloseButton ) );
    144130
    145131    // ui signals
     
    193179
    194180    // signals
    195     connect( ui.speedLimitModeButton, SIGNAL(clicked()), this, SLOT(toggleSpeedMode()));
    196     connect( ui.filterAll, SIGNAL(clicked()), this, SLOT(showAll()));
    197     connect( ui.filterActive, SIGNAL(clicked()), this, SLOT(showActive()));
    198     connect( ui.filterDownloading, SIGNAL(clicked()), this, SLOT(showDownloading()));
    199     connect( ui.filterSeeding, SIGNAL(clicked()), this, SLOT(showSeeding()));
    200     connect( ui.filterPaused, SIGNAL(clicked()), this, SLOT(showPaused()));
    201     connect( ui.filterEntryClearButton, SIGNAL(clicked()), ui.filterEntry, SLOT(clear()));
    202     connect( ui.filterEntry, SIGNAL(textChanged(QString)), &myFilterModel, SLOT(setText(QString)));
    203181    connect( ui.action_SelectAll, SIGNAL(triggered()), ui.listView, SLOT(selectAll()));
    204182    connect( ui.action_DeselectAll, SIGNAL(triggered()), ui.listView, SLOT(clearSelection()));
    205     setTextButtonSizeHint( ui.filterAll );
    206     setTextButtonSizeHint( ui.filterActive );
    207     setTextButtonSizeHint( ui.filterDownloading );
    208     setTextButtonSizeHint( ui.filterSeeding );
    209     setTextButtonSizeHint( ui.filterPaused );
    210183
    211184    connect( &myFilterModel, SIGNAL(rowsInserted(const QModelIndex&,int,int)), this, SLOT(refreshVisibleCount()));
     
    222195
    223196    QActionGroup * actionGroup = new QActionGroup( this );
    224     actionGroup->addAction( ui.action_FilterByName );
    225     actionGroup->addAction( ui.action_FilterByFiles );
    226     actionGroup->addAction( ui.action_FilterByTracker );
    227     QMenu * menu = new QMenu( );
    228     menu->addAction( ui.action_FilterByName );
    229     menu->addAction( ui.action_FilterByFiles );
    230     menu->addAction( ui.action_FilterByTracker );
    231     ui.filterEntryModeButton->setMenu( menu );
    232     connect( ui.action_FilterByName, SIGNAL(triggered()), this, SLOT(filterByName()));
    233     connect( ui.action_FilterByFiles, SIGNAL(triggered()), this, SLOT(filterByFiles()));
    234     connect( ui.action_FilterByTracker, SIGNAL(triggered()), this, SLOT(filterByTracker()));
    235     ui.action_FilterByName->setChecked( true );
    236 
    237     actionGroup = new QActionGroup( this );
    238     actionGroup->addAction( ui.action_TotalRatio );
    239     actionGroup->addAction( ui.action_TotalTransfer );
    240     actionGroup->addAction( ui.action_SessionRatio );
    241     actionGroup->addAction( ui.action_SessionTransfer );
    242     menu = new QMenu( );
    243     menu->addAction( ui.action_TotalRatio );
    244     menu->addAction( ui.action_TotalTransfer );
    245     menu->addAction( ui.action_SessionRatio );
    246     menu->addAction( ui.action_SessionTransfer );
    247     connect( ui.action_TotalRatio, SIGNAL(triggered()), this, SLOT(showTotalRatio()));
    248     connect( ui.action_TotalTransfer, SIGNAL(triggered()), this, SLOT(showTotalTransfer()));
    249     connect( ui.action_SessionRatio, SIGNAL(triggered()), this, SLOT(showSessionRatio()));
    250     connect( ui.action_SessionTransfer, SIGNAL(triggered()), this, SLOT(showSessionTransfer()));
    251     ui.statusbarStatsButton->setMenu( menu );
    252 
    253     actionGroup = new QActionGroup( this );
    254197    actionGroup->addAction( ui.action_SortByActivity );
    255198    actionGroup->addAction( ui.action_SortByAge );
     
    262205    actionGroup->addAction( ui.action_SortByTracker );
    263206
    264     menu = new QMenu( );
     207    QMenu * menu = new QMenu( );
    265208    menu->addAction( ui.action_Add );
    266209    menu->addSeparator( );
     
    276219    myTrayIcon.setIcon( QApplication::windowIcon( ) );
    277220
    278     ui.optionsButton->setMenu( createOptionsMenu( ) );
    279 
    280221    connect( &myPrefs, SIGNAL(changed(int)), this, SLOT(refreshPref(int)) );
    281222    connect( ui.action_ShowMainWindow, SIGNAL(toggled(bool)), this, SLOT(toggleWindows()));
     
    285226    ui.action_ShowMainWindow->setChecked( !minimized );
    286227    ui.action_TrayIcon->setChecked( minimized || prefs.getBool( Prefs::SHOW_TRAY_ICON ) );
     228
     229    ui.verticalLayout->addWidget( createStatusBar( ) );
     230    ui.verticalLayout->insertWidget( 0, createFilterBar( ) );
    287231
    288232    QList<int> initKeys;
     
    312256
    313257    if( mySession.isServer( ) )
    314         ui.networkLabel->hide( );
     258        myNetworkLabel->hide( );
    315259    else {
    316260        connect( &myNetworkTimer, SIGNAL(timeout()), this, SLOT(onNetworkTimer()));
     
    347291    if( isChecked )
    348292        onSetPrefs( );
     293}
     294
     295#define SHOW_KEY "show-mode"
     296
     297void
     298TrMainWindow :: onShowModeClicked( )
     299{
     300    setShowMode( sender()->property(SHOW_KEY).toInt() );
     301}
     302
     303QWidget *
     304TrMainWindow :: createFilterBar( )
     305{
     306    int i;
     307    QMenu * m;
     308    QLineEdit * e;
     309    QPushButton * p;
     310    QHBoxLayout * h;
     311    QActionGroup * a;
     312    const int smallSize = style( )->pixelMetric( QStyle::PM_SmallIconSize, 0, this );
     313    const QSize smallIconSize( smallSize, smallSize );
     314
     315    QWidget * top = myFilterBar = new QWidget;
     316    h = new QHBoxLayout( top );
     317    h->setContentsMargins( HIG::PAD_SMALL, HIG::PAD_SMALL, HIG::PAD_SMALL, HIG::PAD_SMALL );
     318    h->setSpacing( HIG::PAD_SMALL );
     319
     320        QList<QString> titles;
     321        titles << tr( "A&ll" ) << tr( "&Active" ) << tr( "&Downloading" ) << tr( "&Seeding" ) << tr( "&Paused" );
     322        for( i=0; i<titles.size(); ++i ) {
     323            p = myFilterButtons[i] = new QPushButton( titles[i] );
     324            p->setProperty( SHOW_KEY, i );
     325            p->setFlat( true );
     326            p->setCheckable( true );
     327            p->setMaximumSize( calculateTextButtonSizeHint( p ) );
     328            connect( p, SIGNAL(clicked()), this, SLOT(onShowModeClicked()));
     329            h->addWidget( p );
     330        }
     331
     332    h->addStretch( 1 );
     333
     334        a = new QActionGroup( this );
     335        a->addAction( ui.action_FilterByName );
     336        a->addAction( ui.action_FilterByFiles );
     337        a->addAction( ui.action_FilterByTracker );
     338        m = new QMenu( );
     339        m->addAction( ui.action_FilterByName );
     340        m->addAction( ui.action_FilterByFiles );
     341        m->addAction( ui.action_FilterByTracker );
     342        connect( ui.action_FilterByName, SIGNAL(triggered()), this, SLOT(filterByName()));
     343        connect( ui.action_FilterByFiles, SIGNAL(triggered()), this, SLOT(filterByFiles()));
     344        connect( ui.action_FilterByTracker, SIGNAL(triggered()), this, SLOT(filterByTracker()));
     345        ui.action_FilterByName->setChecked( true );
     346        p = myFilterTextButton = new TrIconPushButton;
     347        p->setIcon( getStockIcon( "edit-find", QStyle::SP_ArrowForward ) );
     348        p->setFlat( true );
     349        p->setMenu( m );
     350        h->addWidget( p );
     351
     352        e = myFilterTextLineEdit = new QLineEdit;
     353        connect( e, SIGNAL(textChanged(QString)), &myFilterModel, SLOT(setText(QString)));
     354        h->addWidget( e );
     355
     356        p = myFilterTextButton = new TrIconPushButton;
     357        p->setIcon( getStockIcon( "edit-clear", QStyle::SP_DialogCloseButton ) );
     358        p->setFlat( true );
     359        connect( p, SIGNAL(clicked()), myFilterTextLineEdit, SLOT(clear()));
     360        h->addWidget( p );
     361
     362    return top;
     363}
     364
     365QWidget *
     366TrMainWindow :: createStatusBar( )
     367{
     368    QMenu * m;
     369    QLabel * l;
     370    QHBoxLayout * h;
     371    QPushButton * p;
     372    QActionGroup * a;
     373    const int i = style( )->pixelMetric( QStyle::PM_SmallIconSize, 0, this );
     374    const QSize smallIconSize( i, i );
     375
     376    QWidget * top = myStatusBar = new QWidget;
     377    h = new QHBoxLayout( top );
     378    h->setContentsMargins( HIG::PAD_SMALL, HIG::PAD_SMALL, HIG::PAD_SMALL, HIG::PAD_SMALL );
     379
     380        p = myOptionsButton = new TrIconPushButton( this );
     381        p->setIcon( QIcon( ":/icons/options.png" ) );
     382        p->setFlat( true );
     383        p->setMenu( createOptionsMenu( ) );
     384        h->addWidget( p );
     385
     386        p = myAltSpeedButton = new TrIconPushButton( this );
     387        p->setIcon( myPrefs.get<bool>(Prefs::ALT_SPEED_LIMIT_ENABLED) ? mySpeedModeOnIcon : mySpeedModeOffIcon );
     388        p->setFlat( true );
     389        h->addWidget( p );
     390        connect( p, SIGNAL(clicked()), this, SLOT(toggleSpeedMode()));
     391
     392        l = myNetworkLabel = new QLabel;
     393        h->addWidget( l );
     394
     395    h->addStretch( 1 );
     396
     397        l = myVisibleCountLabel = new QLabel( this );
     398        h->addWidget( l );
     399
     400    h->addStretch( 1 );
     401 
     402        a = new QActionGroup( this );
     403        a->addAction( ui.action_TotalRatio );
     404        a->addAction( ui.action_TotalTransfer );
     405        a->addAction( ui.action_SessionRatio );
     406        a->addAction( ui.action_SessionTransfer );
     407        m = new QMenu( );
     408        m->addAction( ui.action_TotalRatio );
     409        m->addAction( ui.action_TotalTransfer );
     410        m->addAction( ui.action_SessionRatio );
     411        m->addAction( ui.action_SessionTransfer );
     412        connect( ui.action_TotalRatio, SIGNAL(triggered()), this, SLOT(showTotalRatio()));
     413        connect( ui.action_TotalTransfer, SIGNAL(triggered()), this, SLOT(showTotalTransfer()));
     414        connect( ui.action_SessionRatio, SIGNAL(triggered()), this, SLOT(showSessionRatio()));
     415        connect( ui.action_SessionTransfer, SIGNAL(triggered()), this, SLOT(showSessionTransfer()));
     416        p = myStatsModeButton = new TrIconPushButton( this );
     417        p->setIcon( getStockIcon( "view-refresh", QStyle::SP_BrowserReload ) );
     418        p->setFlat( true );
     419        p->setMenu( m );
     420        h->addWidget( p ); 
     421        h->addSpacing( HIG :: PAD_SMALL );
     422        l = myStatsLabel = new QLabel( this );
     423        h->addWidget( l ); 
     424   
     425    h->addStretch( 1 );
     426
     427        l = new QLabel( this );
     428        l->setPixmap( getStockIcon( "go-down", QStyle::SP_ArrowDown ).pixmap( smallIconSize ) );
     429        h->addWidget( l );
     430        l = myDownloadSpeedLabel = new QLabel( this );
     431        h->addWidget( l );
     432
     433    h->addSpacing( HIG :: PAD_BIG );
     434
     435        l = new QLabel;
     436        l->setPixmap( getStockIcon( "go-up", QStyle::SP_ArrowUp ).pixmap( smallIconSize ) );
     437        h->addWidget( l );
     438        l = myUploadSpeedLabel = new QLabel;
     439        h->addWidget( l );
     440
     441    return top;
    349442}
    350443
     
    497590    else
    498591        str = tr( "%L1 of %Ln Torrent(s)", 0, totalCount ).arg( visibleCount );
    499     ui.visibleCountLabel->setText( str );
     592    myVisibleCountLabel->setText( str );
    500593}
    501594
     
    505598    const Speed up( myModel.getUploadSpeed( ) );
    506599    const Speed down( myModel.getDownloadSpeed( ) );
    507     ui.uploadTextLabel->setText( Utils :: speedToString( up ) );
    508     ui.downloadTextLabel->setText( Utils :: speedToString( down ) );
     600    myUploadSpeedLabel->setText( Utils :: speedToString( up ) );
     601    myDownloadSpeedLabel->setText( Utils :: speedToString( down ) );
    509602    const QString mode( myPrefs.getString( Prefs::STATUSBAR_STATS ) );
    510603    QString str;
     
    531624    }
    532625
    533     ui.statusbarStatsLabel->setText( str );
     626    myStatsLabel->setText( str );
    534627}
    535628
     
    779872        case Prefs::FILTER_MODE:
    780873            i = myPrefs.get<FilterMode>(key).mode( );
    781             ui.filterAll->setChecked         ( i == FilterMode::SHOW_ALL );
    782             ui.filterActive->setChecked      ( i == FilterMode::SHOW_ACTIVE );
    783             ui.filterDownloading->setChecked ( i == FilterMode::SHOW_DOWNLOADING );
    784             ui.filterSeeding->setChecked     ( i == FilterMode::SHOW_SEEDING );
    785             ui.filterPaused->setChecked      ( i == FilterMode::SHOW_PAUSED );
     874            for( int j=0; j<FilterMode::NUM_MODES; ++j )
     875                myFilterButtons[j]->setChecked( i==j );
    786876            break;
    787877
    788878        case Prefs::FILTERBAR:
    789879            b = myPrefs.getBool( key );
    790             ui.filterbar->setVisible( b );
     880            myFilterBar->setVisible( b );
    791881            ui.action_Filterbar->setChecked( b );
    792882            break;
     
    794884        case Prefs::STATUSBAR:
    795885            b = myPrefs.getBool( key );
    796             ui.statusbar->setVisible( b );
     886            myStatusBar->setVisible( b );
    797887            ui.action_Statusbar->setChecked( b );
    798888            break;
     
    829919        case Prefs :: ALT_SPEED_LIMIT_ENABLED:
    830920            b = myPrefs.getBool( key );
    831             ui.speedLimitModeButton->setChecked( b );
    832             ui.speedLimitModeButton->setIcon( b ? mySpeedModeOnIcon : mySpeedModeOffIcon );
    833             ui.speedLimitModeButton->setToolTip( b ? tr( "Click to disable Speed Limit Mode" )
    834                                                    : tr( "Click to enable Speed Limit Mode" ) );
     921            myAltSpeedButton->setChecked( b );
     922            myAltSpeedButton->setIcon( b ? mySpeedModeOnIcon : mySpeedModeOffIcon );
     923            myAltSpeedButton->setToolTip( b ? tr( "Click to disable Speed Limit Mode" )
     924                                            : tr( "Click to enable Speed Limit Mode" ) );
    835925            break;
    836926
     
    9191009    QIcon icon = getStockIcon( key, QStyle::SP_DriveNetIcon );
    9201010    QPixmap pixmap = icon.pixmap ( 16, 16 );
    921     ui.networkLabel->setPixmap( pixmap );
    922     ui.networkLabel->setToolTip( isSending || isReading
     1011    myNetworkLabel->setPixmap( pixmap );
     1012    myNetworkLabel->setToolTip( isSending || isReading
    9231013        ? tr( "Transmission server is responding" )
    9241014        : tr( "Last response from server was %1 ago" ).arg( Utils::timeToString( now-std::max(myLastReadTime,myLastSendTime))));
  • trunk/qt/mainwin.h

    r8236 r8237  
    1717#include <QCheckBox>
    1818#include <QFileDialog>
     19#include <QLineEdit>
    1920#include <QIcon>
    2021#include <QMainWindow>
     22#include <QMap>
    2123#include <QSet>
    2224#include <QSystemTrayIcon>
     
    2830};
    2931
     32#include "filters.h"
    3033#include "torrent-filter.h"
    3134#include "ui_mainwin.h"
     
    3841class TorrentModel;
    3942class QAction;
     43class QLabel;
    4044class QMenu;
    4145class QModelIndex;
     
    8387
    8488    private slots:
     89        void onShowModeClicked( );
    8590        void showAll( );
    8691        void showActive( );
     
    126131
    127132    private:
    128         QMenu* createOptionsMenu( void );
     133        QWidget * createFilterBar( void );
     134        QWidget * myFilterBar;
     135        QPushButton * myFilterButtons[FilterMode::NUM_MODES];
     136        QPushButton * myFilterTextButton;
     137        QLineEdit * myFilterTextLineEdit;
     138
     139    private:
     140        QMenu * createOptionsMenu( void );
     141        QWidget * createStatusBar( void );
     142        QWidget * myStatusBar;
     143        QPushButton * myAltSpeedButton;
     144        QPushButton * myOptionsButton;
     145        QLabel * myVisibleCountLabel;
     146        QPushButton * myStatsModeButton;
     147        QLabel * myStatsLabel;
     148        QLabel * myDownloadSpeedLabel;
     149        QLabel * myUploadSpeedLabel;
     150        QLabel * myNetworkLabel;
    129151
    130152    public slots:
  • trunk/qt/mainwin.ui

    r8236 r8237  
    2323    </property>
    2424    <item>
    25      <widget class="QWidget" name="filterbar" native="true">
    26       <property name="sizePolicy">
    27        <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
    28         <horstretch>0</horstretch>
    29         <verstretch>0</verstretch>
    30        </sizepolicy>
    31       </property>
    32       <layout class="QHBoxLayout" name="horizontalLayout_2">
    33        <property name="spacing">
    34         <number>3</number>
    35        </property>
    36        <property name="sizeConstraint">
    37         <enum>QLayout::SetDefaultConstraint</enum>
    38        </property>
    39        <property name="margin">
    40         <number>2</number>
    41        </property>
    42        <item>
    43         <widget class="QPushButton" name="filterAll">
    44          <property name="toolTip">
    45           <string>Show all torrents</string>
    46          </property>
    47          <property name="text">
    48           <string>A&amp;ll</string>
    49          </property>
    50          <property name="checkable">
    51           <bool>true</bool>
    52          </property>
    53          <property name="flat">
    54           <bool>true</bool>
    55          </property>
    56         </widget>
    57        </item>
    58        <item>
    59         <widget class="QPushButton" name="filterActive">
    60          <property name="sizePolicy">
    61           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
    62            <horstretch>0</horstretch>
    63            <verstretch>0</verstretch>
    64           </sizepolicy>
    65          </property>
    66          <property name="toolTip">
    67           <string>Show active torrents</string>
    68          </property>
    69          <property name="text">
    70           <string>&amp;Active</string>
    71          </property>
    72          <property name="checkable">
    73           <bool>true</bool>
    74          </property>
    75          <property name="flat">
    76           <bool>true</bool>
    77          </property>
    78         </widget>
    79        </item>
    80        <item>
    81         <widget class="QPushButton" name="filterDownloading">
    82          <property name="sizePolicy">
    83           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
    84            <horstretch>0</horstretch>
    85            <verstretch>0</verstretch>
    86           </sizepolicy>
    87          </property>
    88          <property name="baseSize">
    89           <size>
    90            <width>0</width>
    91            <height>0</height>
    92           </size>
    93          </property>
    94          <property name="toolTip">
    95           <string>Show torrents being downloaded</string>
    96          </property>
    97          <property name="text">
    98           <string>&amp;Downloading</string>
    99          </property>
    100          <property name="checkable">
    101           <bool>true</bool>
    102          </property>
    103          <property name="flat">
    104           <bool>true</bool>
    105          </property>
    106         </widget>
    107        </item>
    108        <item>
    109         <widget class="QPushButton" name="filterSeeding">
    110          <property name="sizePolicy">
    111           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
    112            <horstretch>0</horstretch>
    113            <verstretch>0</verstretch>
    114           </sizepolicy>
    115          </property>
    116          <property name="toolTip">
    117           <string>Show torrents being seeded</string>
    118          </property>
    119          <property name="text">
    120           <string>&amp;Seeding</string>
    121          </property>
    122          <property name="checkable">
    123           <bool>true</bool>
    124          </property>
    125          <property name="flat">
    126           <bool>true</bool>
    127          </property>
    128         </widget>
    129        </item>
    130        <item>
    131         <widget class="QPushButton" name="filterPaused">
    132          <property name="sizePolicy">
    133           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
    134            <horstretch>0</horstretch>
    135            <verstretch>0</verstretch>
    136           </sizepolicy>
    137          </property>
    138          <property name="toolTip">
    139           <string>Show paused torrents</string>
    140          </property>
    141          <property name="text">
    142           <string>&amp;Paused</string>
    143          </property>
    144          <property name="checkable">
    145           <bool>true</bool>
    146          </property>
    147          <property name="flat">
    148           <bool>true</bool>
    149          </property>
    150         </widget>
    151        </item>
    152        <item>
    153         <widget class="QWidget" name="filterBarSpacer" native="true">
    154          <property name="sizePolicy">
    155           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
    156            <horstretch>1</horstretch>
    157            <verstretch>0</verstretch>
    158           </sizepolicy>
    159          </property>
    160         </widget>
    161        </item>
    162        <item>
    163         <widget class="QPushButton" name="filterEntryModeButton">
    164          <property name="sizePolicy">
    165           <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
    166            <horstretch>0</horstretch>
    167            <verstretch>0</verstretch>
    168           </sizepolicy>
    169          </property>
    170          <property name="toolTip">
    171           <string>Set text filter mode</string>
    172          </property>
    173          <property name="text">
    174           <string/>
    175          </property>
    176          <property name="flat">
    177           <bool>true</bool>
    178          </property>
    179         </widget>
    180        </item>
    181        <item>
    182         <widget class="QLineEdit" name="filterEntry">
    183          <property name="sizePolicy">
    184           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
    185            <horstretch>3</horstretch>
    186            <verstretch>0</verstretch>
    187           </sizepolicy>
    188          </property>
    189          <property name="toolTip">
    190           <string>Show torrents matching this text</string>
    191          </property>
    192         </widget>
    193        </item>
    194        <item>
    195         <widget class="QPushButton" name="filterEntryClearButton">
    196          <property name="toolTip">
    197           <string>Clear the filter text</string>
    198          </property>
    199          <property name="text">
    200           <string/>
    201          </property>
    202          <property name="flat">
    203           <bool>true</bool>
    204          </property>
    205         </widget>
    206        </item>
    207       </layout>
    208       <zorder>filterAll</zorder>
    209       <zorder>filterActive</zorder>
    210       <zorder>filterDownloading</zorder>
    211       <zorder>filterSeeding</zorder>
    212       <zorder>filterPaused</zorder>
    213       <zorder>filterBarSpacer</zorder>
    214       <zorder>filterEntry</zorder>
    215       <zorder>filterEntryClearButton</zorder>
    216       <zorder>filterEntryModeButton</zorder>
    217      </widget>
    218     </item>
    219     <item>
    22025     <widget class="QListView" name="listView">
    22126      <property name="sizePolicy">
     
    23944     </widget>
    24045    </item>
    241     <item>
    242      <widget class="QWidget" name="statusbar" native="true">
    243       <property name="sizePolicy">
    244        <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
    245         <horstretch>0</horstretch>
    246         <verstretch>0</verstretch>
    247        </sizepolicy>
    248       </property>
    249       <layout class="QHBoxLayout" name="horizontalLayout">
    250        <property name="spacing">
    251         <number>3</number>
    252        </property>
    253        <property name="margin">
    254         <number>3</number>
    255        </property>
    256        <item>
    257         <widget class="QPushButton" name="speedLimitModeButton">
    258          <property name="sizePolicy">
    259           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
    260            <horstretch>0</horstretch>
    261            <verstretch>0</verstretch>
    262           </sizepolicy>
    263          </property>
    264          <property name="minimumSize">
    265           <size>
    266            <width>30</width>
    267            <height>24</height>
    268           </size>
    269          </property>
    270          <property name="maximumSize">
    271           <size>
    272            <width>24</width>
    273            <height>50</height>
    274           </size>
    275          </property>
    276          <property name="flat">
    277           <bool>true</bool>
    278          </property>
    279         </widget>
    280        </item>
    281        <item>
    282         <widget class="QPushButton" name="optionsButton">
    283          <property name="sizePolicy">
    284           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
    285            <horstretch>0</horstretch>
    286            <verstretch>0</verstretch>
    287           </sizepolicy>
    288          </property>
    289          <property name="minimumSize">
    290           <size>
    291            <width>30</width>
    292            <height>28</height>
    293           </size>
    294          </property>
    295          <property name="maximumSize">
    296           <size>
    297            <width>1000</width>
    298            <height>1000</height>
    299           </size>
    300          </property>
    301          <property name="text">
    302           <string notr="true">Options</string>
    303          </property>
    304          <property name="flat">
    305           <bool>true</bool>
    306          </property>
    307         </widget>
    308        </item>
    309        <item>
    310         <spacer name="horizontalSpacer_4">
    311          <property name="orientation">
    312           <enum>Qt::Horizontal</enum>
    313          </property>
    314          <property name="sizeType">
    315           <enum>QSizePolicy::Expanding</enum>
    316          </property>
    317          <property name="sizeHint" stdset="0">
    318           <size>
    319            <width>1</width>
    320            <height>1</height>
    321           </size>
    322          </property>
    323         </spacer>
    324        </item>
    325        <item>
    326         <widget class="QLabel" name="visibleCountLabel">
    327          <property name="text">
    328           <string>TextLabel</string>
    329          </property>
    330         </widget>
    331        </item>
    332        <item>
    333         <spacer name="horizontalSpacer">
    334          <property name="orientation">
    335           <enum>Qt::Horizontal</enum>
    336          </property>
    337          <property name="sizeType">
    338           <enum>QSizePolicy::Expanding</enum>
    339          </property>
    340          <property name="sizeHint" stdset="0">
    341           <size>
    342            <width>1</width>
    343            <height>1</height>
    344           </size>
    345          </property>
    346         </spacer>
    347        </item>
    348        <item>
    349         <widget class="QPushButton" name="statusbarStatsButton">
    350          <property name="text">
    351           <string/>
    352          </property>
    353          <property name="iconSize">
    354           <size>
    355            <width>16</width>
    356            <height>16</height>
    357           </size>
    358          </property>
    359          <property name="flat">
    360           <bool>true</bool>
    361          </property>
    362         </widget>
    363        </item>
    364        <item>
    365         <widget class="QLabel" name="statusbarStatsLabel">
    366          <property name="text">
    367           <string>TextLabel</string>
    368          </property>
    369         </widget>
    370        </item>
    371        <item>
    372         <spacer name="horizontalSpacer_3">
    373          <property name="orientation">
    374           <enum>Qt::Horizontal</enum>
    375          </property>
    376          <property name="sizeType">
    377           <enum>QSizePolicy::Fixed</enum>
    378          </property>
    379          <property name="sizeHint" stdset="0">
    380           <size>
    381            <width>20</width>
    382            <height>0</height>
    383           </size>
    384          </property>
    385         </spacer>
    386        </item>
    387        <item>
    388         <widget class="QLabel" name="downloadIconLabel">
    389          <property name="text">
    390           <string>TextLabel</string>
    391          </property>
    392         </widget>
    393        </item>
    394        <item>
    395         <widget class="QLabel" name="downloadTextLabel">
    396          <property name="toolTip">
    397           <string>Overall download speed</string>
    398          </property>
    399          <property name="text">
    400           <string>TextLabel</string>
    401          </property>
    402         </widget>
    403        </item>
    404        <item>
    405         <spacer name="horizontalSpacer_2">
    406          <property name="orientation">
    407           <enum>Qt::Horizontal</enum>
    408          </property>
    409          <property name="sizeType">
    410           <enum>QSizePolicy::Fixed</enum>
    411          </property>
    412          <property name="sizeHint" stdset="0">
    413           <size>
    414            <width>20</width>
    415            <height>0</height>
    416           </size>
    417          </property>
    418         </spacer>
    419        </item>
    420        <item>
    421         <widget class="QLabel" name="uploadIconLabel">
    422          <property name="text">
    423           <string>TextLabel</string>
    424          </property>
    425         </widget>
    426        </item>
    427        <item>
    428         <widget class="QLabel" name="uploadTextLabel">
    429          <property name="toolTip">
    430           <string>Overall upload speed</string>
    431          </property>
    432          <property name="text">
    433           <string>TextLabel</string>
    434          </property>
    435         </widget>
    436        </item>
    437        <item>
    438         <spacer name="horizontalSpacer_5">
    439          <property name="orientation">
    440           <enum>Qt::Horizontal</enum>
    441          </property>
    442          <property name="sizeType">
    443           <enum>QSizePolicy::Fixed</enum>
    444          </property>
    445          <property name="sizeHint" stdset="0">
    446           <size>
    447            <width>10</width>
    448            <height>0</height>
    449           </size>
    450          </property>
    451         </spacer>
    452        </item>
    453        <item>
    454         <widget class="QLabel" name="networkLabel">
    455          <property name="minimumSize">
    456           <size>
    457            <width>16</width>
    458            <height>16</height>
    459           </size>
    460          </property>
    461          <property name="text">
    462           <string/>
    463          </property>
    464          <property name="textFormat">
    465           <enum>Qt::PlainText</enum>
    466          </property>
    467         </widget>
    468        </item>
    469       </layout>
    470      </widget>
    471     </item>
    47246   </layout>
    473    <zorder>listView</zorder>
    474    <zorder>statusbar</zorder>
    475    <zorder>filterbar</zorder>
    47647  </widget>
    47748  <widget class="QMenuBar" name="menubar">
     
    48152     <y>0</y>
    48253     <width>792</width>
    483      <height>25</height>
     54     <height>23</height>
    48455    </rect>
    48556   </property>
  • trunk/qt/qtr.pro

    r8233 r8237  
    2727           qticonloader.cc session.cc squeezelabel.cc stats-dialog.cc \
    2828           torrent.cc torrent-delegate.cc torrent-delegate-min.cc \
    29            torrent-filter.cc torrent-model.cc utils.cc watchdir.cc
     29           torrent-filter.cc torrent-model.cc triconpushbutton.cc \
     30           utils.cc watchdir.cc
    3031HEADERS += $$replace(SOURCES, .cc, .h)
    3132HEADERS += speed.h types.h
Note: See TracChangeset for help on using the changeset viewer.