Changeset 413


Ignore:
Timestamp:
10/07/10 19:11:26 (20 months ago)
Author:
roeland
Message:

Merge of idle branch into trunk: fixes ticket #185

Files:
3 deleted
17 edited
4 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/CMakeLists.txt

    r391 r413  
    3131    gui/dirviewitemroot.cpp 
    3232    lib/lastfm_metadata_fetcher.cpp 
    33     lib/mpdconnection.cpp 
     33    lib/mpdconnectionbase.cpp 
     34    lib/mpdconnectionplayback.cpp 
    3435    lib/mpddatabaseconnection.cpp 
    3536    lib/mpdparseutils.cpp 
     
    5556    gui/dirviewproxymodel.h 
    5657    lib/lastfm_metadata_fetcher.h 
     58<<<<<<< .working 
    5759    lib/mpdconnection.h 
     60======= 
     61    lib/mpdconnectionbase.h 
     62    lib/mpdconnectionplayback.h 
     63>>>>>>> .merge-right.r412 
    5864    lib/mpddatabaseconnection.h 
    5965    lib/mpdplaylistsconnection.h 
     
    123129 
    124130# enable warnings 
    125 ADD_DEFINITIONS( -DQT_NO_DEBUG_OUTPUT ) 
     131#ADD_DEFINITIONS( -DQT_NO_DEBUG_OUTPUT ) 
    126132 
    127133IF( NOT ENABLE_KDE_SUPPORT ) 
  • trunk/QtMPC.pro

    r391 r413  
    3434        gui/dirviewitemroot.h \ 
    3535        lib/lastfm_metadata_fetcher.h \ 
    36         lib/mpdconnection.h \ 
     36        lib/mpdconnectionbase.h \ 
     37        lib/mpdconnectionplayback.h \ 
    3738        lib/mpddatabaseconnection.h \ 
    3839        lib/mpdparseutils.h \ 
     
    7879        gui/dirviewitemroot.cpp \ 
    7980        lib/lastfm_metadata_fetcher.cpp \ 
    80         lib/mpdconnection.cpp \ 
     81        lib/mpdconnectionbase.cpp \ 
     82        lib/mpdconnectionplayback.cpp \ 
    8183        lib/mpddatabaseconnection.cpp \ 
    8284        lib/mpdparseutils.cpp \ 
  • trunk/gui/main_window.cpp

    r404 r413  
    426426    connect(action_Remove_from_playlist, SIGNAL(activated()), this, SLOT(removeFromPlaylist())); 
    427427    connect(action_Clear_playlist, SIGNAL(activated()), this, SLOT(clearPlaylist())); 
    428  
    429     // Timer 
    430     connect(&statusTimer, SIGNAL(timeout()), &mpd, SLOT(getStatus())); 
     428     
     429    // Position slider update 
     430    connect(&elapsedTimer, SIGNAL(timeout()), this, SLOT(updatePositionSilder())); 
     431    elapsedTimer.setInterval(1000); 
    431432 
    432433    splitter->restoreState(settings.value("splitterSizes").toByteArray()); 
     
    439440        mpdDb.listAllInfo(MPDStats::getInstance()->dbUpdate()); 
    440441 
    441     statusTimer.start(settings.value("connection/interval", 1000).toInt()); 
    442442    mpdDb.listAll(); 
    443443 
     
    462462            connect(&pref, SIGNAL(systemTraySet(bool)), trayIcon, SLOT(setVisible(bool))); 
    463463        connect(&pref, SIGNAL(crossfadingChanged(const int)), this, SLOT(crossfadingChanged(const int))); 
    464         connect(&pref, SIGNAL(updateIntervalChanged(const int)), this, SLOT(updateIntervalChanged(const int))); 
    465464    } 
    466465 
     
    504503void MainWindow::showStatisticsDialog() 
    505504{ 
     505    mpd.getStats(); 
    506506    StatisticsDialog stats(this); 
    507507    stats.exec(); 
     
    553553{ 
    554554    mpd.goToNext(); 
    555     mpd.getStatus(); 
    556555} 
    557556 
     
    559558{ 
    560559    mpd.stopPlaying(); 
    561     mpd.getStatus(); 
    562560 
    563561       action_Stop_track->setEnabled(false); 
     
    578576        mpd.startPlayingSong(); 
    579577 
    580     mpd.getStatus(); 
    581578} 
    582579 
     
    584581{ 
    585582    mpd.goToPrevious(); 
    586     mpd.getStatus(); 
    587583} 
    588584 
     
    599595void MainWindow::increaseVolume() 
    600596{ 
    601     int volume = MPDStatus::getInstance()->volume(); 
    602     mpd.setVolume(qMin(100,volume+10)); 
     597    volumeSlider->triggerAction(QAbstractSlider::SliderPageStepAdd); 
    603598} 
    604599 
    605600void MainWindow::decreaseVolume() 
    606601{ 
    607     int volume = MPDStatus::getInstance()->volume(); 
    608     mpd.setVolume(qMax(0,volume-10)); 
     602    volumeSlider->triggerAction(QAbstractSlider::SliderPageStepSub); 
    609603} 
    610604 
     
    818812    QSettings settings; 
    819813 
    820     // Retrieve stats every 5 seconds 
    821     fetchStatsFactor = (fetchStatsFactor + 1) % 5; 
    822     if(fetchStatsFactor == 0) 
    823         mpd.getStats(); 
    824  
    825814    if(!draggingPositionSlider) { 
    826815        if(status->state() == MPDStatus::State_Stopped 
     
    857846        timeElapsedFormattedString += " / "; 
    858847        timeElapsedFormattedString += Song::formattedTime(status->timeTotal()); 
     848        songTime = status->timeTotal(); 
    859849    } 
    860850 
     
    870860            //playPauseTrackButton->setChecked(false); 
    871861            action_Stop_track->setEnabled(true); 
     862            elapsedTimer.start(); 
    872863 
    873864            break; 
     
    885876            trackAlbumLabel->setText(""); 
    886877            albumCoverLabel->setPixmap(QPixmap()); 
     878             
     879            elapsedTimer.stop(); 
    887880 
    888881            break; 
     
    894887            action_Play_pause_track->setEnabled(true); 
    895888            action_Stop_track->setEnabled(true); 
     889             
     890            elapsedTimer.stop(); 
    896891 
    897892            break; 
     
    938933void MainWindow::clearPlaylist() { 
    939934    mpd.clear(); 
    940     mpd.getStatus(); 
    941935    searchPlaylistLineEdit->clear(); 
    942936} 
     
    11791173} 
    11801174 
    1181 void MainWindow::updateIntervalChanged(const int mseconds) 
    1182 { 
    1183     statusTimer.setInterval(mseconds); 
    1184 } 
    1185  
    11861175void MainWindow::saveSplitterState(int, int) 
    11871176{ 
     
    12451234        mpd.startPlayingSong(); 
    12461235} 
     1236 
     1237void MainWindow::updatePositionSilder() 
     1238{ 
     1239    QString timeElapsedFormattedString; 
     1240     
     1241    if (positionSlider->value() != positionSlider->maximum()) { 
     1242        positionSlider->setValue(positionSlider->value() + 1); 
     1243         
     1244        timeElapsedFormattedString += Song::formattedTime(positionSlider->value()); 
     1245        timeElapsedFormattedString += " / "; 
     1246        timeElapsedFormattedString += Song::formattedTime(songTime); 
     1247        songTimeElapsedLabel->setText(timeElapsedFormattedString); 
     1248    } 
     1249} 
  • trunk/gui/main_window.h

    r404 r413  
    5757#include "gui/dirviewproxymodel.h" 
    5858#include "lib/lastfm_metadata_fetcher.h" 
    59 #include "lib/mpdconnection.h" 
     59#include "lib/mpdconnectionplayback.h" 
    6060#include "lib/mpddatabaseconnection.h" 
    6161 
     
    127127 
    128128    private: 
    129         MPDConnection mpd; 
     129        MPDConnectionPlayback mpd; 
    130130        MPDDatabaseConnection mpdDb; 
    131131        MPDStatus::State lastState; 
     132        quint32 songTime; 
    132133        qint32 lastSongId; 
    133134        quint32 lastPlaylist; 
     
    135136        int fetchStatsFactor; 
    136137        int nowPlayingFactor; 
    137         QTimer statusTimer; 
    138138        PlaylistsModel playlistsModel; 
    139139        PlaylistsProxyModel playlistsProxyModel; 
     
    156156        VolumeSliderEventHandler *volumeSliderEventHandler; 
    157157        PlaylistEventHandler *playlistEventHandler; 
     158        QTimer elapsedTimer; 
    158159        PlaylistsEventHandler *playlistsEventHandler; 
    159160 
     
    241242        void updateStats(); 
    242243        void updateStatus(); 
     244        void updatePositionSilder(); 
    243245        void playlistItemActivated(const QModelIndex &); 
    244246        void removeFromPlaylist(); 
     
    253255        void crossfadingChanged(const int seconds); 
    254256        void playlistTableViewContextMenuClicked(); 
    255         void updateIntervalChanged(const int mseconds); 
    256257 
    257258        void saveSplitterState(int, int); 
     
    276277        void removePlaylistPushButtonActivated(); 
    277278        void savePlaylistPushButtonActivated(); 
     279         
     280        void updateStoredPlaylists(); 
    278281 
    279282    friend class VolumeSliderEventHandler; 
  • trunk/gui/main_window.ui

    r398 r413  
    381381             <property name="maximum"> 
    382382              <number>100</number> 
    383              </property> 
    384              <property name="pageStep"> 
    385               <number>0</number> 
    386383             </property> 
    387384             <property name="orientation"> 
     
    777774     <y>0</y> 
    778775     <width>999</width> 
    779      <height>19</height> 
     776     <height>21</height> 
    780777    </rect> 
    781778   </property> 
  • trunk/gui/main_window_kde.ui

    r398 r413  
    360360            <property name="maximum"> 
    361361             <number>100</number> 
    362             </property> 
    363             <property name="pageStep"> 
    364              <number>0</number> 
    365362            </property> 
    366363            <property name="orientation"> 
  • trunk/gui/main_window_playlists.cpp

    r402 r413  
    6363    connect(removePlaylistPushButton, SIGNAL(clicked(bool)), this, SLOT(removePlaylistPushButtonActivated())); 
    6464    connect(savePlaylistPushButton, SIGNAL(clicked(bool)), this, SLOT(savePlaylistPushButtonActivated())); 
     65     
     66    connect(&mpd, SIGNAL(storedPlayListUpdated()), this, SLOT(updateStoredPlaylists())); 
    6567} 
    6668 
     
    130132        playlistsModel.savePlaylist(name); 
    131133} 
     134 
     135/* 
     136 * Idle command has returnd that stored_playlist: 
     137 * "a stored playlist has been modified, renamed, created or deleted" 
     138 * Update accordingly 
     139 * 
     140 * TODO: Implement 
     141 */ 
     142void MainWindow::updateStoredPlaylists() 
     143{ 
     144    qDebug() << "Need to update playlist"; 
     145    playlistsModel.getPlaylists(); 
     146} 
  • trunk/gui/playlistsmodel.cpp

    r382 r413  
    9898{ 
    9999    m_mpdConnection.load(name); 
    100     if(MPDStatus::getInstance()->state() != MPDStatus::State_Playing) 
    101         m_mpdConnection.startPlayingSong(); 
     100    /* 
     101     * TODO: reimplement this properly, can't do it this way anymore 
     102     */ 
     103    /*if(MPDStatus::getInstance()->state() != MPDStatus::State_Playing) 
     104        m_mpdConnection.startPlayingSong();*/ 
    102105} 
    103106 
     
    105108{ 
    106109    m_mpdConnection.rm(name); 
    107  
    108     getPlaylists(); 
    109110} 
    110111 
     
    112113{ 
    113114    m_mpdConnection.save(name); 
    114  
    115     getPlaylists(); 
    116115} 
  • trunk/gui/preferences_dialog.cpp

    r391 r413  
    7070    } 
    7171    crossfading->setValue(xfade); 
    72     updateInterval->setValue(settings.value("connection/interval", 1000).toInt()); 
    7372 
    7473    bool checkInfo = settings.value("fetchAlbumInfo", "true").toBool(); 
     
    8180    settings.setValue("connection/port", portSpinBox->value()); 
    8281    settings.setValue("connection/password", passwordLineEdit->text()); 
    83     settings.setValue("connection/interval", updateInterval->value()); 
    8482    settings.setValue("systemtray", systemTrayCheckBox->isChecked()); 
    8583     
     
    9492        emit crossfadingChanged(crossfading->value()); 
    9593    emit systemTraySet(systemTrayCheckBox->isChecked()); 
    96     emit updateIntervalChanged(updateInterval->value()); 
    9794} 
    9895 
  • trunk/gui/preferences_dialog.h

    r391 r413  
    6363        void systemTraySet(bool visible); 
    6464        void crossfadingChanged(const int seconds); 
    65         void updateIntervalChanged(const int mseconds); 
    6665}; 
    6766 
  • trunk/gui/preferences_dialog.ui

    r391 r413  
    164164          </widget> 
    165165         </item> 
    166          <item row="8" column="0" colspan="4"> 
     166         <item row="7" column="0" colspan="4"> 
    167167          <spacer name="spacer"> 
    168168           <property name="orientation"> 
     
    194194           <property name="text"> 
    195195            <string>Fetch album information (requires internet connection)</string> 
    196            </property> 
    197           </widget> 
    198          </item> 
    199          <item row="7" column="0"> 
    200           <widget class="QLabel" name="label_17"> 
    201            <property name="text"> 
    202             <string>Update Interval (miliseconds)</string> 
    203            </property> 
    204           </widget> 
    205          </item> 
    206          <item row="7" column="3"> 
    207           <widget class="QSpinBox" name="updateInterval"> 
    208            <property name="minimum"> 
    209             <number>100</number> 
    210            </property> 
    211            <property name="maximum"> 
    212             <number>4000</number> 
    213            </property> 
    214            <property name="singleStep"> 
    215             <number>100</number> 
    216196           </property> 
    217197          </widget> 
  • trunk/gui/preferences_dialog_kde.ui

    r391 r413  
    6767       <item row="0" column="0"> 
    6868        <layout class="QFormLayout" name="formLayout"> 
     69         <property name="fieldGrowthPolicy"> 
     70          <enum>QFormLayout::ExpandingFieldsGrow</enum> 
     71         </property> 
    6972         <item row="1" column="0"> 
    7073          <widget class="QLabel" name="label"> 
     
    7477          </widget> 
    7578         </item> 
     79         <item row="1" column="1"> 
     80          <widget class="KLineEdit" name="hostLineEdit"/> 
     81         </item> 
    7682         <item row="2" column="0"> 
    7783          <widget class="QLabel" name="label_2"> 
     
    8187          </widget> 
    8288         </item> 
     89         <item row="2" column="1"> 
     90          <widget class="KIntSpinBox" name="portSpinBox"> 
     91           <property name="minimum"> 
     92            <number>1</number> 
     93           </property> 
     94           <property name="maximum"> 
     95            <number>66000</number> 
     96           </property> 
     97           <property name="value"> 
     98            <number>6600</number> 
     99           </property> 
     100          </widget> 
     101         </item> 
    83102         <item row="3" column="0"> 
    84103          <widget class="QLabel" name="label_3"> 
     
    88107          </widget> 
    89108         </item> 
     109         <item row="3" column="1"> 
     110          <widget class="KLineEdit" name="passwordLineEdit"/> 
     111         </item> 
    90112         <item row="4" column="0"> 
    91113          <widget class="QLabel" name="label_6"> 
     
    95117          </widget> 
    96118         </item> 
     119         <item row="4" column="1"> 
     120          <widget class="KIntSpinBox" name="crossfading"> 
     121           <property name="maximum"> 
     122            <number>20</number> 
     123           </property> 
     124          </widget> 
     125         </item> 
    97126         <item row="5" column="0"> 
    98           <widget class="QLabel" name="label_7"> 
    99            <property name="text"> 
    100             <string>Update Interval (miliseconds)</string> 
    101            </property> 
    102           </widget> 
    103          </item> 
    104          <item row="6" column="1"> 
    105           <widget class="QCheckBox" name="systemTrayCheckBox"> 
    106            <property name="enabled"> 
    107             <bool>true</bool> 
    108            </property> 
    109            <property name="text"> 
    110             <string>Show in System tray</string> 
    111            </property> 
    112           </widget> 
    113          </item> 
    114          <item row="8" column="0"> 
    115127          <spacer> 
    116128           <property name="orientation"> 
     
    125137          </spacer> 
    126138         </item> 
    127          <item row="8" column="1"> 
    128           <widget class="QCheckBox" name="systemTrayPopup"> 
    129            <property name="text"> 
    130             <string>Show Popup message</string> 
    131            </property> 
    132           </widget> 
    133          </item> 
    134          <item row="9" column="0"> 
     139         <item row="5" column="1"> 
     140          <widget class="QCheckBox" name="systemTrayCheckBox"> 
     141           <property name="enabled"> 
     142            <bool>true</bool> 
     143           </property> 
     144           <property name="text"> 
     145            <string>Show in System tray</string> 
     146           </property> 
     147          </widget> 
     148         </item> 
     149         <item row="7" column="0"> 
    135150          <spacer> 
    136151           <property name="orientation"> 
     
    145160          </spacer> 
    146161         </item> 
    147          <item row="9" column="1"> 
    148           <widget class="QCheckBox" name="fetchInfoCheckBox"> 
    149            <property name="text"> 
    150             <string>Fetch album information (requires internet connection)</string> 
    151            </property> 
    152           </widget> 
    153          </item> 
    154          <item row="6" column="0"> 
     162         <item row="7" column="1"> 
     163          <widget class="QCheckBox" name="systemTrayPopup"> 
     164           <property name="text"> 
     165            <string>Show Popup message</string> 
     166           </property> 
     167          </widget> 
     168         </item> 
     169         <item row="8" column="0"> 
    155170          <spacer> 
    156171           <property name="orientation"> 
     
    165180          </spacer> 
    166181         </item> 
    167          <item row="1" column="1"> 
    168           <widget class="KLineEdit" name="hostLineEdit"/> 
    169          </item> 
    170          <item row="2" column="1"> 
    171           <widget class="KIntSpinBox" name="portSpinBox"> 
    172            <property name="minimum"> 
    173             <number>1</number> 
    174            </property> 
    175            <property name="maximum"> 
    176             <number>66000</number> 
    177            </property> 
    178            <property name="value"> 
    179             <number>6600</number> 
    180            </property> 
    181           </widget> 
    182          </item> 
    183          <item row="3" column="1"> 
    184           <widget class="KLineEdit" name="passwordLineEdit"/> 
    185          </item> 
    186          <item row="4" column="1"> 
    187           <widget class="KIntSpinBox" name="crossfading"> 
    188            <property name="maximum"> 
    189             <number>20</number> 
    190            </property> 
    191           </widget> 
    192          </item> 
    193          <item row="5" column="1"> 
    194           <widget class="KIntSpinBox" name="updateInterval"> 
    195            <property name="minimum"> 
    196             <number>100</number> 
    197            </property> 
    198            <property name="maximum"> 
    199             <number>4000</number> 
    200            </property> 
    201            <property name="value"> 
    202             <number>1000</number> 
     182         <item row="8" column="1"> 
     183          <widget class="QCheckBox" name="fetchInfoCheckBox"> 
     184           <property name="text"> 
     185            <string>Fetch album information (requires internet connection)</string> 
    203186           </property> 
    204187          </widget> 
  • trunk/lib/mpddatabaseconnection.cpp

    r372 r413  
    2525 
    2626MPDDatabaseConnection::MPDDatabaseConnection(QObject *parent) 
    27     : MPDConnection(parent) 
     27    : MPDConnectionBase(parent) 
    2828{ 
    2929} 
     
    3131MPDDatabaseConnection::MPDDatabaseConnection(const QString &host, const quint16 port, 
    3232QObject*parent) 
    33     : MPDConnection(host, port, parent) 
     33    : MPDConnectionBase(host, port, parent) 
    3434{ 
    3535} 
  • trunk/lib/mpddatabaseconnection.h

    r372 r413  
    2222#define MPDDATABASECONNECTION_H 
    2323 
    24 #include "lib/mpdconnection.h" 
     24#include "lib/mpdconnectionbase.h" 
    2525 
    2626class MusicLibraryItemArtist; 
     
    2828class MusicLibraryItemRoot; 
    2929 
    30 class MPDDatabaseConnection : public MPDConnection 
     30class MPDDatabaseConnection : public MPDConnectionBase 
    3131{ 
    3232    Q_OBJECT 
  • trunk/lib/mpdplaylistsconnection.cpp

    r396 r413  
    2525 
    2626MPDPlaylistsConnection::MPDPlaylistsConnection(QObject *parent) 
    27     : MPDConnection(parent) 
     27    : MPDConnectionBase(parent) 
    2828{ 
    2929} 
     
    3131MPDPlaylistsConnection::MPDPlaylistsConnection(const QString &host, const quint16 port, 
    3232QObject*parent) 
    33     : MPDConnection(host, port, parent) 
     33    : MPDConnectionBase(host, port, parent) 
    3434{ 
    3535} 
  • trunk/lib/mpdplaylistsconnection.h

    r358 r413  
    2222#define MPDPLAYLISTSCONNECTION_H 
    2323 
    24 #include "lib/mpdconnection.h" 
     24#include "lib/mpdconnectionbase.h" 
    2525#include "lib/playlist.h" 
    2626 
     
    2929class QString; 
    3030 
    31 class MPDPlaylistsConnection : public MPDConnection 
     31class MPDPlaylistsConnection : public MPDConnectionBase 
    3232{ 
    3333    Q_OBJECT 
Note: See TracChangeset for help on using the changeset viewer.