goldendict-ng/dictinfo.cc
Tvangeste 7599b8e33e Add "Edit dictionary" and "Open folder" buttons to the Dictionary Info dialog
Note: The "Edit dictionary" is optional an enabled only if the command line
for editor is specified in the config file (manually).
2013-06-11 17:42:24 +02:00

65 lines
1.9 KiB
C++

#include "dictinfo.hh"
#include "langcoder.hh"
#include "language.hh"
#include "fsencoding.hh"
#include <QString>
DictInfo::DictInfo( Config::Class &cfg_, QWidget *parent ) :
QDialog( parent),
cfg( cfg_)
{
ui.setupUi( this );
if( cfg.dictInfoGeometry.size() > 0 )
restoreGeometry( cfg.dictInfoGeometry );
connect( this, SIGNAL( finished( int ) ), this, SLOT( savePos( int ) ) );
}
void DictInfo::showInfo( sptr<Dictionary::Class> dict )
{
setWindowTitle( QString::fromUtf8( dict->getName().data(), dict->getName().size() ) );
ui.dictionaryTotalArticles->setText( QString::number( dict->getArticleCount() ) );
ui.dictionaryTotalWords->setText( QString::number( dict->getWordCount() ) );
ui.dictionaryTranslatesFrom->setText( Language::localizedStringForId( dict->getLangFrom() ) );
ui.dictionaryTranslatesTo->setText( Language::localizedStringForId( dict->getLangTo() ) );
ui.openFolder->setVisible( dict->isLocalDictionary() );
ui.editDictionary->setVisible( dict->isLocalDictionary() && !cfg.editDictionaryCommandLine.isEmpty());
ui.editDictionary->setToolTip(
tr( "Edit the dictionary via command:\n%1" ).arg( cfg.editDictionaryCommandLine ) );
std::vector< std::string > const & filenames = dict->getDictionaryFilenames();
QString filenamesText;
for( unsigned x = 0; x < filenames.size(); x++ )
{
filenamesText += FsEncoding::decode( filenames[ x ].c_str() );
filenamesText += '\n';
}
ui.dictionaryFileList->setPlainText( filenamesText );
QString info = dict->getDescription();
if( !info.isEmpty() && info.compare( "NONE" ) != 0 )
ui.infoLabel->setPlainText( info );
else
ui.infoLabel->clear();
}
void DictInfo::savePos( int )
{
cfg.dictInfoGeometry = saveGeometry();
}
void DictInfo::on_editDictionary_clicked()
{
done( EDIT_DICTIONARY );
}
void DictInfo::on_openFolder_clicked()
{
done( OPEN_FOLDER );
}