aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/tageditor.cpp
blob: b94dcbb6d0a2b2ea818f2cd1f07dfde6952cf666 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/***************************************************************************
 *   Copyright (C) 2009 by Ilya Kotov                                      *
 *   forkotov02@hotmail.ru                                                 *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

#include <qmmp/tagmodel.h>
#include "tageditor_p.h"
#include "ui_tageditor.h"

TagEditor::TagEditor(TagModel *tagModel, QWidget *parent) : QWidget(parent), m_ui(new Ui::TagEditor)
{
    m_ui->setupUi(this);
    m_tagModel = tagModel;
    //check available keys
    m_ui->titleLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::TITLE));
    m_ui->artistLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::ARTIST));
    m_ui->albumLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::ALBUM));
    m_ui->composerLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::COMPOSER));
    m_ui->genreLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::GENRE));
    m_ui->commentBrowser->setEnabled(m_tagModel->keys().contains(Qmmp::COMMENT));
    m_ui->discSpinBox->setEnabled(m_tagModel->keys().contains(Qmmp::DISCNUMBER));
    m_ui->yearSpinBox->setEnabled(m_tagModel->keys().contains(Qmmp::YEAR));
    m_ui->trackSpinBox->setEnabled(m_tagModel->keys().contains(Qmmp::TRACK));

    readTag();
}

TagEditor::~TagEditor()
{
    delete m_ui;
}

void TagEditor::save()
{
    if(m_ui->useCheckBox->isChecked())
    {
        if(!m_tagModel->exists())
            m_tagModel->create();
         m_tagModel->setValue(Qmmp::TITLE,  m_ui->titleLineEdit->text());
         m_tagModel->setValue(Qmmp::ARTIST, m_ui->artistLineEdit->text());
         m_tagModel->setValue(Qmmp::ALBUM, m_ui->albumLineEdit->text());
         m_tagModel->setValue(Qmmp::COMPOSER, m_ui->composerLineEdit->text());
         m_tagModel->setValue(Qmmp::GENRE, m_ui->genreLineEdit->text());
         m_tagModel->setValue(Qmmp::COMMENT, m_ui->commentBrowser->toPlainText ());
         m_tagModel->setValue(Qmmp::DISCNUMBER,  m_ui->discSpinBox->value());
         m_tagModel->setValue(Qmmp::YEAR, m_ui->yearSpinBox->value());
         m_tagModel->setValue(Qmmp::TRACK, m_ui->trackSpinBox->value());
    }
    else
        m_tagModel->remove();
    m_tagModel->save();
    readTag();
}

void TagEditor::readTag()
{
    m_ui->tagWidget->setEnabled(m_tagModel->exists());
    m_ui->useCheckBox->setChecked(m_tagModel->exists());
    m_ui->useCheckBox->setVisible(m_tagModel->caps() & TagModel::CreateRemove);
    m_ui->titleLineEdit->setText(m_tagModel->value(Qmmp::TITLE));
    m_ui->artistLineEdit->setText(m_tagModel->value(Qmmp::ARTIST));
    m_ui->albumLineEdit->setText(m_tagModel->value(Qmmp::ALBUM));
    m_ui->composerLineEdit->setText(m_tagModel->value(Qmmp::COMPOSER));
    m_ui->genreLineEdit->setText(m_tagModel->value(Qmmp::GENRE));
    m_ui->commentBrowser->setText(m_tagModel->value(Qmmp::COMMENT));
    m_ui->discSpinBox->setValue(m_tagModel->value(Qmmp::DISCNUMBER).toInt());
    m_ui->yearSpinBox->setValue(m_tagModel->value(Qmmp::YEAR).toInt());
    m_ui->trackSpinBox->setValue(m_tagModel->value(Qmmp::TRACK).toInt());
}
'>85 86 87 88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
                





































                                                             
                
         


                    
                       






                  











                        























                        
                    

 










                     


                  
                     


             


                










                      













                     



                      


                    
                  

 
                                                                                           
 
                                                   
 

                                                  


                
               
                         
                            



                            
                         

 
                                         




                                                     
                                                                                                                    




                                                                             
project(skinned)

cmake_minimum_required(VERSION 2.4.7)

if(COMMAND cmake_policy)
   cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy) 

SET(QT_USE_QTNETWORK TRUE)

INCLUDE(FindQt4)

include(${QT_USE_FILE})

# qt plugin
ADD_DEFINITIONS( -Wall )
ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DQT_PLUGIN)
ADD_DEFINITIONS(-DQT_NO_DEBUG)
ADD_DEFINITIONS(-DQT_SHARED)
ADD_DEFINITIONS(-DQT_THREAD)

include_directories(${CMAKE_CURRENT_BINARY_DIR})

SET(QT_INCLUDES
  ${QT_INCLUDES}
  ${CMAKE_CURRENT_SOURCE_DIR}/../../../
)


# libqmmpui & libqmmp
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)

# X11
include_directories(${X11_INCLUDE_DIRS})
link_directories(${X11_LIBRARY_DIRS})

SET(skinned_SRCS
    fft.c
    addurldialog.cpp
    balancebar.cpp
    button.cpp
    skinnedsettings.cpp
    display.cpp
    dock.cpp
    eqgraph.cpp
    eqpreset.cpp
    eqslider.cpp
    eqtitlebar.cpp
    eqwidget.cpp
    keyboardmanager.cpp
    listwidget.cpp
    mainvisual.cpp
    mainwindow.cpp
    monostereo.cpp
    number.cpp
    pixmapwidget.cpp
    playlistcontrol.cpp
    playlist.cpp
    playlistslider.cpp
    playlisttitlebar.cpp
    playstatus.cpp
    positionbar.cpp
    preseteditor.cpp
    shadedbar.cpp
    shadedvisual.cpp
    skin.cpp
    skinreader.cpp
    symboldisplay.cpp
    textscroller.cpp
    timeindicator.cpp
    titlebarcontrol.cpp
    titlebar.cpp
    togglebutton.cpp
    visualmenu.cpp
    volumebar.cpp
    cursorimage.cpp
    playlistbrowser.cpp
    playlistselector.cpp
    popupwidget.cpp
    popupsettings.cpp
    windowsystem.cpp
    actionmanager.cpp
    shortcutitem.cpp
    shortcutdialog.cpp
    skinnedfactory.cpp
    hotkeyeditor.cpp
)

SET(skinned_HDRS
    eqpreset.h
    fft.h
    inlines.h
    keyboardmanager.h
    cursorimage.h
    windowsystem.h
    shortcutitem.h
)

SET(skinned_MOC_HDRS
    addurldialog.h
    balancebar.h
    button.h
    skinnedsettings.h
    display.h
    dock.h
    eqgraph.h
    eqslider.h
    eqtitlebar.h
    eqwidget.h
    listwidget.h
    mainvisual.h
    mainwindow.h
    monostereo.h
    number.h
    pixmapwidget.h
    playlistcontrol.h
    playlist.h
    playlistslider.h
    playlisttitlebar.h
    playstatus.h
    positionbar.h
    preseteditor.h
    shadedbar.h
    shadedvisual.h
    skin.h
    skinreader.h
    symboldisplay.h
    textscroller.h
    timeindicator.h
    titlebarcontrol.h
    titlebar.h
    togglebutton.h
    visualmenu.h
    volumebar.h
    playlistbrowser.h
    playlistselector.h
    popupwidget.h
    popupsettings.h
    actionmanager.h
    shortcutdialog.h
    skinnedfactory.h
    hotkeyeditor.h
)

SET(skinned_RCCS default/default.qrc resources/resources.qrc translations/translations.qrc)

QT4_ADD_RESOURCES(skinned_RCC_SRCS ${skinned_RCCS})

QT4_AUTOMOC(${skinned_MOC_SRC})
QT4_WRAP_CPP(skinned_MOC_SRCS ${skinned_MOC_HDRS})

# user interface

SET(skinned_UIS
    forms/addurldialog.ui
    forms/skinnedsettings.ui
    forms/preseteditor.ui
    forms/playlistbrowser.ui
    forms/popupsettings.ui
    forms/shortcutdialog.ui
    forms/hotkeyeditor.ui
)

QT4_WRAP_UI(skinned_UIS_H ${skinned_UIS})
# Don't forget to include output directory, otherwise
# the UI file won't be wrapped!
include_directories(${CMAKE_CURRENT_BINARY_DIR})

IF(X11_FOUND)
ADD_LIBRARY(skinned MODULE ${skinned_SRCS} ${skinned_MOC_SRCS} ${skinned_UIS_H} ${skinned_RCC_SRCS} ${skinned_HDRS})
target_link_libraries(skinned ${QT_LIBRARIES} libqmmp qmmpui ${X11_LDFLAGS})
add_dependencies(skinned qmmpui libqmmp)
target_link_libraries(skinned ${QT_LIBRARIES} -lqmmpui -lqmmp ${X11_LDFLAGS})
install(TARGETS skinned DESTINATION ${LIB_DIR}/qmmp/Ui)
ENDIF(X11_FOUND)