mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-04 14:39:09 +02:00
2021-02-09 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'Log Clocks' dialog in rdlogmanager(1) to use the model based API. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
4b516d398c
commit
5a67731cbd
@ -21080,3 +21080,9 @@
|
|||||||
2021-02-09 Fred Gleason <fredg@paravelsystems.com>
|
2021-02-09 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Refactored the 'Log Events' dialog in rdlogmanager(1) to use
|
* Refactored the 'Log Events' dialog in rdlogmanager(1) to use
|
||||||
the model based API.
|
the model based API.
|
||||||
|
2021-02-09 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Refactored the 'Log Events' dialog in rdlogmanager(1) to use
|
||||||
|
the model based API.
|
||||||
|
2021-02-09 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Refactored the 'Log Clocks' dialog in rdlogmanager(1) to use
|
||||||
|
the model based API.
|
||||||
|
@ -43,6 +43,7 @@ bin_PROGRAMS = rdlogmanager
|
|||||||
dist_rdlogmanager_SOURCES = add_clock.cpp add_clock.h\
|
dist_rdlogmanager_SOURCES = add_clock.cpp add_clock.h\
|
||||||
add_event.cpp add_event.h\
|
add_event.cpp add_event.h\
|
||||||
clock_listview.cpp clock_listview.h\
|
clock_listview.cpp clock_listview.h\
|
||||||
|
clocklistmodel.cpp clocklistmodel.h\
|
||||||
commandline_ops.cpp globals.h\
|
commandline_ops.cpp globals.h\
|
||||||
edit_clock.cpp edit_clock.h\
|
edit_clock.cpp edit_clock.h\
|
||||||
edit_event.cpp edit_event.h\
|
edit_event.cpp edit_event.h\
|
||||||
@ -73,6 +74,7 @@ dist_rdlogmanager_SOURCES = add_clock.cpp add_clock.h\
|
|||||||
nodist_rdlogmanager_SOURCES = moc_add_clock.cpp\
|
nodist_rdlogmanager_SOURCES = moc_add_clock.cpp\
|
||||||
moc_add_event.cpp\
|
moc_add_event.cpp\
|
||||||
moc_clock_listview.cpp\
|
moc_clock_listview.cpp\
|
||||||
|
moc_clocklistmodel.cpp\
|
||||||
moc_edit_clock.cpp\
|
moc_edit_clock.cpp\
|
||||||
moc_edit_event.cpp\
|
moc_edit_event.cpp\
|
||||||
moc_edit_eventline.cpp\
|
moc_edit_eventline.cpp\
|
||||||
|
317
rdlogmanager/clocklistmodel.cpp
Normal file
317
rdlogmanager/clocklistmodel.cpp
Normal file
@ -0,0 +1,317 @@
|
|||||||
|
// clocklistmodel.cpp
|
||||||
|
//
|
||||||
|
// Data model for Rivendell rdlogmanager(1) clocks
|
||||||
|
//
|
||||||
|
// (C) Copyright 2021 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License version 2 as
|
||||||
|
// published by the Free Software Foundation.
|
||||||
|
//
|
||||||
|
// 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <QPainter>
|
||||||
|
|
||||||
|
#include "rdapplication.h"
|
||||||
|
#include "rdconf.h"
|
||||||
|
#include "rdescape_string.h"
|
||||||
|
#include "rdevent_line.h"
|
||||||
|
#include "clocklistmodel.h"
|
||||||
|
|
||||||
|
ClockListModel::ClockListModel(QObject *parent)
|
||||||
|
: QAbstractTableModel(parent)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Column Attributes
|
||||||
|
//
|
||||||
|
unsigned left=Qt::AlignLeft|Qt::AlignVCenter;
|
||||||
|
unsigned center=Qt::AlignCenter;
|
||||||
|
//unsigned right=Qt::AlignRight|Qt::AlignVCenter;
|
||||||
|
|
||||||
|
d_headers.push_back(tr("Name"));
|
||||||
|
d_alignments.push_back(left);
|
||||||
|
|
||||||
|
d_headers.push_back(tr("Code"));
|
||||||
|
d_alignments.push_back(center);
|
||||||
|
|
||||||
|
updateModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ClockListModel::~ClockListModel()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QPalette ClockListModel::palette()
|
||||||
|
{
|
||||||
|
return d_palette;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::setPalette(const QPalette &pal)
|
||||||
|
{
|
||||||
|
d_palette=pal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::setFont(const QFont &font)
|
||||||
|
{
|
||||||
|
d_font=font;
|
||||||
|
d_bold_font=font;
|
||||||
|
d_bold_font.setWeight(QFont::Bold);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int ClockListModel::columnCount(const QModelIndex &parent) const
|
||||||
|
{
|
||||||
|
return d_headers.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int ClockListModel::rowCount(const QModelIndex &parent) const
|
||||||
|
{
|
||||||
|
return d_texts.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QVariant ClockListModel::headerData(int section,Qt::Orientation orient,
|
||||||
|
int role) const
|
||||||
|
{
|
||||||
|
if((orient==Qt::Horizontal)&&(role==Qt::DisplayRole)) {
|
||||||
|
return d_headers.at(section);
|
||||||
|
}
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QVariant ClockListModel::data(const QModelIndex &index,int role) const
|
||||||
|
{
|
||||||
|
QString str;
|
||||||
|
int col=index.column();
|
||||||
|
int row=index.row();
|
||||||
|
|
||||||
|
if(row<d_texts.size()) {
|
||||||
|
switch((Qt::ItemDataRole)role) {
|
||||||
|
case Qt::DisplayRole:
|
||||||
|
return d_texts.at(row).at(col);
|
||||||
|
|
||||||
|
case Qt::DecorationRole:
|
||||||
|
if(col==0) {
|
||||||
|
return d_icons.at(row);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Qt::TextAlignmentRole:
|
||||||
|
return d_alignments.at(col);
|
||||||
|
|
||||||
|
case Qt::FontRole:
|
||||||
|
if(col==0) {
|
||||||
|
return d_bold_font;
|
||||||
|
}
|
||||||
|
return d_font;
|
||||||
|
|
||||||
|
case Qt::TextColorRole:
|
||||||
|
// Nothing to do!
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Qt::BackgroundRole:
|
||||||
|
// Nothing to do!
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString ClockListModel::clockName(const QModelIndex &row) const
|
||||||
|
{
|
||||||
|
return d_texts.at(row.row()).at(0).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QModelIndex ClockListModel::addClock(const QString &name)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Find the insertion offset
|
||||||
|
//
|
||||||
|
int offset=d_texts.size();
|
||||||
|
for(int i=0;i<d_texts.size();i++) {
|
||||||
|
if(name.toLower()<d_texts.at(i).at(0).toString().toLower()) {
|
||||||
|
offset=i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
beginInsertRows(QModelIndex(),offset,offset);
|
||||||
|
QList<QVariant> list;
|
||||||
|
for(int i=0;i<columnCount();i++) {
|
||||||
|
list.push_back(QVariant());
|
||||||
|
}
|
||||||
|
list[0]=name;
|
||||||
|
d_texts.insert(offset,list);
|
||||||
|
d_icons.insert(offset,QVariant());
|
||||||
|
updateRowLine(offset);
|
||||||
|
endInsertRows();
|
||||||
|
|
||||||
|
return createIndex(offset,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QModelIndex ClockListModel::clockIndex(const QString &name)
|
||||||
|
{
|
||||||
|
for(int i=0;i<d_texts.size();i++) {
|
||||||
|
if(d_texts.at(i).at(0).toString()==name) {
|
||||||
|
return createIndex(i,0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return QModelIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::removeClock(const QModelIndex &row)
|
||||||
|
{
|
||||||
|
beginRemoveRows(QModelIndex(),row.row(),row.row());
|
||||||
|
|
||||||
|
d_texts.removeAt(row.row());
|
||||||
|
d_icons.removeAt(row.row());
|
||||||
|
|
||||||
|
endRemoveRows();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::removeClock(const QString &name)
|
||||||
|
{
|
||||||
|
for(int i=0;i<d_texts.size();i++) {
|
||||||
|
if(d_texts.at(i).at(0).toString()==name) {
|
||||||
|
removeClock(createIndex(i,0));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::refresh(const QModelIndex &row)
|
||||||
|
{
|
||||||
|
if(row.row()<d_texts.size()) {
|
||||||
|
QString sql=sqlFields()+
|
||||||
|
"where "+
|
||||||
|
"CLOCKS.NAME=\""+RDEscapeString(d_texts.at(row.row()).at(0).toString())+
|
||||||
|
"\"";
|
||||||
|
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
updateRow(row.row(),q);
|
||||||
|
emit dataChanged(createIndex(row.row(),0),
|
||||||
|
createIndex(row.row(),columnCount()));
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::refresh(const QString &name)
|
||||||
|
{
|
||||||
|
for(int i=0;i<d_texts.size();i++) {
|
||||||
|
if(d_texts.at(i).at(0).toString()==name) {
|
||||||
|
updateRowLine(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::setFilterSql(const QString &sql)
|
||||||
|
{
|
||||||
|
if(sql!=d_filter_sql) {
|
||||||
|
d_filter_sql=sql;
|
||||||
|
updateModel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::updateModel()
|
||||||
|
{
|
||||||
|
QList<QVariant> texts;
|
||||||
|
|
||||||
|
RDSqlQuery *q=NULL;
|
||||||
|
QString sql=sqlFields()+
|
||||||
|
d_filter_sql+
|
||||||
|
"order by CLOCKS.NAME ";
|
||||||
|
beginResetModel();
|
||||||
|
d_texts.clear();
|
||||||
|
d_icons.clear();
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
d_texts.push_back(texts);
|
||||||
|
d_icons.push_back(QVariant());
|
||||||
|
updateRow(d_texts.size()-1,q);
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
endResetModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::updateRowLine(int line)
|
||||||
|
{
|
||||||
|
if(line<d_texts.size()) {
|
||||||
|
QString sql=sqlFields()+
|
||||||
|
"where "+
|
||||||
|
"CLOCKS.NAME=\""+RDEscapeString(d_texts.at(line).at(0).toString())+"\"";
|
||||||
|
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
updateRow(line,q);
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ClockListModel::updateRow(int row,RDSqlQuery *q)
|
||||||
|
{
|
||||||
|
QList<QVariant> texts;
|
||||||
|
|
||||||
|
// Name
|
||||||
|
texts.push_back(q->value(0));
|
||||||
|
|
||||||
|
// Code
|
||||||
|
texts.push_back(q->value(1));
|
||||||
|
|
||||||
|
d_texts[row]=texts;
|
||||||
|
d_icons[row]=MakeIcon(q->value(2).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString ClockListModel::sqlFields() const
|
||||||
|
{
|
||||||
|
QString sql=QString("select ")+
|
||||||
|
"NAME,"+ // 00
|
||||||
|
"SHORT_NAME,"+ // 01
|
||||||
|
"COLOR "+ // 02
|
||||||
|
"from CLOCKS ";
|
||||||
|
|
||||||
|
return sql;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QPixmap ClockListModel::MakeIcon(const QString &color) const
|
||||||
|
{
|
||||||
|
QPixmap pix(QSize(15,15));
|
||||||
|
QPainter *p=new QPainter();
|
||||||
|
p->begin(&pix);
|
||||||
|
p->fillRect(0,0,15,15,QColor(color));
|
||||||
|
p->end();
|
||||||
|
delete p;
|
||||||
|
|
||||||
|
return pix;
|
||||||
|
}
|
76
rdlogmanager/clocklistmodel.h
Normal file
76
rdlogmanager/clocklistmodel.h
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
// clocklistmodel.h
|
||||||
|
//
|
||||||
|
// Data model for Rivendell rdlogmanager(1) events
|
||||||
|
//
|
||||||
|
// (C) Copyright 2021 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License version 2 as
|
||||||
|
// published by the Free Software Foundation.
|
||||||
|
//
|
||||||
|
// 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef CLOCKLISTMODEL_H
|
||||||
|
#define CLOCKLISTMODEL_H
|
||||||
|
|
||||||
|
#include <QAbstractTableModel>
|
||||||
|
#include <QFont>
|
||||||
|
#include <QList>
|
||||||
|
#include <QPalette>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
|
#include <rddb.h>
|
||||||
|
#include <rdnotification.h>
|
||||||
|
#include <rduser.h>
|
||||||
|
|
||||||
|
class ClockListModel : public QAbstractTableModel
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ClockListModel(QObject *parent=0);
|
||||||
|
~ClockListModel();
|
||||||
|
QPalette palette();
|
||||||
|
void setPalette(const QPalette &pal);
|
||||||
|
void setFont(const QFont &font);
|
||||||
|
int columnCount(const QModelIndex &parent=QModelIndex()) const;
|
||||||
|
int rowCount(const QModelIndex &parent=QModelIndex()) const;
|
||||||
|
QVariant headerData(int section,Qt::Orientation orient,
|
||||||
|
int role=Qt::DisplayRole) const;
|
||||||
|
QVariant data(const QModelIndex &index,int role=Qt::DisplayRole) const;
|
||||||
|
QString clockName(const QModelIndex &row) const;
|
||||||
|
QModelIndex addClock(const QString &name);
|
||||||
|
QModelIndex clockIndex(const QString &name);
|
||||||
|
void removeClock(const QModelIndex &row);
|
||||||
|
void removeClock(const QString &name);
|
||||||
|
void refresh(const QModelIndex &row);
|
||||||
|
void refresh(const QString &name);
|
||||||
|
void setFilterSql(const QString &sql);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void updateModel();
|
||||||
|
void updateRowLine(int line);
|
||||||
|
void updateRow(int row,RDSqlQuery *q);
|
||||||
|
QString sqlFields() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QPixmap MakeIcon(const QString &color) const;
|
||||||
|
QPalette d_palette;
|
||||||
|
QFont d_font;
|
||||||
|
QFont d_bold_font;
|
||||||
|
QList<QVariant> d_headers;
|
||||||
|
QList<QVariant> d_alignments;
|
||||||
|
QList<QList<QVariant> > d_texts;
|
||||||
|
QList<QVariant> d_icons;
|
||||||
|
QString d_filter_sql;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif // CLOCKLISTMODEL_H
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// Edit Rivendell Log Clock
|
// Edit Rivendell Log Clock
|
||||||
//
|
//
|
||||||
// (C) Copyright 2002-2020 Fred Gleason <fredg@paravelsystems.com>
|
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify
|
// This program is free software; you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License version 2 as
|
// it under the terms of the GNU General Public License version 2 as
|
||||||
@ -173,6 +173,7 @@ EditClock::EditClock(QString clockname,bool new_clock,
|
|||||||
button->setFont(buttonFont());
|
button->setFont(buttonFont());
|
||||||
button->setText(tr("Save &As"));
|
button->setText(tr("Save &As"));
|
||||||
connect(button,SIGNAL(clicked()),this,SLOT(saveAsData()));
|
connect(button,SIGNAL(clicked()),this,SLOT(saveAsData()));
|
||||||
|
button->setDisabled(new_clock);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Service Associations Button
|
// Service Associations Button
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// List Rivendell Log Clocks
|
// List Rivendell Log Clocks
|
||||||
//
|
//
|
||||||
// (C) Copyright 2002-2020 Fred Gleason <fredg@paravelsystems.com>
|
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify
|
// This program is free software; you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License version 2 as
|
// it under the terms of the GNU General Public License version 2 as
|
||||||
@ -18,8 +18,7 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <qmessagebox.h>
|
#include <QMessageBox>
|
||||||
#include <qpainter.h>
|
|
||||||
|
|
||||||
#include <rdescape_string.h>
|
#include <rdescape_string.h>
|
||||||
|
|
||||||
@ -55,16 +54,16 @@ ListClocks::ListClocks(QString *clockname,QWidget *parent)
|
|||||||
//
|
//
|
||||||
// Clocks List
|
// Clocks List
|
||||||
//
|
//
|
||||||
edit_clocks_list=new Q3ListView(this);
|
edit_clocks_view=new RDTableView(this);
|
||||||
edit_clocks_list->setAllColumnsShowFocus(true);
|
edit_clocks_model=new ClockListModel(this);
|
||||||
edit_clocks_list->setItemMargin(5);
|
edit_clocks_model->setFont(font());
|
||||||
edit_clocks_list->addColumn(tr("Name"));
|
edit_clocks_model->setPalette(palette());
|
||||||
edit_clocks_list->addColumn(tr("Code"));
|
edit_clocks_view->setModel(edit_clocks_model);
|
||||||
edit_clocks_list->addColumn(tr("Color"));
|
connect(edit_clocks_view,SIGNAL(doubleClicked(const QModelIndex &)),
|
||||||
edit_clocks_list->setColumnAlignment(2,Qt::AlignCenter);
|
this,SLOT(doubleClickedData(const QModelIndex &)));
|
||||||
connect(edit_clocks_list,
|
connect(edit_clocks_model,SIGNAL(modelReset()),
|
||||||
SIGNAL(doubleClicked(Q3ListViewItem *,const QPoint &,int)),
|
edit_clocks_view,SLOT(resizeColumnsToContents()));
|
||||||
this,SLOT(doubleClickedData(Q3ListViewItem *,const QPoint &,int)));
|
edit_clocks_view->resizeColumnsToContents();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Add Button
|
// Add Button
|
||||||
@ -166,15 +165,10 @@ ListClocks::ListClocks(QString *clockname,QWidget *parent)
|
|||||||
edit_filter_box->setCurrentItem(edit_filter_box->count()-1);
|
edit_filter_box->setCurrentItem(edit_filter_box->count()-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RefreshList();
|
|
||||||
|
|
||||||
if(edit_clockname!=NULL) {
|
if(edit_clockname!=NULL) {
|
||||||
Q3ListViewItem *item=edit_clocks_list->firstChild();
|
QModelIndex row=edit_clocks_model->clockIndex(*edit_clockname);
|
||||||
while(item!=NULL) {
|
if(row.isValid()) {
|
||||||
if(item->text(0)==*edit_clockname) {
|
edit_clocks_view->selectRow(row.row());
|
||||||
edit_clocks_list->setSelected(item,true);
|
|
||||||
}
|
|
||||||
item=item->nextSibling();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -258,10 +252,10 @@ void ListClocks::addData()
|
|||||||
"SERVICE_NAME=\""+RDEscapeString(edit_filter_box->currentText())+"\"";
|
"SERVICE_NAME=\""+RDEscapeString(edit_filter_box->currentText())+"\"";
|
||||||
RDSqlQuery::apply(sql);
|
RDSqlQuery::apply(sql);
|
||||||
}
|
}
|
||||||
Q3ListViewItem *item=new Q3ListViewItem(edit_clocks_list);
|
QModelIndex row=edit_clocks_model->addClock(clockname);
|
||||||
item->setText(0,clockname);
|
if(row.isValid()) {
|
||||||
RefreshItem(item,&new_clocks);
|
edit_clocks_view->selectRow(row.row());
|
||||||
edit_clocks_list->setSelected(item,true);
|
}
|
||||||
}
|
}
|
||||||
delete clock_dialog;
|
delete clock_dialog;
|
||||||
}
|
}
|
||||||
@ -270,17 +264,23 @@ void ListClocks::addData()
|
|||||||
void ListClocks::editData()
|
void ListClocks::editData()
|
||||||
{
|
{
|
||||||
std::vector<QString> new_clocks;
|
std::vector<QString> new_clocks;
|
||||||
Q3ListViewItem *item=edit_clocks_list->selectedItem();
|
QModelIndexList rows=edit_clocks_view->selectionModel()->selectedRows();
|
||||||
if(item==NULL) {
|
|
||||||
|
if(rows.size()!=1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
EditClock *clock_dialog=new EditClock(item->text(0),false,&new_clocks,this);
|
EditClock *clock_dialog=
|
||||||
|
new EditClock(edit_clocks_model->clockName(rows.first()),false,
|
||||||
|
&new_clocks,this);
|
||||||
if(clock_dialog->exec()<0) {
|
if(clock_dialog->exec()<0) {
|
||||||
delete clock_dialog;
|
delete clock_dialog;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
delete clock_dialog;
|
delete clock_dialog;
|
||||||
RefreshItem(item,&new_clocks);
|
edit_clocks_model->refresh(rows.first());
|
||||||
|
for(unsigned i=0;i<new_clocks.size();i++) {
|
||||||
|
edit_clocks_model->addClock(new_clocks.at(i));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -288,20 +288,21 @@ void ListClocks::deleteData()
|
|||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
QString svc_list;
|
QString svc_list;
|
||||||
Q3ListViewItem *item=edit_clocks_list->selectedItem();
|
QModelIndexList rows=edit_clocks_view->selectionModel()->selectedRows();
|
||||||
if(item==NULL) {
|
|
||||||
|
if(rows.size()!=1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(QMessageBox::question(this,"RDLogManager - "+tr("Delete Clock"),
|
if(QMessageBox::question(this,"RDLogManager - "+tr("Delete Clock"),
|
||||||
tr("Are you sure you want to delete")+" \""+
|
tr("Are you sure you want to delete")+" \""+
|
||||||
item->text(0)+"\"?",
|
edit_clocks_model->clockName(rows.first())+"\"?",
|
||||||
QMessageBox::Yes,QMessageBox::No)
|
QMessageBox::Yes,QMessageBox::No)
|
||||||
!=QMessageBox::Yes) {
|
!=QMessageBox::Yes) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if((n=ActiveClocks(item->text(0),&svc_list))>0) {
|
if((n=ActiveClocks(edit_clocks_model->clockName(rows.first()),&svc_list))>0) {
|
||||||
if(QMessageBox::warning(this,"RDLogManager - "+tr("Clock In Use"),
|
if(QMessageBox::warning(this,"RDLogManager - "+tr("Clock In Use"),
|
||||||
"\""+item->text(0)+"\" "+
|
"\""+edit_clocks_model->clockName(rows.first())+"\" "+
|
||||||
tr("is in use in the following grid(s)")+":\n\n"+
|
tr("is in use in the following grid(s)")+":\n\n"+
|
||||||
svc_list+"\n"+
|
svc_list+"\n"+
|
||||||
tr("Do you still want to delete it?"),
|
tr("Do you still want to delete it?"),
|
||||||
@ -310,8 +311,8 @@ void ListClocks::deleteData()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DeleteClock(item->text(0));
|
DeleteClock(edit_clocks_model->clockName(rows.first()));
|
||||||
RefreshList();
|
edit_clocks_model->removeClock(rows.first());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -319,12 +320,13 @@ void ListClocks::renameData()
|
|||||||
{
|
{
|
||||||
QString sql;
|
QString sql;
|
||||||
RDSqlQuery *q;
|
RDSqlQuery *q;
|
||||||
RDSqlQuery *q1;
|
QModelIndexList rows=edit_clocks_view->selectionModel()->selectedRows();
|
||||||
Q3ListViewItem *item=edit_clocks_list->selectedItem();
|
|
||||||
if(item==NULL) {
|
if(rows.size()!=1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QString new_name=item->text(0);
|
QString old_name=edit_clocks_model->clockName(rows.first());
|
||||||
|
QString new_name=old_name;
|
||||||
RenameItem *rename_dialog=new RenameItem(&new_name,"CLOCKS",this);
|
RenameItem *rename_dialog=new RenameItem(&new_name,"CLOCKS",this);
|
||||||
if(rename_dialog->exec()<-1) {
|
if(rename_dialog->exec()<-1) {
|
||||||
delete rename_dialog;
|
delete rename_dialog;
|
||||||
@ -343,9 +345,8 @@ void ListClocks::renameData()
|
|||||||
for(int i=0;i<168;i++) {
|
for(int i=0;i<168;i++) {
|
||||||
sql=QString("update SERVICE_CLOCKS set ")+
|
sql=QString("update SERVICE_CLOCKS set ")+
|
||||||
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
||||||
"CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\"";
|
"CLOCK_NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\"";
|
||||||
q1=new RDSqlQuery(sql);
|
RDSqlQuery::apply(sql);
|
||||||
delete q1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete q;
|
delete q;
|
||||||
@ -355,13 +356,12 @@ void ListClocks::renameData()
|
|||||||
//
|
//
|
||||||
sql=QString("update CLOCK_LINES set ")+
|
sql=QString("update CLOCK_LINES set ")+
|
||||||
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
||||||
"CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\"";
|
"CLOCK_NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
RDSqlQuery::apply(sql);
|
||||||
delete q;
|
|
||||||
|
|
||||||
sql=QString("update RULE_LINES set ")+
|
sql=QString("update RULE_LINES set ")+
|
||||||
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
||||||
"CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\"";
|
"CLOCK_NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\"";
|
||||||
RDSqlQuery::apply(sql);
|
RDSqlQuery::apply(sql);
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -369,31 +369,42 @@ void ListClocks::renameData()
|
|||||||
//
|
//
|
||||||
sql=QString("update CLOCK_PERMS set ")+
|
sql=QString("update CLOCK_PERMS set ")+
|
||||||
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
||||||
"CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\"";
|
"CLOCK_NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
RDSqlQuery::apply(sql);
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rename Primary Key
|
// Rename Primary Key
|
||||||
//
|
//
|
||||||
sql=QString("update CLOCKS set ")+
|
sql=QString("update CLOCKS set ")+
|
||||||
"NAME=\""+RDEscapeString(new_name)+"\" where "+
|
"NAME=\""+RDEscapeString(new_name)+"\" where "+
|
||||||
"NAME=\""+RDEscapeString(item->text(0))+"\"";
|
"NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
RDSqlQuery::apply(sql);
|
||||||
delete q;
|
|
||||||
|
|
||||||
item->setText(0,new_name);
|
edit_clocks_model->removeClock(old_name);
|
||||||
RefreshItem(item);
|
QModelIndex row=edit_clocks_model->addClock(new_name);
|
||||||
|
if(row.isValid()) {
|
||||||
|
edit_clocks_view->selectRow(row.row());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ListClocks::filterActivatedData(int id)
|
void ListClocks::filterActivatedData(int id)
|
||||||
{
|
{
|
||||||
RefreshList();
|
QString filter;
|
||||||
|
|
||||||
|
if(id==1) {
|
||||||
|
filter=GetNoneFilter();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(id>1) {
|
||||||
|
filter=GetClockFilter(edit_filter_box->currentText());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
edit_clocks_model->setFilterSql(filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ListClocks::doubleClickedData(Q3ListViewItem *item,const QPoint &,int)
|
void ListClocks::doubleClickedData(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
if(edit_clockname==NULL) {
|
if(edit_clockname==NULL) {
|
||||||
editData();
|
editData();
|
||||||
@ -413,22 +424,19 @@ void ListClocks::closeData()
|
|||||||
|
|
||||||
void ListClocks::clearData()
|
void ListClocks::clearData()
|
||||||
{
|
{
|
||||||
Q3ListViewItem *item=edit_clocks_list->selectedItem();
|
edit_clocks_view->clearSelection();
|
||||||
if(item!=NULL) {
|
|
||||||
edit_clocks_list->setSelected(item,false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ListClocks::okData()
|
void ListClocks::okData()
|
||||||
{
|
{
|
||||||
Q3ListViewItem *item=edit_clocks_list->selectedItem();
|
|
||||||
*clock_filter=edit_filter_box->currentText();
|
*clock_filter=edit_filter_box->currentText();
|
||||||
if(item==NULL) {
|
QModelIndexList rows=edit_clocks_view->selectionModel()->selectedRows();
|
||||||
*edit_clockname="";
|
if(rows.size()==1) {
|
||||||
|
*edit_clockname=edit_clocks_model->clockName(rows.first());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
*edit_clockname=item->text(0);
|
*edit_clockname="";
|
||||||
}
|
}
|
||||||
done(0);
|
done(0);
|
||||||
}
|
}
|
||||||
@ -444,7 +452,7 @@ void ListClocks::resizeEvent(QResizeEvent *e)
|
|||||||
{
|
{
|
||||||
edit_filter_box->setGeometry(65,10,size().width()-75,20);
|
edit_filter_box->setGeometry(65,10,size().width()-75,20);
|
||||||
edit_filter_label->setGeometry(10,10,50,20);
|
edit_filter_label->setGeometry(10,10,50,20);
|
||||||
edit_clocks_list->setGeometry(10,45,
|
edit_clocks_view->setGeometry(10,45,
|
||||||
size().width()-20,size().height()-115);
|
size().width()-20,size().height()-115);
|
||||||
edit_add_button->setGeometry(10,size().height()-60,80,50);
|
edit_add_button->setGeometry(10,size().height()-60,80,50);
|
||||||
edit_edit_button->setGeometry(100,size().height()-60,80,50);
|
edit_edit_button->setGeometry(100,size().height()-60,80,50);
|
||||||
@ -466,86 +474,6 @@ void ListClocks::closeEvent(QCloseEvent *e)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ListClocks::RefreshList()
|
|
||||||
{
|
|
||||||
QString filter;
|
|
||||||
|
|
||||||
if(edit_filter_box->currentItem()==1) {
|
|
||||||
filter=GetNoneFilter();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(edit_filter_box->currentItem()>1) {
|
|
||||||
filter=GetClockFilter(edit_filter_box->currentText());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
edit_clocks_list->clear();
|
|
||||||
QString sql=QString("select ")+
|
|
||||||
"NAME,"+ // 00
|
|
||||||
"SHORT_NAME,"+ // 01
|
|
||||||
"COLOR "+ // 02
|
|
||||||
"from CLOCKS "+filter;
|
|
||||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
|
||||||
Q3ListViewItem *item=NULL;
|
|
||||||
while(q->next()) {
|
|
||||||
item=new Q3ListViewItem(edit_clocks_list);
|
|
||||||
WriteItem(item,q);
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ListClocks::RefreshItem(Q3ListViewItem *item,
|
|
||||||
std::vector<QString> *new_clocks)
|
|
||||||
{
|
|
||||||
Q3ListViewItem *new_item;
|
|
||||||
UpdateItem(item,item->text(0));
|
|
||||||
|
|
||||||
if(new_clocks!=NULL) {
|
|
||||||
for(unsigned i=0;i<new_clocks->size();i++) {
|
|
||||||
if((new_item=edit_clocks_list->findItem(new_clocks->at(i),0))==NULL) {
|
|
||||||
new_item=new Q3ListViewItem(edit_clocks_list);
|
|
||||||
}
|
|
||||||
UpdateItem(new_item,new_clocks->at(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ListClocks::UpdateItem(Q3ListViewItem *item,QString name)
|
|
||||||
{
|
|
||||||
QString sql=QString("select ")+
|
|
||||||
"NAME,"+ // 00
|
|
||||||
"SHORT_NAME,"+ // 01
|
|
||||||
"COLOR "+ // 02
|
|
||||||
"from CLOCKS where "+
|
|
||||||
"NAME=\""+RDEscapeString(name)+"\"";
|
|
||||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
|
||||||
if(q->next()) {
|
|
||||||
item->setText(0,name);
|
|
||||||
WriteItem(item,q);
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ListClocks::WriteItem(Q3ListViewItem *item,RDSqlQuery *q)
|
|
||||||
{
|
|
||||||
QPixmap *pix;
|
|
||||||
QPainter *p=new QPainter();
|
|
||||||
|
|
||||||
item->setText(0,q->value(0).toString());
|
|
||||||
item->setText(1,q->value(1).toString());
|
|
||||||
pix=new QPixmap(QSize(15,15));
|
|
||||||
p->begin(pix);
|
|
||||||
p->fillRect(0,0,15,15,QColor(q->value(2).toString()));
|
|
||||||
p->end();
|
|
||||||
item->setPixmap(2,*pix);
|
|
||||||
|
|
||||||
delete p;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int ListClocks::ActiveClocks(QString clockname,QString *svc_list)
|
int ListClocks::ActiveClocks(QString clockname,QString *svc_list)
|
||||||
{
|
{
|
||||||
int n=0;
|
int n=0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// List Rivendell Log Clocks
|
// List Rivendell Log Clocks
|
||||||
//
|
//
|
||||||
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
|
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify
|
// This program is free software; you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License version 2 as
|
// it under the terms of the GNU General Public License version 2 as
|
||||||
@ -21,13 +21,13 @@
|
|||||||
#ifndef LIST_CLOCKS_H
|
#ifndef LIST_CLOCKS_H
|
||||||
#define LIST_CLOCKS_H
|
#define LIST_CLOCKS_H
|
||||||
|
|
||||||
#include <q3listview.h>
|
#include <QComboBox>
|
||||||
|
|
||||||
#include <qcombobox.h>
|
|
||||||
#include <qlabel.h>
|
|
||||||
|
|
||||||
#include <rddialog.h>
|
#include <rddialog.h>
|
||||||
#include <rddb.h>
|
#include <rddb.h>
|
||||||
|
#include <rdtableview.h>
|
||||||
|
|
||||||
|
#include "clocklistmodel.h"
|
||||||
|
|
||||||
class ListClocks : public RDDialog
|
class ListClocks : public RDDialog
|
||||||
{
|
{
|
||||||
@ -42,7 +42,7 @@ class ListClocks : public RDDialog
|
|||||||
void editData();
|
void editData();
|
||||||
void deleteData();
|
void deleteData();
|
||||||
void renameData();
|
void renameData();
|
||||||
void doubleClickedData(Q3ListViewItem *,const QPoint &,int);
|
void doubleClickedData(const QModelIndex &index);
|
||||||
void filterActivatedData(int id);
|
void filterActivatedData(int id);
|
||||||
void closeData();
|
void closeData();
|
||||||
void clearData();
|
void clearData();
|
||||||
@ -54,15 +54,12 @@ class ListClocks : public RDDialog
|
|||||||
void closeEvent(QCloseEvent *e);
|
void closeEvent(QCloseEvent *e);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void RefreshList();
|
|
||||||
void RefreshItem(Q3ListViewItem *item,std::vector<QString> *new_clocks=NULL);
|
|
||||||
void UpdateItem(Q3ListViewItem *item,QString name);
|
|
||||||
void WriteItem(Q3ListViewItem *item,RDSqlQuery *q);
|
|
||||||
int ActiveClocks(QString clockname,QString *svc_list);
|
int ActiveClocks(QString clockname,QString *svc_list);
|
||||||
void DeleteClock(QString clockname);
|
void DeleteClock(QString clockname);
|
||||||
QString GetClockFilter(QString svc_name);
|
QString GetClockFilter(QString svc_name);
|
||||||
QString GetNoneFilter();
|
QString GetNoneFilter();
|
||||||
Q3ListView *edit_clocks_list;
|
RDTableView *edit_clocks_view;
|
||||||
|
ClockListModel *edit_clocks_model;
|
||||||
QString *edit_clockname;
|
QString *edit_clockname;
|
||||||
QLabel *edit_filter_label;
|
QLabel *edit_filter_label;
|
||||||
QComboBox *edit_filter_box;
|
QComboBox *edit_filter_box;
|
||||||
|
@ -1206,15 +1206,15 @@ Opětovné sloučení tato data smaže. Sloučit znovu?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Název</translation>
|
<translation type="obsolete">Název</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Code</source>
|
<source>Code</source>
|
||||||
<translation>Kód</translation>
|
<translation type="obsolete">Kód</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Color</source>
|
<source>Color</source>
|
||||||
<translation>Barva</translation>
|
<translation type="obsolete">Barva</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Add</source>
|
<source>&Add</source>
|
||||||
@ -1258,11 +1258,11 @@ Opětovné sloučení tato data smaže. Sloučit znovu?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock Exists</source>
|
<source>Clock Exists</source>
|
||||||
<translation>Hodiny existují</translation>
|
<translation type="unfinished">Hodiny existují</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>An clock with that name already exists!</source>
|
<source>An clock with that name already exists!</source>
|
||||||
<translation>Hodiny s tímto názvem již existují!</translation>
|
<translation type="unfinished">Hodiny s tímto názvem již existují!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to
|
<source>Are you sure you want to
|
||||||
@ -1271,7 +1271,7 @@ delete</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete Clock</source>
|
<source>Delete Clock</source>
|
||||||
<translation>Smazat hodiny</translation>
|
<translation type="unfinished">Smazat hodiny</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>is in use in the following grid(s):</source>
|
<source>is in use in the following grid(s):</source>
|
||||||
@ -1279,11 +1279,11 @@ delete</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do you still want to delete it?</source>
|
<source>Do you still want to delete it?</source>
|
||||||
<translation>Stále ještě chcete smazat?</translation>
|
<translation type="unfinished">Stále ještě chcete smazat?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock In Use</source>
|
<source>Clock In Use</source>
|
||||||
<translation>Používané hodiny</translation>
|
<translation type="unfinished">Používané hodiny</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Log Clocks - User: </source>
|
<source>Log Clocks - User: </source>
|
||||||
|
@ -1206,15 +1206,15 @@ Einbinden wird diese entfernen. Fortfahren?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Name</translation>
|
<translation type="obsolete">Name</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Code</source>
|
<source>Code</source>
|
||||||
<translation>Code</translation>
|
<translation type="obsolete">Code</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Color</source>
|
<source>Color</source>
|
||||||
<translation>Farbe</translation>
|
<translation type="obsolete">Farbe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Add</source>
|
<source>&Add</source>
|
||||||
@ -1258,11 +1258,11 @@ Einbinden wird diese entfernen. Fortfahren?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock Exists</source>
|
<source>Clock Exists</source>
|
||||||
<translation>Uhr existiert</translation>
|
<translation type="unfinished">Uhr existiert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>An clock with that name already exists!</source>
|
<source>An clock with that name already exists!</source>
|
||||||
<translation>Eine Uhr mit diesem Namen existiert bereits!</translation>
|
<translation type="unfinished">Eine Uhr mit diesem Namen existiert bereits!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to
|
<source>Are you sure you want to
|
||||||
@ -1271,7 +1271,7 @@ delete</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete Clock</source>
|
<source>Delete Clock</source>
|
||||||
<translation>Uhr löschen</translation>
|
<translation type="unfinished">Uhr löschen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>is in use in the following grid(s):</source>
|
<source>is in use in the following grid(s):</source>
|
||||||
@ -1279,11 +1279,11 @@ delete</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do you still want to delete it?</source>
|
<source>Do you still want to delete it?</source>
|
||||||
<translation>Wollen Sie immernoch löschen?</translation>
|
<translation type="unfinished">Wollen Sie immernoch löschen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock In Use</source>
|
<source>Clock In Use</source>
|
||||||
<translation>Uhr in Verwendung</translation>
|
<translation type="unfinished">Uhr in Verwendung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Log Clocks - User: </source>
|
<source>Log Clocks - User: </source>
|
||||||
|
@ -1208,15 +1208,15 @@ removerá estos datos. ¿Remezclar?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Nombre</translation>
|
<translation type="obsolete">Nombre</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Code</source>
|
<source>Code</source>
|
||||||
<translation>Código</translation>
|
<translation type="obsolete">Código</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Color</source>
|
<source>Color</source>
|
||||||
<translation>Color</translation>
|
<translation type="obsolete">Color</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Add</source>
|
<source>&Add</source>
|
||||||
@ -1252,11 +1252,11 @@ removerá estos datos. ¿Remezclar?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock Exists</source>
|
<source>Clock Exists</source>
|
||||||
<translation>Ya existe una torta</translation>
|
<translation type="unfinished">Ya existe una torta</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>An clock with that name already exists!</source>
|
<source>An clock with that name already exists!</source>
|
||||||
<translation>¡Una torta con ese nombre ya existe!</translation>
|
<translation type="unfinished">¡Una torta con ese nombre ya existe!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to
|
<source>Are you sure you want to
|
||||||
@ -1266,7 +1266,7 @@ eliminar</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete Clock</source>
|
<source>Delete Clock</source>
|
||||||
<translation>Eliminar torta</translation>
|
<translation type="unfinished">Eliminar torta</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>is in use in the following grid(s):</source>
|
<source>is in use in the following grid(s):</source>
|
||||||
@ -1274,11 +1274,11 @@ eliminar</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do you still want to delete it?</source>
|
<source>Do you still want to delete it?</source>
|
||||||
<translation>¿Desea eliminarla de cualquier forma?</translation>
|
<translation type="unfinished">¿Desea eliminarla de cualquier forma?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock In Use</source>
|
<source>Clock In Use</source>
|
||||||
<translation>Torta en uso</translation>
|
<translation type="unfinished">Torta en uso</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Rename</source>
|
<source>&Rename</source>
|
||||||
|
@ -913,18 +913,6 @@ Do you want to save?</source>
|
|||||||
<source>Filter:</source>
|
<source>Filter:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Name</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Code</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Color</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>&Add</source>
|
<source>&Add</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@ -965,6 +953,10 @@ Do you want to save?</source>
|
|||||||
<source>NONE</source>
|
<source>NONE</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Log Clocks</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock Exists</source>
|
<source>Clock Exists</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@ -978,25 +970,21 @@ Do you want to save?</source>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do you still want to delete it?</source>
|
<source>Are you sure you want to delete</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock In Use</source>
|
<source>Clock In Use</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Log Clocks</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Are you sure you want to delete</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>is in use in the following grid(s)</source>
|
<source>is in use in the following grid(s)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Do you still want to delete it?</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ListEvents</name>
|
<name>ListEvents</name>
|
||||||
|
@ -1215,15 +1215,15 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Namn</translation>
|
<translation type="obsolete">Namn</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Code</source>
|
<source>Code</source>
|
||||||
<translation>Kode</translation>
|
<translation type="obsolete">Kode</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Color</source>
|
<source>Color</source>
|
||||||
<translation>Farge</translation>
|
<translation type="obsolete">Farge</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Add</source>
|
<source>&Add</source>
|
||||||
@ -1267,11 +1267,11 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock Exists</source>
|
<source>Clock Exists</source>
|
||||||
<translation>Klokka eksisterer</translation>
|
<translation type="unfinished">Klokka eksisterer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>An clock with that name already exists!</source>
|
<source>An clock with that name already exists!</source>
|
||||||
<translation>Det finst alt ei klokke med dette namnet!</translation>
|
<translation type="unfinished">Det finst alt ei klokke med dette namnet!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to
|
<source>Are you sure you want to
|
||||||
@ -1281,7 +1281,7 @@ sletta</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete Clock</source>
|
<source>Delete Clock</source>
|
||||||
<translation>Slett klokka</translation>
|
<translation type="unfinished">Slett klokka</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>is in use in the following grid(s):</source>
|
<source>is in use in the following grid(s):</source>
|
||||||
@ -1289,11 +1289,11 @@ sletta</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do you still want to delete it?</source>
|
<source>Do you still want to delete it?</source>
|
||||||
<translation>Vil du framleis sletta?</translation>
|
<translation type="unfinished">Vil du framleis sletta?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock In Use</source>
|
<source>Clock In Use</source>
|
||||||
<translation>Klokka er i bruk</translation>
|
<translation type="unfinished">Klokka er i bruk</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to delete</source>
|
<source>Are you sure you want to delete</source>
|
||||||
|
@ -1215,15 +1215,15 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Namn</translation>
|
<translation type="obsolete">Namn</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Code</source>
|
<source>Code</source>
|
||||||
<translation>Kode</translation>
|
<translation type="obsolete">Kode</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Color</source>
|
<source>Color</source>
|
||||||
<translation>Farge</translation>
|
<translation type="obsolete">Farge</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Add</source>
|
<source>&Add</source>
|
||||||
@ -1267,11 +1267,11 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt?</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock Exists</source>
|
<source>Clock Exists</source>
|
||||||
<translation>Klokka eksisterer</translation>
|
<translation type="unfinished">Klokka eksisterer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>An clock with that name already exists!</source>
|
<source>An clock with that name already exists!</source>
|
||||||
<translation>Det finst alt ei klokke med dette namnet!</translation>
|
<translation type="unfinished">Det finst alt ei klokke med dette namnet!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to
|
<source>Are you sure you want to
|
||||||
@ -1281,7 +1281,7 @@ sletta</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete Clock</source>
|
<source>Delete Clock</source>
|
||||||
<translation>Slett klokka</translation>
|
<translation type="unfinished">Slett klokka</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>is in use in the following grid(s):</source>
|
<source>is in use in the following grid(s):</source>
|
||||||
@ -1289,11 +1289,11 @@ sletta</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do you still want to delete it?</source>
|
<source>Do you still want to delete it?</source>
|
||||||
<translation>Vil du framleis sletta?</translation>
|
<translation type="unfinished">Vil du framleis sletta?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock In Use</source>
|
<source>Clock In Use</source>
|
||||||
<translation>Klokka er i bruk</translation>
|
<translation type="unfinished">Klokka er i bruk</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to delete</source>
|
<source>Are you sure you want to delete</source>
|
||||||
|
@ -1212,15 +1212,15 @@ Re-agregar removerá estes dados. Re-agregar? </translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Nome:</translation>
|
<translation type="obsolete">Nome:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Code</source>
|
<source>Code</source>
|
||||||
<translation>Código</translation>
|
<translation type="obsolete">Código</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Color</source>
|
<source>Color</source>
|
||||||
<translation>Cor</translation>
|
<translation type="obsolete">Cor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Add</source>
|
<source>&Add</source>
|
||||||
@ -1264,11 +1264,11 @@ Re-agregar removerá estes dados. Re-agregar? </translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock Exists</source>
|
<source>Clock Exists</source>
|
||||||
<translation>Relógio Existente</translation>
|
<translation type="unfinished">Relógio Existente</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>An clock with that name already exists!</source>
|
<source>An clock with that name already exists!</source>
|
||||||
<translation>Um Relógio com este nome já existe!</translation>
|
<translation type="unfinished">Um Relógio com este nome já existe!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Are you sure you want to
|
<source>Are you sure you want to
|
||||||
@ -1278,7 +1278,7 @@ deletar</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete Clock</source>
|
<source>Delete Clock</source>
|
||||||
<translation>Deletar Relógio</translation>
|
<translation type="unfinished">Deletar Relógio</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>is in use in the following grid(s):</source>
|
<source>is in use in the following grid(s):</source>
|
||||||
@ -1286,11 +1286,11 @@ deletar</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do you still want to delete it?</source>
|
<source>Do you still want to delete it?</source>
|
||||||
<translation>Tem certeza que quer deletá-lo?</translation>
|
<translation type="unfinished">Tem certeza que quer deletá-lo?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clock In Use</source>
|
<source>Clock In Use</source>
|
||||||
<translation>Relógio em Uso</translation>
|
<translation type="unfinished">Relógio em Uso</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Log Clocks</source>
|
<source>Log Clocks</source>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user